🛠 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

Objetivos

Aprender a leer una entrada digital en la Mega 2560 utilizando la resistencia de pull-up interna (20 a 50 kΩ según la documentación oficial), evitar los rebotes mecánicos mediante una lógica antirrebote, y encender un LED cuando se pulsa el botón.

Material

El botón se conecta entre el pin 2 y la masa (GND), sin resistencia externa: la lógica está invertida (LOW = pulsado) porque la pull-up interna mantiene el pin a 5 V en reposo. La Mega 2560 dispone de 54 pines digitales, por lo que los pines con interrupción externa (2, 3, 18, 19, 20, 21) siguen disponibles para proyectos más avanzados.

Código completo

// 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 etat = (lecture == LOW); // logique inversée
    if (etat != etatStable) {
      etatStable = etat;
      Serial.println(etat ? F("bouton pressé") : F("bouton relâché"));
    }
  }
  etatPrecedent = lecture;
  digitalWrite(LED_PIN, etatStable ? HIGH : LOW);
}

Verificación esperada

Abra el monitor serie a 115200 baudios: cada pulsación muestra «botón pulsado» una sola vez (sin ráfagas debidas a los rebotes) y el LED sigue el estado del botón. En reposo, el LED está apagado.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales