Étape 6: À l’aide de boutons
Il s’agit à l’instar de l’exemple précédent, mais maintenant le code s’exécute qu’une seule fois après avoir appuyé sur un bouton. Le bouton utilise un menu déroulant résistance afin que lorsque le bouton est enfoncé la broche d’entrée est haute, sinon il lit toujours faible.
Copiez et collez cette esquisse dans votre fenêtre de Arduino-
/*
* Exemple 2
* LED contrôle à l’aide de la touche entrée
* Cet exemple va clignoter deux LED et s’estompent une autre LED quand un bouton est enfoncé et relâché
* Honus 2010
* Modification de Adafruit alternant commutateur code, http://www.adafruit.com
*/
int ledPin1 = 13 ; broche de commande pour LED
int ledPin2 = 12 ;
int ledPin3 = 11 ;
int buttonPin = 14 ; le bouton est relié à la broche 14 (analogique à broche 0)
int val ; variable pour la lecture de l’état de la broche
buttonState int ; variable qui contient le dernier état de la touche
void setup() {}
pinMode (buttonPin, entrée) ; la valeur de l’axe du bouton comme entrée
Serial.Begin(9600) ; établir une communication série à 9600bps
buttonState = digitalRead(buttonPin) ; lire l’état initial
pinMode (ledPin1, sortie) ; définit l’axe de la LED en sortie
pinMode (ledPin2, sortie) ;
}
void loop() {}
Val = digitalRead(buttonPin) ; lire la valeur d’entrée et stockez-la dans le val
Si (val! = buttonState) {/ / l’état du bouton a changé !
Si (val == faible) {/ / vérifier si le bouton est enfoncé
Serial.println ("touche enfoncée") ;
digitalWrite (ledPin1, HIGH) ; définit l’axe LED haute (il allume)
Delay(500) ; attente de 500 millisecondes
digitalWrite (ledPin2, HIGH) ;
Delay(500) ;
digitalWrite (ledPin1, basse) ; définit l’axe LED faible (elle s’éteint)
Delay(500) ;
digitalWrite (ledPin2, basse) ;
Delay(500) ;
fondu du min au max par incréments de 5 points :
pour (int fadeValue = 0; fadeValue < = 255 ; fadeValue += 5) {}
définit la valeur (gamme de 0 à 255) :
analogWrite (ledPin3, fadeValue) ;
Attendez 30 millisecondes Voir l’effet de gradation
Delay(40) ;
}
fondu de max min par incréments de 5 points :
pour (int fadeValue = 255 ; fadeValue > = 0; fadeValue-=5) {}
définit la valeur (gamme de 0 à 255) :
analogWrite (ledPin3, fadeValue) ;
Attendez 30 millisecondes Voir l’effet de gradation
Delay(40) ;
}
} else {/ / la - pas - touche...
Serial.println (« relâchez le bouton") ;
digitalWrite (ledPin1, basse) ; éteindre la LED
digitalWrite (ledPin2, basse) ;
}
}
buttonState = val ; enregistrer le nouvel État dans notre variable
}