[Proteus versión 8.2 sp2]

En esta entrada queremos compartir con vosotros un proyecto que utiliza un shield para leer y escribir datos en una tarjeta del tipo SD o MicroSD. De esta forma, podemos incluir en nuestros proyectos un histórico de nuestros procesos para su posterior análisis. El shield está disponible con la versión de Proteus dedicada a la simulación de microprocesadores Arduino. En concreto este shield se suministra como un recorte de proyecto con el nombre: Arduino SD Card Breakout Board.pdsclip.

Para poder probar el funcionamiento del shield, vamos a escribir en la tarjeta los datos leídos a través de una entrada digital. Para simular los valores, utilizamos un potenciómetro conectado a dicha entrada con el que simulamos los valores de un lector de nivel de un pozo de agua. La conversión de las lecturas analógicas se han calculado para que las lecturas expresen valores entre 0 y 5mts de altura del nivel del agua.

Este shield está disponible en diferentes webs para comprarlo. En la web de Adafruit se puede encontrar en el siguiente enlace: http://www.adafruit.com/products/1141 . También es sencillo encontrar varios shields similares en otras webs a precios muy reducidos: http://www.dx.com/p/spi-microsd-card-adapter-v0-9b-for-arduino-works-with-official-arduino-board-246784#.VSF1VF2sUpR.

Para utilizar el lector de tarjetas SD con comodidad, nos ayudaremos de la librería SD.h. Podemos encontrar toda la información en la web oficial de Arduino: http://arduino.cc/en/Reference/SD.

La información completa sobre la librería Hubor.cpp utilizada en este proyecto se puede encontrar en http://huborarduino.com/programacion/curso-programacion/44-leccion22 En este caso la utilizamos para usar las funciones de tiempo y realizar las escrituras en la tarjeta a intervalos de un segundo.

El montaje de ejemplo utilizado para este proyecto se muestra en la siguiente imagen:

CursoShields008 001

El proyecto utiliza el shield para controlar la lectura de la entrada analógica y almacenar los datos en un fichero guardado en la tarjeta SD. La primera tarea consiste en inicializar la tarjeta SD para asegurarnos que la tarjeta está accesible. Para comprobar el funcionamiento en la simulación, podemos utilizar los botones al lado del modelo de lector de tarjetas SD para expulsarla y comprobar que funciona bien esta parte del programa. La tarjeta aparece más fuera o más dentro del lector según esté introducida o expulsada.

CursoShields008 002

A continuación, comprobamos si existe en la tarjeta SD un fichero llamado FICH001.TXT.Si existe lo borramos y si no existe lo creamos nuevo en el directorio raíz de la tarjeta.

Una vez hecho esto, realizamos diez lecturas analógicas (una cada segundo) y las almacenamos en la tarjeta SD. Al grabar las diez lecturas, cerramos el fichero y ya dejamos el programa sin más trabajo.

También utilizamos el terminal para ayudar al lector a saber en qué fase del trabajo nos encontramos mediante mensajes informativos.

CursoShields008 003

El modelo del lector de tarjetas SD utiliza un fichero para simular el contenido de la tarjeta SD. En el menú contextual podemos elegir el fichero que vamos a utilizar. En el fichero con el proyecto, hemos incluido un fichero para simular una tarjeta SD de 4Mb.

CursoShields008 004

Al acabar la ejecución del proyecto, podemos comprobar el contenido del fichero FICH001.TXT y ver que se han apuntado correctamente las lecturas efectuadas.

CursoShields008 005

El fichero con el proyecto completo (esquema y software) se puede descargar desde este enlace:

https://app.box.com/s/f0ev07ur1croz6zomsasliyq1csj0lie

Una vez más, esperamos que este ejemplo sirva de guía al lector para profundizar en la utilización de este tipo de shield dentro de sus proyectos con Arduino.

 

Comparte este artículo en redes sociales

Submit to FacebookSubmit to Google PlusSubmit to TwitterSubmit to LinkedIn