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 mostrar un ejemplo sencillo de utilización de un shield para utilizar el convertidor serie (bus SPI) a paralelo 74HC595. 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 74HC595 Shift Register Breakout Board.pdsclip

Además, aprovechamos y tenemos también un ejemplo de utilización del shield que nos permite implementar una barra de leds. Su nombre como recorte de proyecto es Arduino Arduino LED Bar Breakout Board.pdsclip y también está disponible con la versión de Proteus dedicada a la simulación de microprocesadores Arduino.

Por último, completamos el proyecto utilizando el instrumento virtual de Proteus depurador SPI, que nos permite analizar todas las comunicaciones establecidas sobre el bus serie SPI.

Este shield está disponible desde la web de SparkFun en la siguiente dirección: https://www.sparkfun.com/products/10680

Podemos encontrar una información muy interesante sobre el funcionamiento del conversor 74HC595 en la siguiente dirección: http://electrocirc.blogspot.com.es/p/simulacion-de.html. Y también podemos encontrar información del uso de este conversor con Arduino en este otro enlace (esta información está en inglés): http://arduino.cc/en/pmwiki.php?n=tutorial/ShiftOut. En este segundo enlace podemos encontrar ejemplos de utilización de varios 74HC595 al mismo tiempo, que pueden también simularse con Proteus.

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

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

CursoShields005 001

El proyecto gobierna los ocho primeros leds de una barra de 10 leds, enviando una secuencia de números del 1 al 255 y mostrando su valor binario con ayuda de los leds. En el instrumento virtual depurador SPI podemos comprobar todas la información que se transmite a través del bus serie.

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

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

Una vez más, esperamos que este ejemplo sirva de guía al lector para iniciarse en la utilización de este tipo de shield.

 

[Proteus versión 8.2 sp2]

En nuestra entrada del proyecto Shields005 comentábamos que era posible utilizar más de un 74HC595 para aumentar a más de ocho las salidas disponibles. Por ejemplo tener 16 salidas utilizando 2 shields de este tipo. Durante este tiempo, son varios los lectores que nos han pedido que escribamos un ejemplo de cómo se hace. Así que esta entrega trata precisamente de esta cuestión: cómo utilizar dos shields idénticos con un conversor 74HC595 cada uno de ellos para obtener un conversor serie paralelo de 16 bits.

La información básica disponible en internet sobre el uso de un shield de este tipo debe consultarse en nuestro proyecto anterior: http://huborarduino.com/proyectos/52-shields005

En este proyecto utilizamos los dos shields para mandar un número entero (16 bits) a los dos conversores. Por lo tanto podemos gobernar 16 leds colocados en sus salidas. La salida Q7 del primer 74HC595 se une con el pin DS del segundo. De esta forma al ir desplazándose los bits de uno al otro, conseguimos nuestro propósito de gobernar 16 salidas.

Hemos numerado las salidas del primer 74HC595 del 0 al 7 (los primeros 8 bits) y las del segundo del 8 al 15 (los úlitmos 8 bits. Así, logramos de forma sencilla saber que bit de nuestro número entero ilumina que led. La salida 0 muestra el bit menos significativo y la salida 15 el de más peso.

Para facilitar la compresión del momento concreto en que se encuentra la ejecución de nuestro programa, utilizamos el shield del terminal virtual y le mandamos un mensaje en cada iteración de nuestro bloque con el valor del contador en decimal y en hexadecimal.

Como empezar con el contador a cero significaría tener que esperar mucho tiempo (un poco más de dos minutos) hasta que entra en juego el segundo 74HC595, hemos inicializado la variable usada como contador -Contador.numInt[0]- con un valor de 4090 en decimal (0x0FFB) en la línea 40 de nuestro código. De esta manera, ya se ve desde el principio el funcionamiento en las dos barras de leds. Por supuesto que el lector podrá de forma muy rápida y sencilla empezar con el contador al valor que desee sólo cambiando esta línea.

Puesto que la función que utilizamos para enviar la información al 74HC595 sólo envía un byte de cada vez y nuestra variable es entera (dos bytes, para poder enviar los dos bytes hemos tenido que utizar dos veces seguidas la función shiftOut(). La primera vez mandamos el byte más significativo y la segunda el de menos peso.

shiftOut(dataPin, clockPin, MSBFIRST, Contador.numByte[1]);
shiftOut(dataPin, clockPin, MSBFIRST, Contador.numByte[0]);

Para facilitar el envío del byte alto y bajo de nuestra variable, hemos utilizado una "union". Para más información sobre este uso de las uniones del lenguaje C se puede consultar nuestra lección 20 del curso de programación de Arduino: http://huborarduino.com/programacion/curso-programacion/41-leccion20

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

CursoShields006 001

El proyecto gobierna los dieciseis primeros leds de dos barras de 10 leds, enviando una secuencia de números del 4090 al 65.535 y mostrando su valor binario con ayuda de los leds. En el instrumento virtual depurador SPI podemos comprobar todas la información que se transmite a través del bus serie.

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

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

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.

 

[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.

 

[Proteus versión 8.2 sp2]

En esta entrada queremos mostrar un ejemplo sencillo de utilización de un shield para utilizar una sonda termopar del tipo K con ayuda del amplificador operacional AD8495  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 AD8495 K-Type Thermocouple Amplifier Breakout Board.pdsclip

Para poder probar el funcionamiento del shield, tenemos que utilizar una sonda de temperatura (el termopar del tipo K). Podemos encontrar información del funcionamiento de estas sondas de temperatura en la wikipedia: http://es.wikipedia.org/wiki/Termopar.

Proteus nos proporciona en sus librerías muchos dispositivo diferentes para simular sondas de temperatura. En todos estos modelos podemos simular la temperatura que está leyendo la sonda y comprobar el funcionamiento de nuestro equipo a dichos cambios.

shield007 001

 

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/177

Podemos encontrar la información completa sobre el funcionamiento del amplificador AD8495 en la siguiente dirección: http://www.analog.com/static/imported-files/data_sheets/AD8494_8495_8496_8497.pdf

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

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

CursoShields007 001

El proyecto utiliza el shield para controlar la lectura de la sonda termopar y vuelca por el terminal los valores leídos (unidades del conversor analógico digital, tensión, temperatura en grados centrígados y temperatura en grados fahrenheit.

CursoShields007 002

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

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

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.

 

[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.

 

Secciones incluidas en esta categoría:

quadcopter

 

Sección dedicada al diseño, construcción y programación de los helicópteros de cuatro hélices (quadrotor o quadcopter).

 

 


Esta página es propiedad de Hubor.

2014.

Guardar
Preferencias de usuario para las Cookies
Estamos utilizando las cookies para asegurarnos de que le podemos ofrecer el mejor servicio posible en este sitio web. Si rechaza el uso de las cookes, es posible que esta web no funcione como estaba previsto por el equipo de programadores.
Aceptar todo
Rechazar todo
Leer más
Estadísticas
Las cookies de preferencias permiten a la página web recordar información que cambia la forma en que la página se comporta o el aspecto que tiene, como su idioma preferido o la región en la que usted se encuentra.
Google Analytics
Aceptar
Rechazar