Go Down

Topic: contatore di tocchi (Read 850 times) previous topic - next topic

matteo94s

salve a tutti, il mio nome è Matteo

avevo in progetto un piccolo programma ma non riesco a farlo funzionare..  :~
vorrei accendere un led dopo aver premuto 10 volte un pulsante; qualcuno mi può aiutare ???

grazie, Matteo

fabpolli

Ciao Matteo,
   se non lo hai già fatto passa nella sezione presentati.
Quello che vuoi fare è abbastanza semplice e lo si può fare in tanti modi.
Uno di questi è definire una varianile di tipo int che vai ad incrementare ad ogni pressione del pulsante questa la puoi rilevare con una digitalRead(numeropin) o con la libreria debounce ad es.:
Code: [Select]

if (digitalRead(10)==HIGH){
 contatore++;
}

poi valuti la varibile e se maggiore di 10 accendi il led con una digitalWrite
Code: [Select]

if (contatore >= 10){
 digitalWrite(13,HIGH);
}

Attento a non collegare direttamente il led al pin di arduino ma metti una resistenza adeguata per non bruciare il pin.

Ciao

Michele Menniti

l'uso del debounce (hw o sw che sia) è indispensabile, non c'è pulsante che non sia affetto da rimbalzi, quindi sicuramente il LED si accenderebbe prima del tempo.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

pablos


definire una varianile di tipo int che vai ad incrementare ad ogni pressione del pulsante

Tipo byte
no comment

fabpolli

Ciao,
  si la variabile di tipo byte è sicuramente meglio, errore mio...
Per il debounce sono perfettamente d'accordo, infatti ho fatto riferimento alla libreria debounce, non ho messo direttamente l codice in modo che matteo94s potesse andare a cercarlo e verificarne il funzionamento da solo, ad ogni modo avrei dovuto mettere almeno il debounce software con la millis, la prossima volta sarò più preciso

Go Up