🛠 Trace horodatée de capteurs sur le port série
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
- 1 LilyPad SimpleSnap + pila de 3,7 V
- 1 sensor de luz LilyPad en A2
- 1 sensor de temperatura LilyPad (TMP36) en A3
- Adaptador FTDI USB-serie + monitor serie a 9600 baudios
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
- delay entre las mediciones: la marca de tiempo se desvía y se pierden mediciones cuando el monitor serie se satura; usar millis como aquí.
- Olvidar F en las cadenas: con 2 KB de SRAM, cada literal almacenado en RAM cuenta.
- Velocidad de transmisión demasiado alta (115200) con un controlador FTDI antiguo: se pierden caracteres; 9600 es seguro.
- > SIN VERIFICAR: Valor exacto de AVcc del SimpleSnap (se asume 5 V nominal, las fichas oficiales se contradicen entre 3,3 V y 5 V); el cálculo en milivoltios debe corregirse en consecuencia.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinopwm-respiration.inoArduinoluxmetre-couture.inoArduinointerrupteur-tilt.inoArduinoservo-balayage.inoArduino