🛠 Bouton externe et console série interactive
Objetivos
Aprender a leer una entrada digital y a comunicarse con la consola serie en el Nicla Sense ME. Hay dos aspectos propios de esta placa: por un lado, los E/S digitales son pines de «bajo consumo» (el manual recomienda un MOSFET o un buffer para controlar cargas, lo cual no es un problema para un simple botón); por otro lado, el puerto serie USB es proporcionado por el circuito puente SAMD11, lo que explica el while (!Serial); que espera la apertura del monitor. El nivel lógico externo está fijado por VDDIO_EXT, programable de 1,8 a 3,3 V (3,3 V por defecto en los pines externos).
Material
- Placa Arduino Nicla Sense ME (ABX00050) y cable micro-USB
- Botón pulsador de cierre (contacto momentáneo)
- Cables de conexión; la resistencia de pull-up es interna, no se necesita ninguna resistencia externa
- >
Código completo
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 etat = digitalRead(BROCHE_BOUTON);
if (etat != etatPrecedent) {
delay(30); // anti-rebond grossier
Serial.println(etat == LOW ? "Bouton appuye" : "Bouton relache");
etatPrecedent = etat;
}
if (Serial.available) {
char c = Serial.read;
Serial.print("Recu : ");
Serial.println(c);
}
}
Verificación esperada
Al abrir el monitor serie (115200 baudios), se muestra el mensaje de bienvenida. Cada pulsación del botón imprime «Botón pulsado», la liberación imprime «Botón soltado»; una letra tecleada en la consola se devuelve como eco. El botón cableado entre pin y masa da LOW en reposo, lógica inversa clásica en INPUT_PULLUP.
Errores frecuentes
- Botón cableado entre pin y 3V3 sin resistencia: entrada flotante en reposo y lecturas parásitas; prefiera cablear entre pin y masa con pull-up interno.
- Olvidar
while (!Serial);: las primeras líneas del programa se envían antes de la apertura del monitor y parecen «perdidas». - Confusión de tensión: los pines externos se traducen a 3,3 V por defecto mediante VDDIO_EXT; no inyecte más de 3,3 V en un pin.
- Para controlar una carga real (LED de potencia, zumbador), el manual desaconseja una conexión directa al pin: utilice un MOSFET o un buffer.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_rgb.inoArduinoimu_bhi260.inoArduinorotation_fusion.inoArduinopression_bmp390.inoArduinonose_electronique.inoArduinoboussole_bmm150.inoArduino