Buongiorno,
ho realizzato un progetto che prevede l'utilizzo di un pulsante per attivare uno stato sulla base di quanto indicato qui: https://www.arduino.cc/en/Tutorial/Button
Solo che tra il tasto e l'arduino ci sono circa 6 metri di cavo da 1 mm di diametro.
Diciamo che il progetto funziona solo che in alcuni casi, l'arduino legge come se il pulsante venisse premuto quando in realtà non lo è e quindi parte la procedura senza che venga premuto alcunchè.
Ho pensato che possa dipendere dalla lunghezza del cavo.... voi che ne pensate?
... prima di tutto abbassa il valore della resistenza di pulldown, ad esempio, metti 1 KΩ, poi non c'è un minimo di logica di "debouncing" e quindi, comunque, oltre a scattare per il minimo rumore, anche in caso di pressione del tasto, avresti una raffica di eventi del tipo "tasto premuto/tasto rilasciato".
Un bottone "reale" NON si comporta come un bottone "ideale" ed ogni volta che lo premi hai un qualche cosa simile a :
... per cui, con una logica di "debouncing" (che può essere fatta sia HW che SW) elimini questi problemi.
Se cerchi con Google troverai tutte le spiegazioni e vari esempi, intanto comunque leggi QUI
Guglielmo riflettevo... se è un problema di rumore non potrei usare un condensatore di 100nF? tra il Pin di Input e il bottone? Non dovrebbe funzionare da filtro?