Le pull-up interne
Fait partie de la section Entrées du Journey Arduino de Coddy. Leçon 3 sur 22.
Vous avez utilisé INPUT_PULLUP depuis la leçon Lire un bouton. Cela active une résistance à l’intérieur de la carte, de 20 kΩ à 50 kΩ, entre la broche et 5 V : le pull-down de la leçon précédente, mais dans l’autre sens, sans composant supplémentaire. Le bouton relie uniquement la broche à GND.
Le hic, c’est que la logique est inversée : au repos, la lecture renvoie HIGH, lorsqu’on appuie, elle renvoie LOW, et il est facile d’inverser le sens de == LOW partout dans un sketch. Une comparaison telle que digitalRead(2) == LOW vaut elle-même true ou false, et un bool est une variable qui contient true ou false. Stockez ce résultat dans une variable dont le nom indique sa signification :
bool pressed = digitalRead(2) == LOW;
if (pressed) {
// le bouton est enfoncé
}À partir de là, le code se lit dans le bon sens. L’affichage d’un bool montre 1 pour true et 0 pour false.
Défi
FacileLe bouton relie la broche 2 à GND, et la LED est sur la broche 13 :
- configurer la broche 2 en
INPUT_PULLUP - stocker
digitalRead(buttonPin) == LOWdans unboolappelépressed - afficher
pressed, allumer la LED tant qu’il vauttrue, puis attendre 100 ms
Check attend 1 tant que le bouton est maintenu enfoncé et 0 lorsqu’il est relâché. Appuie sur Run, maintiens le bouton enfoncé, puis appuie sur Check.
Essayez vous-même
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
// active la résistance de tirage du bouton
}
void loop() {
// bool pressed = ...
// affiche sa valeur, allume la LED tant qu’elle vaut true, attends 100 ms
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Entrées
Entraînez-vous par vous-même : Playground Arduino