Étape 8: Programmation (Debouncing les commutateurs x 12)
Voici notre boucle debounced. Notez que nous sauvegardons également les temps de debounce comme 12 valeurs indépendantes :
buttonState int [12] ; la lecture actuelle de l’axe d’entrée
int lastButtonState [12] = {faible, faible, faible, faible, faible, faible, faible, faible, faible, faible, faible, faible} ;
long lastDebounceTime [12] = {0,0,0,0,0,0,0,0,0,0,0,0} ; la dernière fois que la broche de sortie a été basculée debounceDelay long = 50 ; le temps de debounce ; augmenter si la sortie scintille
pour (int x = 0; x < 12; x ++) {}
currentPin [x] = digitalRead(pedalPins[x]) ;
Si (currentPin [x]! = {lastButtonState[x])}
lastDebounceTime [x] = millis() ;
}
Si ((millis() - lastDebounceTime[x]) > debounceDelay) {}
Si (currentPin [x]! = {buttonState[x])}
buttonState [x] = currentPin [x] ;
Si (currentPin[x]==0) {Serial.print ("pédale") ; Serial.Print(x+1) ; Serial.println ("Up") ; }
Si (currentPin[x]==1) {Serial.print ("pédale") ; Serial.Print(x+1) ; Serial.println ("Down"). }
}
}
lastButtonState [x] = currentPin [x] ; }
}
Fonctionne très bien ! Aucune répétition ne déclenche maintenant. Juste nettoyer et événements. Let's make a MIDI !