🛠 Trace horodatée de capteurs sur le port série

LilyPad Arduino · intermediaire · Schéma : IMG-lilypad-intermediaire-3-lilypad-trace-capteurs-serie.svg — Capteurs lumière (A2) et température (A3) reliés par fil conducteur, câble FTDI vers un portable affichant une trace CSV horodatée.

Objetivos

Transformar la LilyPad en una mini grabadora: leer dos sensores (luz en A2, temperatura en A3), registrar la hora de cada medición con millis e imprimir un registro CSV copiable en una hoja de cálculo. Se descubre el muestreo sin delay, la transmisión serie mediante FTDI y la optimización de memoria con F.

Material

Código completo

// Trace capteurs horodatée en CSV — lumière A2, température A3
const uint8_t LUM = A2;
const uint8_t TMP = A3;
const unsigned long PERIODE = 1000; // 1 mesure par seconde
unsigned long dernierTour = 0;

void setup {
  Serial.begin(9600);                      // via FTDI ; 9600 suffit pour 2 capteurs
  Serial.println(F("millis;lumiere;temp_C")); // en-tête CSV, F économise la SRAM
}

void loop {
  unsigned long maintenant = millis;
  if (maintenant - dernierTour < PERIODE) return; // sans delay : pas de dérive
  dernierTour = maintenant;

  int lum = analogRead(LUM);                 // 0..1023
  int mv  = analogRead(TMP) * 5000L / 1023;  // millivolts (AVcc ≈ 5 V)
  int dixC = mv - 500;                       // TMP36 : 10 mV/°C, 500 mV à 0 °C

  Serial.print(maintenant);  Serial.print(';');
  Serial.print(lum);         Serial.print(';');
  Serial.print(dixC / 10);   Serial.print('.');
  Serial.println(dixC % 10);
}

Verificación esperada

Una línea por segundo con el formato «milisegundos;luz;temperatura», por ejemplo 12000;642;24.8. Al apretar el sensor de temperatura entre los dedos, el valor sube unos grados en pocos segundos. La cabecera CSV solo aparece una vez al inicio; el registro se copia del monitor serie a una hoja de cálculo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales