huborarduino.com

La web de Hubor para la simulación de Arduino con Proteus

Banner Guia Programacion Arduino Con Proteus

[Proteus versión 8.2 sp2]

En esta entrada queremos compartir con vosotros un proyecto derivado del anterior, pero aumentando un poco la complejidad y mejorando la funcionalidad para implementar un registro histórico con marcado de la hora en que se produce cada medida. Utilizaremos una entrada analógica para leer los datos de la altura de nivel de un pozo de agua (simularemos los valores de lectura del sensor de nivel con un potenciómetro),  un shield para leer la hora actual desde un reloj de tiempo real y escribir los datos en un fichero almacenado en una tarjeta del tipo SD o MicroSD. 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 Data Logger Shield.pdsclip.

Para poder probar el funcionamiento del shield, vamos a leer la hora actual y escribir en la tarjeta los datos leídos a través de una entrada digital con el marcado de hora. 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.

Para leer los valores desde el reloj de tiempo real (RTC) utilizaremos la librería RTCLib.h. Podemos encontar toda la información en el siguiente enlace: https://github.com/adafruit/RTClib.

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:

CursoShields009 001 

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.

El segundo paso consiste en inicializar el reloj de tiempo real. Para ello nos ayudamos de las funciones estándar de la librería.

Una vez hecho esto, realizamos diez lecturas analógicas (una cada segundo) y las almacenamos en la tarjeta SD con el marcado de tiempo de la hora en la que se produjo la lectura. 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.

CursoShields009 002

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.

CursoShields009 003

Puesto que nuestro shield incluye dos leds (uno rojo y otro verde), hemos aprovechado y los hemos utilizado también en nuestro proyecto. Si se produce algún fallo en la inicialización de la tarjeta SD o al crear el fichero encendemos el led rojo (para probar esta funcionalidad, es suficiente con pulsar sobre la tarjeta SD y extraerla). Si todo se ha desarrollado correctamente y se han completado las diez lecturas y sus correspondientes escrituras en el histórico, encendemos el led verde.

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

https://app.box.com/s/5x5vcmlco5mkd8y558zq2dqve0448f0a

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


Esta página es propiedad de Hubor.

2014.

¡Atención! Este sitio usa cookies y tecnologías similares. Si no cambia la configuración de su navegador, usted acepta su uso. Ampliar información