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

Objetivos

Conectar un botón pulsador a un pin digital de la MKR GSM 1400 (lógica de 3,3 V), leerlo con una resistencia de pull interna (INPUT_PULLUP), eliminar los rebotes de la señal y mostrar cada pulsación en la consola USB. Competencia básica para cualquier interfaz local: los pines D0–D7 son digitales, de los cuales 8 admiten interrupciones externas.

Material

Código completo

// 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'etat 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);
}

Verificación esperada

Cada pulsación única imprime una línea «Appuis : N» con un contador que aumenta en 1; una pulsación firme nunca debe crear duplicados. El while (!Serial) muestra que la MKR GSM 1400 posee un USB CDC nativo: el programa espera la apertura del monitor serie.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales