Détecter un front montant
Détection du changement d'état ( front montant) d'un bouton poussoir (sans faire d'interruption)
Principe :
- Comparer l'état actuel du BP avec son état précédent.
- Si l'état du bouton poussoir a changé ET est passé à 1, on a donc un front montant.
Exemple de programme de détection d'un front montant sur un bouton poussoir
int bpPin = 3; int ledPin = 2; int bp1 = 0; // variable pour l'état actuel du bouton poussoir int bp1Mem = 0; // variable pour l'état précédent du bouton poussoir int ledOn = 0; // variable pour l'état de la led void setup() { pinMode(ledPin,OUTPUT); pinMode(bpPin,INPUT); } void loop() { // lit l'état actuel du bouton poussoir bp1 = digitalRead(bpPin);
// compare l'état actuel du bouton poussoir à l'état précédent mémorisé if (bp1 != bp1Mem){ // si l'état du bouton poussoir a changé
// on mémorise l'état courant du bouton poussoir pour les prochains passages dans la boucle loop bp1Mem = bp1;
// si ce nouvel état est passé à 1, on a donc un front montant. if (bp1 == 1) { //On change l'état de la variable de la led de 1 à 0 ou de 0 à 1 ledOn = !ledOn; } }
if (ledOn == 1) { digitalWrite(ledPin,HIGH); } else { digitalWrite(ledPin,LOW); }
} |
|
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide facilement