🛠 Bouton externe et console série interactive

Arduino Nicla Sense ME · debutant · Schéma : IMG-nicla-sense-me-debutant-2-niclasense-bouton-console.svg — Nicla Sense ME avec un bouton poussoir externe câblé entre la broche numérique 4 et la masse, résistance de pull-up interne symbolisée, câble USB vers l'ordinateur affichant la console

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

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

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales