🛠 Console série et piège DTR du FTDI
Objetivos
Dominar la consola serie en el Nano clásico: el único UART de hardware (pines 0/1) pasa por el puente USB-serie FTDI FT232RL en las tarjetas oficiales — el chip ATmega328P en sí no tiene USB nativo. Construimos una mini-consola de comandos y comprendemos la trampa de DTR: la apertura del puerto reinicia la tarjeta mediante un condensador de 100 nF, y el bootloader se traga los primeros bytes emitidos justo después de la conexión.
Material
- 1 × Arduino Nano clásico (FTDI FT232RL original, o clon CH340 con driver WCH)
- 1 × cable USB Mini-B
- PC con monitor serie (IDE de Arduino, PuTTY o screen)
Código completo
// Mini-console serie : commande 'l' = LED, 'v' = valeur analogique
const uint8_t LED = LED_BUILTIN;
void setup {
Serial.begin(9600);
pinMode(LED, OUTPUT);
// Patiente ~2 s : laisse passer le reset DTR + bootloader
uint32_t t0 = millis;
while (millis - t0 < 2000) { while (Serial.available) Serial.read; }
Serial.println(F("Nano pret. Tapez l ou v."));
}
void loop {
if (Serial.available) {
char c = Serial.read;
if (c == 'l') { digitalWrite(LED, !digitalRead(LED)); Serial.println(F("LED toggle")); }
else if (c == 'v') { Serial.println(analogRead(A0)); }
while (Serial.available) Serial.read; // vide le reste de la ligne
}
}
Verificación esperada
Tras abrir el monitor serie a 9600 baudios, el mensaje «Nano listo» aparece aproximadamente 2 s después: es la huella del reinicio automático. Los comandos 'l' y 'v' responden inmediatamente. Al enviar texto ANTES de que termine el bootloader, se observa que los bytes desaparecen — la trampa es observable y está documentada.
Errores frecuentes
- Enviar una cadena de configuración nada más abrir el puerto: el bootloader intercepta los primeros bytes tras el reinicio por DTR; siempre esperar el mensaje de listo en la tarjeta.
- Conectar un ESP8266 al pin de 3,3 V del Nano: este pin solo proporciona 50 mA y la conexión se corta durante la transmisión; alimentar el módulo por separado.
- Clon CH340 sin driver: no aparece ningún puerto COM; instalar el driver WCH (las tarjetas oficiales usan el driver VCP de FTDI).
- Baudrate incorrecto en el PC: desfilan caracteres ilegibles; 9600 debe coincidir en ambos lados.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
buzzer-melodie.inoArduinoservo-sweep.inoArduinoultrason-hcsr04.inoArduinolcd-i2c.inoArduinoeeprom-contre.inoArduinosommeil-watchdog.inoArduino