Arduino Uno Data Logger Shield (No incluye Bateria)
- Placa compatible
- Arduino UNO
- Tarjeta
- SD de tamaño normal (usa un adaptador para microSD); se comunica por SPI
- Selección de la SD
- Pin 10 (CS)
- Reloj
- DS1307 por I2C en A4 (SDA) y A5 (SCL)
Características
Shield para Arduino UNO que guarda datos en una tarjeta SD con la fecha y la hora de cada medición. Combina un lector de tarjetas SD de tamaño normal, un reloj de tiempo real DS1307 con portapila y una zona perforada para soldar tus propios circuitos.
No incluye la pila CR1220 que mantiene la hora cuando el Arduino está apagado.
| Placa compatible | Arduino UNO |
|---|---|
| Tarjeta | SD de tamaño normal (usa un adaptador para microSD); se comunica por SPI |
| Selección de la SD | Pin 10 (CS) |
| Reloj | DS1307 por I2C en A4 (SDA) y A5 (SCL) |
| Pila del reloj | CR1220 de 3 V (no incluida) |
| Otros | Regulador de 3,3 V para la tarjeta y zona de prototipos |
¿Para qué sirve?
- Registrar temperatura, humedad o voltajes con fecha y hora
- Estaciones meteorológicas y monitoreo de cultivos
- Medir consumos o variables durante días sin computadora
Código de prueba
Instala desde el Gestor de librerías del IDE de Arduino: RTClib (de Adafruit)
// Prueba del Data Logger Shield: cada 5 segundos guarda la fecha, la hora
// y la lectura de A0 en el archivo DATOS.CSV de la tarjeta SD.
#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <RTClib.h>
const int PIN_SD = 10; // selección (CS) de la tarjeta SD en este shield
RTC_DS1307 rtc;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("No se encuentra el reloj DS1307 (revisa la pila CR1220)");
while (true) {}
}
if (!rtc.isrunning()) {
// Primera vez: pone el reloj en la fecha y hora en que se compiló el código
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
if (!SD.begin(PIN_SD)) {
Serial.println("No se encuentra la tarjeta SD (formato FAT32)");
while (true) {}
}
Serial.println("Data Logger listo");
}
void loop() {
DateTime t = rtc.now();
int lectura = analogRead(A0);
// Línea con formato: 2026-10-11 14:05:30,512
char linea[32];
snprintf(linea, sizeof(linea), "%04d-%02d-%02d %02d:%02d:%02d,%d",
t.year(), t.month(), t.day(), t.hour(), t.minute(), t.second(), lectura);
File archivo = SD.open("DATOS.CSV", FILE_WRITE);
if (archivo) {
archivo.println(linea);
archivo.close();
Serial.println(linea);
} else {
Serial.println("No se pudo escribir en la tarjeta");
}
delay(5000);
}
La librería SD ya viene con el IDE. Formatea la tarjeta en FAT32. La primera vez el código pone el reloj en la hora de la computadora; después abre DATOS.CSV en Excel para ver las mediciones.
Precauciones
- Pon la pila CR1220: sin ella el reloj pierde la hora al apagar el Arduino y en muchas placas ni siquiera arranca.
- En un UNO con conector USB grande, revisa que el shield entre completo y que su parte de abajo no toque la carcasa metálica del USB.
- Usa tarjetas de 32 GB o menos, formateadas en FAT32.
- No saques la tarjeta mientras se está escribiendo: puedes dañar el archivo.
Fuentes consultadas: Foro de Arduino: Data Logging Shield de Deek-Robot · Botland: Datalogger Shield con RTC DS1307 y lector SD. Ficha preparada por Electrodrone; verifica siempre el voltaje de tu módulo antes de conectarlo.