Menu
CoddyTech

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.

challenge icon

Défi

Facile

Le bouton relie la broche 2 à GND, et la LED est sur la broche 13 :

  • configurer la broche 2 en INPUT_PULLUP
  • stocker digitalRead(buttonPin) == LOW dans un bool appelé pressed
  • afficher pressed, allumer la LED tant qu’il vaut true, 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
}
quiz iconTestez-vous

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