🛠 Bouton poussoir et console série sur le GIGA R1
Objectifs
Apprendre à lire une entrée numérique avec une résistance de pull-up interne et à dialoguer avec le PC via le port série USB-C du GIGA R1. Vous découvrirez aussi un piège documenté du cœur Mbed : le printf natif ne remonte pas sur le port série USB (problème #958), il faut utiliser l'objet Serial d'Arduino.
Matériel
- 1 carte Arduino GIGA R1 WiFi
- 1 bouton poussoir
- 1 câble USB-C data
- Aucune résistance nécessaire : nous activons le pull-up interne
Code complet
// GIGA R1 WiFi — bouton poussoir + console série
#include <Arduino.h>
const int BOUTON = D2; // bouton entre D2 et GND (pull-up interne activé)
void setup {
Serial.begin(115200); // console série sur USB-C
pinMode(BOUTON, INPUT_PULLUP);
Serial.println("Appuyez sur le bouton !");
}
void loop {
if (digitalRead(BOUTON) == LOW) { // contact fermé -> LOW (pull-up)
Serial.println("Bouton appuyé !");
delay(200); // anti-rebond logiciel simple
}
}
Branchez une patte du bouton sur la broche D2 et l'autre patte sur GND. Le potentiel est maintenu à haut par le pull-up interne tant que le bouton est ouvert.
Vérification attendue
Au démarrage, le Moniteur série (115200 bauds) affiche « Appuyez sur le bouton ! ». Chaque appui affiche « Bouton appuyé ! » avec une cadence limitée par l'anti-rebond de 200 ms. Relâcher le bouton ne produit aucune ligne.
Erreurs fréquentes
- Confusion de logique : avec
INPUT_PULLUP, le signal est LOW quand on appuie, pas HIGH. - Bouton branché entre la broche et 3,3 V sans résistance : court-circuit ou lecture inversée.
- Attendre la sortie d'un
printf("...")C sur le Moniteur série : sur le cœur Mbed du GIGA,printfn'atteint pas le port série USB (bogue #958, corrigée depuis) ; utilisez toujoursSerial.print. - Moniteur série fermé ou mauvais débit : aucune sortie visible.
- Oubli du
delay(200)d'anti-rebond : rafales d'appuis fantômes.
Autres tutoriels pour cette carte
- Faire clignoter la LED de l'Arduino GIGA R1
- Potentiomètre et sortie DAC sur la prise audio du GIGA R1
- Piloter un micro-servo avec la PWM du GIGA R1
- Connecter un capteur I2C sur le GIGA R1
- Publier des données en MQTT/HTTP via le Wi-Fi du GIGA R1
- Programmer les deux cœurs M7 et M4 du GIGA R1 et les faire communiquer
Exemples de code pour cette carte
clignotante.inoArduinobouton.inoArduinorespiration.inoArduinoanalogique.inoArduinodac-onde.inoArduinooled-i2c.inoArduino