🛠 Console série et piège DTR du FTDI
Objectifs
Maîtriser la console série sur le Nano classique : l'unique UART matériel (broches 0/1) passe par le pont USB-série FTDI FT232RL sur les cartes officielles — la puce ATmega328P elle-même n'a pas d'USB natif. On construit une mini-console de commandes et on comprend le piège DTR : l'ouverture du port réinitialise la carte via une capacité de 100 nF, et le bootloader avale les premiers octets émis juste après la connexion.
Matériel
- 1 × Arduino Nano classique (FTDI FT232RL d'origine, ou clone CH340 avec driver WCH)
- 1 × câble USB Mini-B
- PC avec moniteur série (IDE Arduino, PuTTY, ou screen)
Code complet
// Mini-console série : 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
}
}
Vérification attendue
Après ouverture du moniteur série à 9600 bauds, le message « Nano prêt » apparaît environ 2 s plus tard : c'est la trace du reset automatique. Les commandes 'l' et 'v' répondent immédiatement. En envoyant du texte AVANT la fin du bootloader, on constate que les octets disparaissent — le piège est observable et documenté.
Erreurs fréquentes
- Envoyer une chaîne de configuration dès l'ouverture du port : le bootloader intercepte les premiers octets après le reset DTR ; toujours attendre le message de prêt côté carte.
- Brancher un ESP8266 sur le 3,3 V du Nano : cette broche ne fournit que 50 mA et la liaison saute en pleine émission ; alimenter le module séparément.
- Clone CH340 sans driver : aucun port COM n'apparaît ; installer le driver WCH (les cartes officielles utilisent le driver VCP FTDI).
- Mauvais baudrate côté PC : des caractères illisibles défilent ; 9600 doit correspondre de part et d'autre.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
buzzer-melodie.inoArduinoservo-sweep.inoArduinoultrason-hcsr04.inoArduinolcd-i2c.inoArduinoeeprom-contre.inoArduinosommeil-watchdog.inoArduino