salve, non capisco una parte del codice di debounce che da arduino tra gli esempi:
if (reading != buttonState) {
buttonState = reading;
// only toggle the LED if the new button state is HIGH
if (buttonState == HIGH) {
ledState = !ledState;
e sopratutto non capisco il ruolo di "buttonState".
in teoria la seconda volta che si preme il bottone sia "reading" che "buttonState" saranno high e quindi il codice salta e va al prossimo che vale sempre e comunque
Mi sa che hai scordato che quando rilasci il pulsante buttonState torna a LOW
comunque per correttezza se vuoi che gli altri capiscano, sarebbe utile indicare tutto il loop() altrimenti resta difficile seguire la logica con 4 righe appese.
Quel pezzetino di codice non serve per il debounce ma per triggerare il momento di pressione del pulsante. Solo in questo modo si riesce a cambiare lo stato del LED senza che questo cambi finche il pulsante é premuto.
if (reading != buttonState) {
buttonState = reading;
Riconosce sia il premere che il rilascio del pulsante.
if (buttonState == HIGH) {
ledState = !ledState;
Ma lo stato del LED cambia solo nel cambio stato LOW-HIGH del pulsante.