El registro de datos es un aspecto crucial de muchos IoT, monitoreo ambiental y proyectos basados en sensores. Con un Arduino y un módulo de tarjeta SD, puede Datos del sensor de almacenamiento, marcas de tiempo y otras lecturas Para el análisis futuro. Esta guía le mostrará cómo Conecte un módulo de tarjeta SD a Arduino, escriba y lee datos, y solucione problemas comunes.
1. Lo que necesitas
✅ Arduino tablero (Uno, mega, nano, etc.)
✅ Módulo de tarjeta Micro SD (basado en SPI)
✅ Tarjeta microSD (Fat32 formateada, 2GB - 32 GB recomendada)
✅ Cables de jersey
✅ Sensores (opcional, por ejemplo, DHT11, BMP280, etc.)
🔹 Nota: El módulo SD se comunica con Arduino usando SPI (interfaz periférica en serie).
2. Cableado el módulo de tarjeta SD a Arduino
Pin de módulo de tarjeta SD | Arduino uno pin | Arduino mega pin |
---|---|---|
VCC | 5V | 5V |
Gnd | Gnd | Gnd |
Miso | 12 (SPI MISO) | 50 (SPI MISO) |
Mosi | 11 (SPI Mosi) | 51 (SPI Mosi) |
Sck | 13 (SPI SCK) | 52 (SPI SCK) |
CS (selección de chip) | 10 (SPI CS) | 53 (SPI CS) |
3. Instalación de la biblioteca requerida
- Abierto Arduino IDE.
- Ir a Sketch → incluir biblioteca → administrar bibliotecas.
- Buscar DAKOTA DEL SUR e instalar el Biblioteca SD de Arduino.
4. Inicializando la tarjeta SD (prueba si funciona el módulo SD)
Use lo siguiente Código de prueba básico Para verificar si el módulo SD está funcionando:
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10; // Set CS pin for SD card
void setup() {
Serial.begin(115200);
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
Serial.println("SD card is ready.");
}
void loop() {
// Nothing here
}
Lo que hace este código:
✔ Inicializa el Módulo SD.
✔ Huellas dactilares "La tarjeta SD está lista" si se detecta.
✔ Huellas dactilares "¡Falló la inicialización de la tarjeta SD!" Si hay un error.
🔹 Solución de problemas:
✅ Verifique que la tarjeta SD sea Fat32 formateado.
✅ Asegurar Cableado correcto (Miso, Mosi, SCK y CS).
✅ Probar otro Pin CS (por ejemplo, 4 en lugar de 10) y actualizar el código.
5. Escribir datos a la tarjeta SD
Este ejemplo crea un archivo (data.txt
) y le escribe lecturas del sensor.
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
File dataFile = SD.open("data.txt", FILE_WRITE);
if (dataFile) {
dataFile.println("Hello, this is a test log!");
dataFile.close();
Serial.println("Data written to SD card.");
} else {
Serial.println("Failed to open file.");
}
}
void loop() {
// Nothing here
}
Lo que hace este código:
✔ Crea u abre data.txt
.
✔ Escritura "¡Hola, este es un registro de pruebas!" al archivo.
✔ Cierra el archivo después de escribir.
🔹 Funciones de manejo de archivos:
✔ SD.open("filename.txt", FILE_WRITE);
→ Abrir archivo para escribir.
✔ dataFile.println("Text");
→ Escribir datos en el archivo.
✔ dataFile.close();
→ Cierre el archivo para guardar datos.
6. Lectura de datos de la tarjeta SD
Use este código para Leer y mostrar datos de la tarjeta SD.
#include <SPI.h>
#include <SD.h>
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
File dataFile = SD.open("data.txt");
if (dataFile) {
Serial.println("Reading file...");
while (dataFile.available()) {
Serial.write(dataFile.read()); // Print file content
}
dataFile.close();
} else {
Serial.println("Failed to open file.");
}
}
void loop() {
// Nothing here
}
Lo que hace este código:
✔ Abertura data.txt
para leer.
✔ Imprime el contenido del archivo a Monitor en serie.
🔹 Consejo: Asegúrese de que el archivo existe antes de leer para evitar errores.
7. Datos del sensor de registro a la tarjeta SD
Este ejemplo registra Datos de temperatura y humedad de un sensor DHT11.
Componentes requeridos
✅ Sensor de temperatura y humedad DHT11
✅ Biblioteca DHT (Biblioteca de sensores DHT Adafruit)
Cableado para el sensor DHT11
PIN DHT11 | Alfiler de arduino |
---|---|
VCC | 5V |
Gnd | Gnd |
DATOS | 2 |
Código: Registro de datos DHT11 a la tarjeta SD
#include <SPI.h>
#include <SD.h>
#include <DHT.h>
#define DHTPIN 2 // Pin connected to DHT sensor
#define DHTTYPE DHT11 // Define sensor type (DHT11 or DHT22)
DHT dht(DHTPIN, DHTTYPE);
const int chipSelect = 10;
void setup() {
Serial.begin(115200);
dht.begin();
if (!SD.begin(chipSelect)) {
Serial.println("SD card initialization failed!");
return;
}
}
void loop() {
float temp = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temp) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
File dataFile = SD.open("log.txt", FILE_WRITE);
if (dataFile) {
dataFile.print("Temperature: ");
dataFile.print(temp);
dataFile.print(" °C, Humidity: ");
dataFile.print(humidity);
dataFile.println(" %");
dataFile.close();
} else {
Serial.println("Failed to write to SD card.");
}
Serial.print("Logged: Temp = ");
Serial.print(temp);
Serial.print(" °C, Humidity = ");
Serial.println(humidity);
delay(2000); // Log every 2 seconds
}
Lo que hace este código:
✔ Lectura Temperatura y humedad desde Sensor DHT11.
✔ Registra los datos en log.txt
en la tarjeta SD.
✔ Imprime los valores para Monitor en serie.
8. Consejos de solución de problemas
Problema: Tarjeta SD no detectada?
✅ Asegúrese de que la tarjeta SD sea Fat32 formateado.
✅ Verificar MISO, MOSI, SCK y CS CS.
✅ Intentar una tarjeta SD diferente (Algunas tarjetas son incompatibles).
Problema: ¿Los datos no guardan?
✅ Siempre Cierre el archivo usando dataFile.close();
.
✅ Asegurar suficiente espacio de almacenamiento está disponible en la tarjeta SD.
9. Aplicaciones prácticas
✔ Sistema de monitoreo del clima - Temperatura de registro, humedad y presión del aire.
✔ Monitoreo de energía - Registro voltaje y corriente lecturas con el tiempo.
✔ Seguimiento de GPS - Almacenar latitud y longitud Datos de un módulo GPS.
✔ Registro de eventos - Grabar disparadores del sensor o presionar el botón.
10. Conclusión
Usando un Módulo de tarjeta SD con Arduino es una excelente manera de almacenar datos del sensor, registrar eventos o crear un registrador de datos portátil. Con Comunicación SPI, puedes fácilmente Leer y escribir archivos, haciéndolo ideal para Proyectos de IoT y automatización.