huborarduino.com

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

Banner Guia Programacion Arduino Con Proteus

[Proteus versión 8.1]

En la lección de hoy vamos a aprender a mostrar información utilizando un display LCD de texto. Un display LCD (siglas del inglés liquid crystal display) o pantalla de cristal líquido, es una pantalla delgada y plana formada por un número de píxeles, en color o monocromos, colocados delante de una fuente de luz o reflectora. Su principal ventaja es que utiliza cantidades muy pequeñas de energía eléctrica.

Lec16 001

Existen pantallas muy variadas en el mercado. Las hay de colores diferentes (monocromo verde, monocromo ámbar o color). Unas tienen capacidad para mostrar sólo caracteres de  texto y otras admiten gráficos. Las hay que se controlan utilizando varios pines de nuestro Arduino (normalmente dos para el control y otros 4 para los datos) o que se comunican con él mediante comunicaciones vía serie. Y, además, las podemos encontrar de  tamaños muy distintos.

Lec16 002

En esta lección, nos vamos a centrar en aquellas que son monocromo y sólo pueden mostrar caracteres de texto. Proteus pone a nuestra disposición una amplia variedad de pantallas de este tipo para que nuestra simulación se adapte lo más precisamente posible a las necesidades de nuestros proyectos.

Lec16 003

En este proyecto vamos a utilizar el modelo LM016L que nos permite simular una pantalla de dos filas de 16 caracteres cada una. Para controlarla utilizaremos 6 pines de nuestro Arduino (dos para el control y cuatro para los datos). El esquema de conexionado se muestra en la siguiente figura.

Lec16 004

Al estar utilizando un dispositivo virtual no tenemos que preocuparnos de gestionar la luminosidad de nuestra pantalla (normalmente se puede graduar para que luzca con más o menos intensidad mediante la utilización de un potenciómetro).

Además, para simplificar aún más las cosas, en Arduino disponemos de una librería llamada LiquidCrystal.h que nos permite gestionar de forma muy sencilla nuestra pantalla. De esta manera nos podemos olvidar de las complejidades derivades de todas las escrituras a bajo nivel con la correspondiente gestión de activación y desactivacióin de los pines. 

Vamos a escribir un sencillo programa que muestra en la pantalla un contador de segundos. Con la ayuda de la librería el código es así de sencillo:

Lec16 005

Al principio se realiza una llamada a la librería LiquidCrystal.h. A continuación utilizamos dos variables que nos ayudan a definir las filas y columnas de nuestra pantalla. Configuramos los pines de Arduino que vamos a utilizar para controlar nuestra pantalla con la función lcd() de la librería.

En la función setup() aprovechamos para inicializar nuestra pantalla con 2 filas y 16 caractéres y escribir en la primera fila de nuestra pantalla un mensaje que muestre el rótulo "segundos:"

En la función loop() situamos el cursor en el primer carácter de la segunda fila (tener en cuenta que siempre empezamos a contar desde la posición 0, por eso el primer carácter ocupa la posición 0 y la segunda línea la posición 1). A continuación escribimos en dicha posición la lectura del contador interno del Arduino de los milisegundos que han transcurrido desde que lo encendemos (utilizando la función millis() ) y para obtener la cuenta en segundos dividimos por 1000 ese valor.

Si compilamos y generamos la simulación, tendremos un contador de segundos en nuestra pantalla de cristal líquido.

Lec16 006

El control de una pantalla no puede ser más sencillo. Simplemente hay que configurarlo al principio y luego, cada vez que deseamos refrescar la información presentada al usuario, tenemos que colocar el cursor en el lugar deseado y escribir la cadena de texto correspondiente.

Para completar la lección, vamos a realizar un segundo proyecto. Vamos a añadir tres pulsadores a nuestro anterior montaje. Así que ahora tenemos el siguiente diseño electrónico:

Lec16 007

El programa que vamos a escribir ahora, nos permitirá tener un reloj en nuestra pantalla y los tres pulsadores nos servirán para configurar la hora, minuto y segundo que deseemos. El código es el siguiente:

Lec16 008

Lec16 009

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

El esquema es el mismo: configuramos nuestra pantalla y escribimos el mensaje de la primera línea que permanece siempre fijo. Como el bucle se ejecuta cada 1 segundos, cada iteración vamos sumando un nuevo segundo. Cuando llegamos a 60 segundos, incrementamos en una unidad los minutos. Cuando llegamos a 60 minutos, incrementamos en una unidad las horas. Por último, controlamos la acción del usuario sobre los pulsadores para incrementar los segundos, minutos u horas.

El resultado de compilar y ejecutar la simulación se muestra a continuación.

Lec16 010

Observe que el programa no reacciona de forma inmediata al uso de los pulsadores. La razón es que tenemos la mayor parte del tiempo a nuestro programa parado en el delay situado al final del código. Por eso hay que tener pulsado el botón y ver que tarda un segundo en reaccionar. Más adelante en otra lección veremos cómo podemos solventar este problema de forma satisfactoria.

Esperamos que la utilización de pantallas LCD de texto ya sea un asunto sin secretos para el usuario.

 

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.

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