🛠 Console série : câblage du connecteur 6 broches et pièges DTR/TX-RX

Arduino Pro Mini · intermediaire · Schéma : IMG-pro-mini-intermediaire-5-promini-console-serie-ftdi.svg — Arduino Pro Mini reliée à un adaptateur USB-série par le connecteur 6 broches, croisement TX/RX, capacité de 100 nF sur la ligne DTR/reset qui avale les premiers octets

Objetivos

Dominar el único canal de comunicación de la Pro Mini: el único UART por hardware (pines 0 RX / 1 TX) conectado al conector de programación de 6 pines. Construimos una mini-consola de comandos y comprendemos las dos trampas legendarias de la placa: el cruce TX↔RX al cablear un adaptador artesanal (CP2102, otro Arduino), y el auto-reset por DTR — una pata del conector está conectada a la línea de reset mediante un condensador de 100 nF, por lo que la apertura del puerto reinicia la placa y el bootloader se traga los primeros bytes.

Material

Código completo

// Mini-console serie : commande 'l' = LED, 'v' = valeur analogique
const uint8_t LED = LED_BUILTIN;

void setup {
  Serial.begin(57600);
  pinMode(LED, OUTPUT);
  // Patiente ~2 s : laisse passer le reset DTR + la fenetre du bootloader
  uint32_t t0 = millis;
  while (millis - t0 < 2000) { while (Serial.available) Serial.read; }
  Serial.println(F("Pro Mini prete. 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 57600 baudios, el mensaje «Pro Mini lista» aparece aproximadamente 2 s después: es la huella del reinicio automático provocado por el condensador de 100 nF en DTR. Los comandos 'l' y 'v' responden inmediatamente. Al enviar texto ANTES de que finalice el bootloader, se observa que los bytes desaparecen — la trampa es observable y está documentada. Con un simple cable FTDI (sin DTR), no hay reinicio automático: hay que pulsar el botón de reset justo antes de la carga del programa.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales