🛠 Bouton et console série interactive

Arduino MKR WiFi 1010 · debutant · Schéma : IMG-mkr-wifi-1010-debutant-2-mkrwifi-bouton-console.svg — Bouton poussoir câblé entre la broche D2 et GND avec résistance de pull-up interne activée, liaison USB vers le moniteur série de l'ordinateur.

Objetivos

Leer un botón pulsador con una resistencia de pull-up interna y controlar la placa desde la consola serie: pulsar el botón enciende el LED D6, escribir « s » en el monitor muestra un estado. Se descubren digitalRead, INPUT_PULLUP y la lectura no bloqueante de Serial.

Material

Código completo

// Bouton sur D2 (vers GND), LED sur D6, commandes série.
const uint8_t PIN_BTN = 2;
bool ledOn = false;

void setup {
  Serial.begin(115200);
  pinMode(PIN_BTN, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.println("MKR WiFi 1010 prete - bouton sur D2, tapez s pour statut");
}

void loop {
  static bool etatPrec = HIGH;
  bool etat = digitalRead(PIN_BTN);
  if (etat == LOW && etatPrec == HIGH) {   // front descendant = appui
    ledOn = !ledOn;
    digitalWrite(LED_BUILTIN, ledOn);
    Serial.println(ledOn ? "LED ON" : "LED OFF");
    delay(30);                              // anti-rebond grossier
  }
  etatPrec = etat;

  if (Serial.available) {                 // commande non bloquante
    char c = Serial.read;
    if (c == 's' || c == 'S')
      Serial.printf("statut: led=%d bouton=%d\n", ledOn, digitalRead(PIN_BTN));
  }
}

Verificación esperada

Al pulsar el botón, el LED D6 cambia de estado y se muestra un mensaje en el monitor serie (115200 baudios). Al escribir s + Intro, aparece la línea statut: led=... bouton=... sin bloquear el bucle. El botón se lee como HIGH en reposo y LOW al pulsarlo: es el efecto de la resistencia de pull-up interna.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales