Primo programma: Sensore di movimento e gestione led
stavo cercando di tirare su il primo programma con arduino one, un minimo di funzionalità la ho raggiuntà ma ora sto cercando di ottimizzarlo al massimo.
il programma deve semplicemente leggere il valore di un sensore di movimento vibrazione (m524*) che funziona con una pallina che apre e chiude un interruttore ritornando diciamo uno 0 e 1 (non sono esperto in elettronica però!)
ho consultato il data sheet trovato in rete e ho montato il tutto sull'arduino:
al pin digitale 4 ho messo il sensore, la sua gnd la ho collegata lla gnd tra pin analogici poi ho messo la resistenza(10k) di pull tra 5v sull'arduino e il sensore.
anche sui led ho messo delle resistenze (da 2.2k) perchè ho letto sul sito che è meglio fare così onde evitare problematiche al device.
insomma, per ora fa quel poco che ho chiesto di fare.. quando riceve una scossa si accende il led verde cui ho impostato un delay perchè altrimente varierebbe acceso spento velocissisamente
vi posto il codice opportunamente commentato:
ora vorrei semplicemente capire perchè non si spegne il led rosso in altro caso! avevo risolto ma avevo riscontrati altri problemi!
sicuramente devo impostare un delay(); da qualche parte per ovviare questi rapidi cambiamenti stato!
inoltre, stavo anche cercando di sviluppare una eventuale versione due in cui ha seconda dell'intensità della vibrazione accenderò certi led.
ho notato che impostando un delay prima dell'if con più o meno valore riuscivo gestire molto sommariamente l'intensità.. vorrei qualche delucidazione in merito!
il programma deve semplicemente leggere il valore di un sensore di movimento vibrazione (m524*) che funziona con una pallina che apre e chiude un interruttore ritornando diciamo uno 0 e 1 (non sono esperto in elettronica però!)
ho consultato il data sheet trovato in rete e ho montato il tutto sull'arduino:
al pin digitale 4 ho messo il sensore, la sua gnd la ho collegata lla gnd tra pin analogici poi ho messo la resistenza(10k) di pull tra 5v sull'arduino e il sensore.
anche sui led ho messo delle resistenze (da 2.2k) perchè ho letto sul sito che è meglio fare così onde evitare problematiche al device.
insomma, per ora fa quel poco che ho chiesto di fare.. quando riceve una scossa si accende il led verde cui ho impostato un delay perchè altrimente varierebbe acceso spento velocissisamente
vi posto il codice opportunamente commentato:
code: [select]
int valsensore = 0; //dichiaro variabile per la lettura del valore del sensore di movimento
int sensore = 4; //dichiaro che al pin 4 c'è il sensore di movimento
void setup(){
pinmode(13,output); // inizializzo pin 13 cui c'è collegato il led rosso
pinmode(9,output); // inizializzo pin 9 cui c'è collegato il led verde
pinmode(sensore,input);
}
void loop(){
valsensore = digitalread(sensore); //leggo il valore del sensore
if (valsensore != 0) //se diverso da 0
{
digitalwrite(9,high); //accendo il led verde e lo tengo acceso per 0.5s
delay(500);
}
else //in qualsiasi altro caso
{
digitalwrite(9,low); //spendo il led verde e accendo quello rosso <- !!
digitalwrite(13,high);
}
}ora vorrei semplicemente capire perchè non si spegne il led rosso in altro caso! avevo risolto ma avevo riscontrati altri problemi!
sicuramente devo impostare un delay(); da qualche parte per ovviare questi rapidi cambiamenti stato!
inoltre, stavo anche cercando di sviluppare una eventuale versione due in cui ha seconda dell'intensità della vibrazione accenderò certi led.
ho notato che impostando un delay prima dell'if con più o meno valore riuscivo gestire molto sommariamente l'intensità.. vorrei qualche delucidazione in merito!
inoltre, stavo anche cercando di sviluppare una eventuale versione due in cui ha seconda dell'intensità della vibrazione accenderò certi led.
ho notato che impostando un delay prima dell'if con più o meno valore riuscivo gestire molto sommariamente l'intensità.. vorrei qualche delucidazione in merito!
con il sensore collegato al pin digitale, dubito che riuscirai leggere l'intensità del sensore. su quei pin avrai solo due valori 0 e 1.
devi collegare il sensore ad un pin analogico per individuare l'intensità della vibrazione.... ma dipende anche dal sensore: se il sensore fornisce un segnale digitale (0 vibra e 1 non vibra o viceversa) noi avrai mai l'informazione sull'intensità di vibrazione.
posta il link del datasheet del sensore.
Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Primo programma: Sensore di movimento e gestione led
arduino
Comments
Post a Comment