🛠 Bouton poussoir et moniteur série sur la Duemilanove (avec ses 0,5 s de silence)

Arduino Duemilanove — Ficha de placa · debutant · Schéma : IMG-duemilanove-debutant-2-bouton-poussoir-serial-ftdi.svg — bouton poussoir entre la broche 2 et GND sur une Arduino Duemilanove, résistance interne pull-up annotée 20–50 kΩ, moniteur série affichant ETAT=1 / ETAT=0, puce FTDI et LED TX clignotante.

Objetivos

Leer un botón pulsador y mostrar su estado en el monitor serie — el famoso DigitalReadSerial — descubriendo dos especificidades documentadas de la Duemilanove: las resistencias pull-up internas de 20 a 50 kΩ activables por software, y el auto-reset mediante la línea DTR del chip FTDI: cada vez que se abre el puerto, la placa se reinicia y el bootloader ATmegaBOOT consume los primeros bytes durante ~0,5 segundos. Tus scripts de automatización deberán tener esto en cuenta.

Material

Código completo

// Bouton sur broche 2 -> GND, pull-up interne active
const byte BOUTON = 2;      // les interruptions externes sont aussi sur 2 et 3

void setup {
  pinMode(BOUTON, INPUT_PULLUP);   // pull-up interne 20-50 kOhm
  Serial.begin(9600);              // USB via FTDI FT232RL
  delay(1000);                     // laisser passer le bootloader (~0,5 s)
  Serial.println("Duemilanove prete");
}

void loop {
  // rappel : avec pull-up, bouton enfonce = LOW
  byte etat = digitalRead(BOUTON);
  Serial.println(etat == LOW ? "ETAT=0 (appuye)" : "ETAT=1 (libere)");
  delay(100);
}

Verificación esperada

El monitor serie (9600 baudios) muestra « ETAT=1 (libere) » continuamente; al mantener pulsado el botón, las líneas cambian a « ETAT=0 (appuye) ». Cada vez que se abre o cierra el monitor, la placa parpadea (reset DTR) y vuelve a aparecer la línea « Duemilanove prete »: este es el comportamiento normal del auto-reset, no un error.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales