Problema con pulsante (va high senza che venga premuto)

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?

Grazie

B.

Quell esempio è veramente carente ...

... 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 :wink:

Guglielmo

Vanno aumentate le tensioni di comando. Almeno 12v

Grazie mille.... proverò e vi farò sapere.

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?

Dai un occhiata agli schemi allegati :wink:

Sono varie possibili configurazioni ...

Guglielmo

debouncing_hw.pdf (22.8 KB)