🛠 Bouton externe et console série interactive
Objectifs
Apprendre à lire une entrée numérique et à dialoguer avec la console série sur le Nicla Sense ME. Deux points propres à cette carte : d'une part les E/S numériques sont des broches « low power » (le manuel recommande un MOSFET ou un buffer pour piloter des charges, ce qui n'est pas gênant pour un simple bouton) ; d'autre part le port série USB est fourni par le circuit pont SAMD11, ce qui explique le while (!Serial); qui attend l'ouverture du moniteur. Le niveau logique externe est fixé par VDDIO_EXT, programmable de 1,8 à 3,3 V (3,3 V par défaut sur les broches externes).
Matériel
- Carte Arduino Nicla Sense ME (ABX00050) et câble micro-USB
- Bouton poussoir à fermeture (contacteur momentané)
- Filles de connexion ; la résistance de pull-up est interne, aucune résistance externe n'est nécessaire
- >
Code complet
const uint8_t BROCHE_BOUTON = 4; // broche numérique disponible (0-9)
void setup {
Serial.begin(115200);
while (!Serial); // attend l'ouverture du moniteur série
pinMode(BROCHE_BOUTON, INPUT_PULLUP);
Serial.println("Console Nicla Sense ME prete");
}
void loop {
static bool etatPrecedent = HIGH;
bool état = digitalRead(BROCHE_BOUTON);
if (état != etatPrecedent) {
delay(30); // anti-rebond grossier
Serial.println(état == LOW ? "Bouton appuye" : "Bouton relache");
etatPrecedent = état;
}
if (Serial.available) {
char c = Serial.read;
Serial.print("Recu : ");
Serial.println(c);
}
}
Vérification attendue
À l'ouverture du moniteur série (115200 bauds), le message d'accueil s'affiche. Chaque appui sur le bouton imprime « Bouton appuye », le relâchement imprime « Bouton relache » ; une lettre tapée dans la console est renvoyée en écho. Le bouton câblé broche-vers-masse donne LOW au repos, logique inversée classique en INPUT_PULLUP.
Erreurs fréquentes
- Bouton câblé broche-vers-3V3 sans résistance : entrée flottante au repos et lectures parasites ; préférez broche-vers-masse avec pull-up interne.
- Oubli de
while (!Serial);: les premières lignes du programme partent avant l'ouverture du moniteur et semblent « perdues ». - Confusion de tension : les broches externes sont traduites en 3,3 V par défaut via VDDIO_EXT ; ne pas injecter plus de 3,3 V sur une broche.
- Pour piloter une charge réelle (LED de puissance, buzzer), un montage direct sur broche est déconseillé par le manuel : passez par un MOSFET ou un buffer.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_rgb.inoArduinoimu_bhi260.inoArduinorotation_fusion.inoArduinopression_bmp390.inoArduinonose_electronique.inoArduinoboussole_bmm150.inoArduino