🛠 Bouton et console série sur la GIGA R1 WiFi
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
- Placa Arduino GIGA R1 WiFi + cable USB-C
- 1 botón pulsador entre el pin 6 y GND (no se necesita resistencia externa: se utiliza la resistencia de pull-up interna)
- Opcional: 1 LED + 330 Ω en el pin 5 para confirmar visualmente la pulsación
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
- El monitor serie permanece vacío: con el USB nativo,
while (!Serial)espera la apertura del monitor; si ejecuta el sketch sin abrir el monitor, queda en espera — esto es intencional. Vuelva a conectar o abra el monitor. - Botón cableado hacia 3,3 V sin pull-down: también funciona, pero entonces se necesita
INPUT_PULLDOWNo una resistencia externa; el esquema de pull-up + GND es el más simple. - Pulsaciones contadas varias veces: falta el antirrebote o es demasiado corto; aumente
ANTI_REBONDa 50 ms. - Velocidad inconsistente: el puerto serie nativo ignora la velocidad real, pero mantenga 115200 en ambos lados para evitar sorpresas con otras herramientas.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton.inoArduinorespiration.inoArduinoanalogique.inoArduinodac-onde.inoArduinooled-i2c.inoArduino