Datalogger SD

Uso de la biblioteca SD para registrar datos.

Este ejemplo muestra cómo utilizar la Biblioteca de tarjetas SD para registrar los datos de tres sensores analógicos a una tarjeta SD.

Hardware necesario

Placa Arduino o Genuino
Escudo de Ethernet (u otra placa con una ranura SD)
3 Potenciómetros de10k ohm
Cable para conexionado
Protoboard
Tarjeta SD formateada

Circuito

La placa Arduino o Genuino tiene que ser conectada al escudo Ethernet. Los tres potenciómetros pueden sustituirse por otros sensores analógicos,conectados de acuerdo con sus características técnicas.

Esquema


Código

El código de abajo está configurado para su uso con un escudo de Ethernet, que tiene una ranura de SD incorporada. En setup (), se llama a SD.begin (), nombrando el pin 4 como el pin CS. Este pin varía dependiendo de la marca del escudo o placa.

En loop (),  se crea una cadena para contener la información de tres sensores analógicos. Se repite el código para cada uno de los sensores, añadiendo sus datos a la cadena.

A continuación, el archivo en la tarjeta SD se abre llamando a SD.open (). Una vez disponibles, los datos se escriben en la tarjeta utilizando dataFile.println (). El archivo debe cerrarse con dataFile.close () para guardar la información.

// Registro de datos en tarjeta SD

 // Este ejemplo muestra cómo guardar los datos de tres sensores
 // analógicos en una tarjeta SD utilizando la biblioteca SD.

 // Circuito:
 // * Sensores analógicos en las entradas  analógicas 0, 1, y 2
 // * Tarjeta SD conectada al bus SPI de la siguiente manera:
 // ** MOSI - pin 11
 // ** MISO - pin12
 // ** CLK - pin 13
 // ** CS - pin 4

 // creado el 24 de Noviembre de 2010
 // modificado el 9 de Abril de 2012 por Tom Igoe

 //Este código de ejemplo es de dominio público.

 #include <SPI.h>
 #include <SD.h>

 const int chipSelect = 4;

 void setup() {
   // Abre la comunicacion serie y espera a que se abra el puerto:
   Serial.begin(9600);
   while (!Serial) {
     ; // espera a que el puerto serie se conecte. Necesario para el puerto USB nativo solamente
   }


   Serial.print("Inicializando la tarjeta SD...");

   // ver si la tarjeta está presente y se puede inicializar:
   if (!SD.begin(chipSelect)) {
     Serial.println("Card failed, or not present");
     // no hacer nada más:
     return;
   }
   Serial.println("Tarjeta inicializada.");
 }

 void loop() {
   // hacer una cadena ensamblar los datos de inicio de sesión:
   String dataString = "";

   // leer tres sensores y anexar a la cadena:
   for (int analogPin = 0; analogPin < 3; analogPin++) {
     int sensor = analogRead(analogPin);
     dataString += String(sensor);
     if (analogPin < 2) {
       dataString += ",";
     }
   }

   // Abre el archivo. tenga en cuenta que sólo un archivo puede ser abierto a la vez,
   // así que hay que cerrar éste antes de abrir otro.
   File dataFile = SD.open("datalog.txt", FILE_WRITE);

   // si el archivo está disponible, escribir en él:
   if (dataFile) {
     dataFile.println(dataString);
     dataFile.close();
     // imprimir al puerto serie también:
     Serial.println(dataString);
   }
   // Si el archivo no está abierto, aparecerá un error:
   else {
     Serial.println("Error abriendo datalog.txt");
   }
 }
  

No hay comentarios:

Publicar un comentario