I pulsanti sono oggetti meccanici ed hanno caratteristiche meccaniche che a volte producono risultati non voluti: durante la pressione del pulsante, le parti meccaniche non commutano direttamente da OFF ad ON ma passano attraverso stati di possibile incertezza in cui il contatto può non essersi chiuso completamente: questo accade a causa di tanti fattori: usura, materiali impiegati, qualità del componente. Poiché Arduino effettua campioni a velocità molto alte, potrebbe catturare stati ON ed OFF alternati, dando segnali instabili.
Nell’esempio precedente, questo fenomeno è ininfluente sul funzionamento del progetto: infatti, se premo il pulsante e lo tengo giù, solo nella fase iniziale potrei avere qualche incertezza e, molto probabilmente, il nostro occhio non se ne accorgerebbe neanche.
Se invece il pulsante fosse utilizzato per invertire uno stato (lo premo e il LED si accende se è spento, oppure si spegne se è acceso; lo ripremo e cambia di nuovo il LED) il passaggio da pulsante non premuto a premuto comporterebbe diverse incertezze, per cui mi potrebbero capitare molte commutazioni ed alla fine avere che era acceso e resta acceso.