🛠 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.

Objectifs

Lire un bouton poussoir avec une résistance de pull-up interne et piloter la carte depuis la console série : appuyer sur le bouton allume la LED D6, taper « s » dans le moniteur affiche un statut. On découvre digitalRead, INPUT_PULLUP et la lecture non bloquante de Serial.

Matériel

Code complet

// 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 état = digitalRead(PIN_BTN);
  if (état == 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 = état;

  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));
  }
}

Vérification attendue

À l'appui du bouton, la LED D6 bascule et un message s'affiche dans le moniteur série (115200 bauds). En tapant s + Entrée, la ligne statut: led=... bouton=... apparaît sans bloquer la boucle. Le bouton est lu à HIGH au repos et LOW quand on appuie : c'est l'effet du pull-up interne.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels