🛠 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.

Objectifs

Transformer la LilyPad en mini-enregistreur : lire deux capteurs (lumière sur A2, température sur A3), horodater chaque mesure avec millis et imprimer une trace CSV copiable dans un tableur. On découvre l'échantillonnage sans delay, le débit série via FTDI et l'optimisation mémoire avec F.

Matériel

Code complet

// 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);
}

Vérification attendue

Une ligne par seconde au format « millisecondes;lumière;température », par exemple 12000;642;24.8. En pinçant le capteur de température entre les doigts, la valeur monte de quelques degrés en quelques secondes. L'en-tête CSV n'apparaît qu'une fois au démarrage ; la trace se copie du moniteur série vers un tableur.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels