🛠 Bouton et console série sur la GIGA R1 WiFi

Arduino GIGA R1 WiFi · debutant · Schéma : IMG-giga-r1-wifi-debutant-2-bouton-console-serie.svg — Bouton poussoir câblé entre une broche GPIO et GND avec résistance de pull-up interne, et liaison USB-C vers le moniteur série de l'ordinateur

Objetivos

Leer una entrada numérica, eliminar correctamente el rebote (antirrebote) y comunicarse con el puerto serie nativo de la GIGA R1 WiFi (disponible desde el momento en que se conecta al puerto USB-C USB0, sin necesidad de un convertidor USB-serie). También aprenderá la regla de oro de los pines: lógica de 3,3 V, nunca señales de 5 V, y INPUT_PULLUP para evitar el cableado a la alimentación positiva.

Material

Código completo

// GIGA R1 WiFi — bouton + console série avec anti-rebond
const int BTN_PIN  = 6;    // bouton vers GND, pull-up interne
const int LED_PIN  = 5;    // LED + 330 ohms vers GND

volatile unsigned long appuis = 0;
int etatPrecedent = HIGH;
unsigned long dernierChangement = 0;
const unsigned long ANTI_REBOND = 30;   // ms

void setup {
  Serial.begin(115200);          // port série natif sur USB-C (USB0)
  while (!Serial) {}             // attend l'ouverture du moniteur (USB natif)
  pinMode(BTN_PIN, INPUT_PULLUP);  // 3.3 V logic — jamais de signal 5 V
  pinMode(LED_PIN, OUTPUT);
  Serial.println("GIGA R1 WiFi prete : appuyez sur le bouton broche 6");
}

void loop {
  int etat = digitalRead(BTN_PIN);
  unsigned long maintenant = millis;
  if (etat != etatPrecedent && maintenant - dernierChangement > ANTI_REBOND) {
    dernierChangement = maintenant;
    etatPrecedent = etat;
    if (etat == LOW) {                       // bouton actif a l'etat LOW (pull-up)
      appuis++;
      digitalWrite(LED_PIN, HIGH);
      Serial.print("Appui n#"); Serial.print(appuis);
      Serial.print(" — uptime "); Serial.print(maintenant / 1000); Serial.println(" s");
    } else {
      digitalWrite(LED_PIN, LOW);
    }
  }
}

Verificación esperada

Abra el monitor serie a 115200 baudios: se muestra el mensaje de bienvenida. Cada pulsación imprime una línea como «Pulsación n#1 — tiempo de actividad 12 s», etc., sin duplicados parásitos (el antirrebote de 30 ms hace su trabajo). El LED indicador se enciende durante la pulsación.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales