🛠 Télémétrie série robuste vers le Traceur série

Arduino UNO R3 · intermediaire · Schéma : IMG-uno-r3-intermediaire-2-telemetrie-serie-robuste.svg — UNO R3 reliée en USB à un PC, écran affichant des courbes (Traceur série), annotation du quirk DTR de réinitialisation.

Objetivos

Enviar datos del UNO al PC correctamente: cadenciar el muestreo con micros/millis en lugar de delay, ahorrar SRAM con la macro F, y sobre todo comprender la peculiaridad del reinicio automático DTR: el UNO se reinicia cada vez que se abre el puerto serie y su bootloader «intercepta los primeros bytes» enviados tras la conexión.

Material

Código completo

// Échantillonnage non bloquant 20 Hz sur A0, format Traceur série.
const uint32_t PERIODE_US = 50000;  // 50 ms = 20 Hz
uint32_t precedent = 0;

void setup {
  Serial.begin(115200);
  while (!Serial) { }   // attend l'ouverture du port (utile sur les cartes USB natives)
  Serial.println(F("pret"));  // F : la chaîne vit en flash, pas en SRAM (2 Ko seulement !)
}

void loop {
  uint32_t maintenant = micros;
  if (maintenant - precedent >= PERIODE_US) {
    precedent = maintenant;
    int a0 = analogRead(A0);
    int a1 = analogRead(A1);
    // Le Traceur série trace une courbe par valeur séparée par tabulation :
    Serial.print(a0); Serial.print("\t"); Serial.println(a1);
  }
  // ... ici on peut faire autre chose : le delay ne bloque plus la boucle.
}

Verificación esperada

Herramientas > Trazador serie: dos curvas continuas y regulares, sin huecos. Si abre el Monitor, aparecerá el mensaje «pret» (la placa acaba de reiniciarse: ¡es el DTR!). Pruebe con un terminal en bruto: los 2–3 primeros caracteres emitidos justo después de abrir el puerto pueden perderse, y los primeros bytes que USTED envía pueden ser absorbidos por el bootloader.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales