Pulsante

Ciao a tutti ho questo pulsante che allego qui sotto e vorrei fare un circuito con arduino dichiarando un pin Digitale come Input, cosi da poter verificare nel void loop se al pin digitale dichiarato arriva corrente, tutto questo collegando il pulsante ai 5V e con un altro cavetto sempre collegato al pulsante lo collego al pin digitale. Si può fare o qualcosa può andare storto??? :slight_smile:

MomentaryPushButton-01a-L.jpg

Secondo la legge di Murphy sicuramente qualcosa andrà storto. :slight_smile:
In pratica non devi fare altro che attivare la pullup interna sul pin dove colleghi il pulsante, questo tra il pin e GND, in questo modo quando il pulsante non è premuto leggi 1 sul pin e 0 quando è premuto.
Attenzione che i pulsanti meccanici producono sempre molti impulsi (rimbalzi) quando li premi, pertanto se lo leggi spesso, più velocemente di una volta ogni 200 ms, è indispensabile prevedere il debouncing che può essere sia software che hardware.

Ciao grazie per la tua risposta immediata ma cosa e il deboucing...

Cerca con google "arduino debouncing" e trovi molte pagine, anche in italiano, che spiegano cos'è e come implementarlo.

Fatto ho cercato ho capito lo sketch e tutto ma volevo farti una domanda va bene questo esempio di schema che ti metto in allegato su come collegare il pulsante ad arduino per far accendere un led????

Perché insisti nel collegare il pulsante al +5V con la pulldown?
E' molto più semplice fare come ti ho detto sopra, pulsante collegato tra il pin e GND, pullup interna del 328 abilitata sul pin dove c'è il pulsante.

Astrobeed ho guardato questo sito >>>CLICCAMI<<< e qui i collegamenti li fa cosi come ti ho messo lo sketch sopra... ho provato quello schema di sopra e tutto funziona. Perche secondo te non dovrei collegare il pulsante ai 5V dell'arduino... Posso collegare il pulsante ad un pin digitale e impostarlo come output e su high al posto di usare i 5V??? :confused:

Un pulsante si può collegare ad un ingresso digitale di Arduino sia con circuito pull up (quello suggerito da Astro), sia con circuito pull down (quello suggerito dal sito).

E' preferibile la prima soluzione, poiché puoi evitare l'uso del resistore esterno, attivando quello interno di Arduino (da circa 20k).

Di contro, questa soluzione richiede una inversione di logica: l'ingresso digitale è normalmente HIGH, mentre quando il pulsante è premuto diventa LOW.

Al posto dei 5V posso mettere un uscita digitale su output e HIGH e collegarla al pulsante??

Ernesto079569:
Perche secondo te non dovrei collegare il pulsante ai 5V dell'arduino...

Facendo come ti suggerisce lui, devi collegare soltanto un pezzo di filo, un pulsante, un pezzo di filo.
Usando l'altro schema, devi collegare un pezzo di filo, un resistore, un pezzo di filo, un pezzo di filo, un pulsante, un pezzo di filo, un pezzo di filo.

Usare una porta digitale permanentemente posta ad high è solo uno spreco, tanto vale usare l'apposita +5V.

Ma si puo comunque scusate e poi che spreco è..... :confused:

Ernesto079569:
Ma si puo comunque scusate e poi che spreco è..... :confused:

Di spazio, di componeti, di costi, ecc. ecc.

Comunque fai come ti pare, ovviamnete funziona in entrambi i casi ...

Guglielmo