🛠 Bouton utilisateur et console série USB

Adafruit Feather nRF52840 Express · debutant · Schéma : IMG-nrf52840-feather-debutant-2-nrf52840-bouton-console-uart.svg — Feather nRF52840 avec le bouton USER relié à la broche D9, résistance de pull-up interne et moniteur série affiché à l'écran.

Objectifs

Lire l'état du bouton USER de la Feather nRF52840 et l'afficher sur la console série USB. Le nRF52840 possède un contrôleur USB natif : le Serial du core Arduino est un CDC-TinyUSB, il n'y a pas de puce série externe. Vous apprendrez aussi l'anti-rebond logiciel (millis) et l'attente non bloquante.

Matériel

Code complet

// nrf52840-bouton-console-uart.ino
const uint8_t BUTTON_PIN = 9;   // bouton USER (alias D9)
// > 
// sa broche exacte (D9 vient d'exemples CircuitPython) ; vérifier au multimètre
// ou avec le schéma officiel si rien ne se passe.

uint8_t lastState = HIGH;
uint32_t lastDebounce = 0;
uint32_t pressCount = 0;

void setup {
  Serial.begin(115200);          // console USB CDC native
  pinMode(BUTTON_PIN, INPUT_PULLUP); // le bouton USER relie la broche à GND
  Serial.println("Console Feather nRF52840 prete");
}

void loop {
  uint8_t state = digitalRead(BUTTON_PIN);
  uint32_t now = millis;
  if (state != lastState && (now - lastDebounce) > 30) {
    lastDebounce = now;
    lastState = state;
    if (state == LOW) {
      pressCount++;
      Serial.print("Appui n°");
      Serial.println(pressCount);
    }
  }
  if (Serial.available) {      // echo de la console vers la carte
    char c = Serial.read;
    Serial.print("Recu: ");
    Serial.println(c);
  }
}

Vérification attendue

Ouvrez le moniteur série à 115200 : chaque appui sur le bouton USER affiche « Appui n°N » sans rebond parasite (pas de doublons à 1 ms d'écart). Une lettre tapée dans la console est renvoyée en écho.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels