🛠 Lire un bouton poussoir avec résistance de pull-up interne

Arduino Mega 2560 (Rev3) · debutant · Schéma : IMG-mega-2560-debutant-2-bouton-pull-up.svg — bouton poussoir entre la broche 2 et la masse, résistance de pull-up interne activée, LED témoin sur la broche 13

Objectifs

Apprendre à lire une entrée numérique sur la Mega 2560 en utilisant la résistance de pull-up interne (20 à 50 kΩ selon la documentation officielle), éviter les rebonds mécaniques par une logique d'anti-rebond, et allumer une LED quand le bouton est pressé.

Matériel

Le bouton se branche entre la broche 2 et la masse (GND), sans résistance externe : la logique est inversée (LOW = pressé) car la pull-up interne maintient la broche à 5 V au repos. La Mega 2560 dispose de 54 broches numériques, donc les broches avec interruption externe (2, 3, 18, 19, 20, 21) restent disponibles pour des projets plus avancés.

Code complet

// Bouton + pull-up interne — Arduino Mega 2560
const uint8_t BTN_PIN = 2;
const uint8_t LED_PIN = 13;

uint8_t etatPrecedent = HIGH;
uint32_t dernierRebond = 0;
bool etatStable = false;          // false = relâché

void setup {
  pinMode(BTN_PIN, INPUT_PULLUP); // pull-up interne 20-50 kΩ
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(115200);
}

void loop {
  uint8_t lecture = digitalRead(BTN_PIN);
  uint32_t maintenant = millis;
  if (lecture != etatPrecedent) {
    dernierRebond = maintenant;   // rebond détecté
  }
  if (maintenant - dernierRebond > 30) {
    bool état = (lecture == LOW); // logique inversée
    if (état != etatStable) {
      etatStable = état;
      Serial.println(état ? F("bouton pressé") : F("bouton relâché"));
    }
  }
  etatPrecedent = lecture;
  digitalWrite(LED_PIN, etatStable ? HIGH : LOW);
}

Vérification attendue

Ouvrez le moniteur série à 115200 bauds : chaque appui affiche « bouton pressé » une seule fois (pas de salves dues aux rebonds) et la LED suit l'état du bouton. Au repos, la LED est éteinte.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels