Profe Tolocka

Bits, Volts & KVAr

LCD y Keypad Shield para Arduino

En este artículo vamos a analizar y aprender a utilizar un shield que nos provee de un display LCD y cinco teclas de uso múltiple, sumamente útil para nuestros proyectos con Arduino



Es muy común que en nuestros proyectos con Arduino debamos tener alguna comunicación con un usuario humano a través de algún tipo de interfaz para interactuar mostrando y recibiendo información del mismo. Como dispositivo de salida de información podemos usar desde un simple led que nos avisa que se puso en marcha un motor o que se produjo una condición de error, hasta sofisticados displays gráficos que pueden mostrar la evolución de una medición a través de una curva. Lo mismo sucede con los dispositivos de entrada, que permiten recabar información del usuario a través de pulsadores, teclados de distintos tipos o pantallas sensibles al tacto.

Visualización

Fig. 1. Distintos dispositivos para visualizar información: 1) Leds, 2) Displays de 7 segmentos, 3) Matriz de leds, 4) LCD alfanumérico, 5) LCD gráfico

 

Si nuestras necesidades no son muy exigentes y queremos mostrar mas información de la que nos permiten unos cuantos leds, los display LCD alfanuméricos son una excelente opción debido a su bajo costo y facilidad de uso. Además, existe una gran variedad, de distintos tamaños, cantidad de caracteres y colores, están muy bien documentados, son fáciles de conectar y de programar.

Aunque no es difícil conectar directamente un LCD de este tipo a un Arduino, en este artículo describiré solamente como usar un Shield en particular que resuelve estos detalles, además de proveernos de teclas que podemos aprovechar para el ingreso de información por parte del usuario. Este shield, conocido como “LCD Keypad Shield” es fabricado por la empresa DFRobot, aunque parecen existir distintos clones muy similares. Quienes deseen aprender a conectar el LCD en forma directa, pueden consultar este otro artículo.

 

Descripción

El shield consiste de un LCD alfanumérico de 2 filas de 16 caracteres cada una, de color azul con un backligh (luz trasera) a led de color blanco [1]. El contraste del LCD se puede controlar manualmente a través de un trimpot accesible desde el frente de la placa. Además, cuenta con cinco teclas del tipo “push-button” de uso múltiple [3] y una tecla de reset [4]. El Shield se conecta a la placa Arduino a través de dos tiras de pines macho [5] y cuenta con conexiones en la parte superior para dar accesibilidad al resto de las señales no utilizadas por el shield [6] y un conector de programación (ICSP) [7].

 

Shield

 

Esquemático

El esquemático del shield, provisto por el fabricante, se puede ver en la siguiente imagen (click aquí para ver en tamaño completo). Como se puede apreciar, el LCD usa 4 pines de datos (D4, D5, D6 y D7) y dos de control (D8 y D9). Las teclas se conectan a la entrada analógica AD0 y están dispuestas de una manera bastante poco convencional, formando parte de un divisor resistivo que cambia el valor de tensión según la tecla que se pulse, con lo que se ahorran cuatro entradas. El transistor Q1 tiene por objeto permitir el encendido y el apagado del backlight a través del pin 10, pero hay un error en el shield ya que se omitió conectar una resistencia serie entre este pin y la base del transistor, por lo que se puede producir un daño en el pin si se lo programa como salida y se lo lleva a nivel alto, ya que circulará una corriente excesiva. Lo mejor es dejar D10 como entrada, lo que deja permanentemente prendido el baklight.

 

LCDKeypad_Shield_SCH

 

Programación

Aunque pueden encontrarse varias librerías para este shield y sus versiones posteriores, luego de varias pruebas y algunos fracasos he llegado a la conclusión de que la solución mas simple y sencilla es emplear una función que lea las teclas accediendo directamente a la entrada analógica. A continuación pueden ver un código de ejemplo que va mostrando las teclas que se pulsan, derivado de otro ejemplo que se encuentra en la wiki del fabricante.

Este código emplea la librería “LiquidCrystal” que está incluida en el IDE de Arduino y que contiene todas las funciones necesarias para controlar el LCD y una función denominada “read_LCD_buttons” que lee las teclas de un modo rudimentario.

 

Mas información

Página del fabricante del shield

Funciones de la librería Liquid Crystal. Referencia en inglés y en español

Hoja de datos del HD44780, controlador del LCD alfanumérico

 

2 Comentarios

  1. Cualquier boton que apriete me sale NINGUNA

  2. hola buenas tardes,quisiera saber si con este circuito o placa conectada a arduino uno, puedo mover dos motores pap,uno de izquierda a derecha y otro arriba-a bajo
    usando los botones que tiene.
    Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada.

*

© 2018 Profe Tolocka

Tema por Anders NorenArriba ↑

A %d blogueros les gusta esto: