🛠 Bouton poussoir et console USB

Arduino MKR GSM 1400 · debutant · Schéma : IMG-mkr-gsm-1400-debutant-2-mkrgsm-bouton-console.svg — Carte MKR GSM 1400 sur breadboard avec un bouton poussoir entre la broche D2 et la masse, câble micro-USB relié à un ordinateur affichant la console série.

Objectifs

Câbler un bouton poussoir sur une broche numérique de la MKR GSM 1400 (logique 3,3 V), le lire avec une résistance de tirage interne (INPUT_PULLUP), débouncer le signal et afficher chaque appui sur la console USB. Compétence de base pour toute interface locale : les broches D0–D7 sont numériques, dont 8 entrées à interruption externes.

Matériel

Code complet

// Bouton sur D2 (vers GND) + console USB
const uint8_t BTN = 2;
volatile uint32_t appuis = 0;
uint32_t dernierMs = 0;

void onAppui {
  uint32_t maintenant = millis;
  if (maintenant - dernierMs > 50) {  // anti-rebond 50 ms
    appuis++;
    dernierMs = maintenant;
  }
}

void setup {
  pinMode(BTN, INPUT_PULLUP);          // logique active a l'état BAS
  attachInterrupt(digitalPinToInterrupt(BTN), onAppui, FALLING);
  Serial.begin(9600);
  while (!Serial) {}                   // attend l'ouverture du moniteur USB
  Serial.println("MKR GSM 1400 - test bouton D2");
}

void loop {
  static uint32_t dernierAffiche = 0xFFFFFFFF;
  noInterrupts;
  uint32_t n = appuis;
  interrupts;
  if (n != dernierAffiche) {
    dernierAffiche = n;
    Serial.print("Appuis : ");
    Serial.println(n);
  }
  delay(10);
}

Vérification attendue

Chaque appui unique imprime une ligne « Appuis : N » avec un compteur qui augmente de 1 ; un appui franc ne doit jamais créer de doublons. Le while (!Serial) montre que la MKR GSM 1400 possède un USB CDC natif : le programme attend l'ouverture du moniteur série.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels