SHIELD LCD 16*2 CON TECLADO (4 PULSADORES) KEYPAD

$6,99

Visualizar datos o interactuar con un menú es ahora más sencillo con el Shield LCD Keypad. El shield cumple la función de Interfaz Hombre-Maquina o HMI, posee una pantalla LCD Alfanumérica como salida de datos y un conjunto de pulsadores como entradas del sistema. Además posee pads para conectar más pulsadores/sensores/salidas.

5 disponibles

SKU: LCD0001 Categorías: , Etiquetas: , , , ,

Descripción

Un LCD o liquid crystal display es la forma más moderna, fácil y práctica de mostrar mensajes con Arduino. Gracias a la filosofía Arduino, existen una serie de placas llamadas shields que nos simplifican la vida a la hora del cableado, alimentación y configuración en Arduino y este es el caso del LCD Shield de DFROBOT con chip HD44780U. Si te suena extraño, no te preocupes, 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.

<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />
<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />

HD44780U es el chip controlador en el que esta basado el LCD. Algo importante para remarcar, es que los botones no están conectados a pines digitales. En cambio los pines están conectados mediante resistencias en serie a un pin analógico A0. Notar que el shield, no nos da acceso al pin A0 si quisiéramos soldarle pines macho. Realmente no es difícil de hacerlo funcionar, simplemente hay que leer el puerto A0. Ahora bien, qué valores de tensión tiene cada botón? Esto se resuelve de dos formas. La primera y autónoma es simplemente darle tensión al modulo, apretar cada botón y medir la tensión. La segunda y más ingenieril es ir a ver la hoja de datos o pagina del fabricante. Existen dos versiones de este shield, por favor mirar en la placa la versión correcta, solo cambia el array de resistencias.

Especificaciones técnicas

  • Voltaje de Operación: 5V DC
  • LCD Alfanumérico 1602: 2 filas, 16 columnas
  • 5 Pulsadores (Arriba, Abajo, Der, Izq, Seleccionar)
  • Pulsador de RESET, para reiniciar el programa de Arduino
  • Potenciometro para regular el contraste del lcd
  • Expansión de pines Analógicos y digitales
  • No usar el pin 10 cuando se usa este Shield
  • Dimensiones: 80 x 58 mm

LCD SHIELD PinOut

Este lcd es muy práctico ya que la unica conexion que necesita es la del arduino a la pc, por ser un shield, solo hay que tener cuidado de unir pin a pin el shield al Arduino y listo.

Pin Función
Analog 0 Button (select, up, right, down and left)
Digital 4 DB4
Digital 5 DB5
Digital 6 DB6
Digital 7 DB7
Digital 8 RS (Data or Signal Display Selection)
Digital 9 Enable
Digital 10 Backlight Control

Existen una excelente pagina shieldlist.org que lista muchos de los shields en el mercado y este no es la excepción. Podes encontrarlo acá.

Parece complicado pero no lo es.

  • Se utiliza el pin analogico A0 para leer la botonera.
  • Los pines digitales son los mínimos indispensables para utilizar cualquier LCD. En este caso se utilizan del D4 al D8 para el LCD y D9 D10 como pines de control.

Desde arriba podemos ver los pines que el LCD Shield nos deja disponibles, los que él no usa los escupe para arriba, para soldar pines macho o hembra o soldar cables.

  • Sobre el backlight hablaremos más abajo en el post.
  • D0-D3 y D11-D13 son los pines que no usa el lcd y son los que nos deja disponibles para usar en el resto del proyecto.
  • El conector del puerto ICSP, lo tenemos íntegro para conectar lo que sea.
<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />
Pinout visto desde el shield
  • Los botones de la botonera, estan conectados de una manera especial para ahorrarnos pines y lo trataremos mas abajo en el post. Todos estan conectados a la entrada analogica A0 y nos adelanta el rango de tensión que debemos leer para saber qué botón se presionó.
  • El botón de reset está ahí por comodidad, dado que el shield tapa el botón de reset original que contiene la placa Arduino.
  • RST es el pin que nos provee el arduino para resetearlo, que está conectado al botón.
  • 3.3v, es la salida de tensión de 3.3v para alimentar circuitos de esta tensión externos al dúo Arduino-LCD Shield.
  • 5v, es la salida de tensión de 5v para alimentar circuitos de esta tensión externos al dúo Arduino-LCD Shield y además alimenta al propio LCD y su circuitería.
  • GND, es el pin de tierra común.
  • Vin, es el pin de tensión de entrada o salida, según como lo quieras usar conociendo lo dicho en el post del Arduino UNO.
  • FInalmente nos provee delos pines analogicos no usados, A1-A5, dado que A0 está usado para la botonera.

Notar que los pines pwm D10 D9 D6 Y D5 no estarán disponibles como pwm.

LCD Shield con Arduino MEGA

Este shield es compatible con Arduino MEGA por el simple motivo que este último conserva compatibilidad pin a pin con el Arduino UNO. Te va a quedar algo corrido y extraño pero va a funcionar perfectamente, incluso con el mismo código y librería.

<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />
LCD Shield con Arduino MEGA

LCD Backlight

El LCD shield contiene un preset o potenciómetro que regula la intensidad de luz del backlight o de la luz de fondo del LCD propiamente dicho. Es un preset porque se supone que una vez establecida la intensidad lumínica no se toca nunca más. No es compatible con la idea de que vamos a usar el LCD en distintos entornos, tu casa, la facu, de noche, al exterior y debiera ser un pote, pero ocuparia mucho espacio, debemos arreglarnos con lo que tenemos. Por suerte tenemos algo para presetearla.

<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />
Preset del backlight

Esquematico

<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />
click en la imagen para agrandar y descargar

LCD Shield Botonera

La botonera del LCD Shield está pensada y diseñada para no ocupar más pines digitales, que es lo que cualquiera de nosotros hubiéramos hecho. Lleva un poco de tiempo adaptarse, entenderlo y programarlo. Voy a tratar de hacerte esa tarea más fácil.

El shield no solo presenta los clásicos botones Arriba abajo, derecha e izquierda, sino que agrega un botón extra de selección, pensado para programar un menú en lcd.

<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />
Botonera de cerca

Te presento la parte del esquemático de la botonera para entender cómo está lograda. Vemos un arreglo de resistencias de diferente valor y cada botón está unido a cada nodo entre las resistencias.

<img class=”i-amphtml-intrinsic-sizer” style=”box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 18px; vertical-align: baseline; background: transparent; max-width: 100%; display: block !important;” role=”presentation” src=”data:;base64,” alt=”” aria-hidden=”true” />

Este circuito funciona como una gran divisor resistivo puesto en A0, entre la resistencia R6 de 2K y el resto sumado (por ley de ohm). Al presionar un botón, ponemos a masa uno u otro nodo del array de resistencias por ejemplo:

  • Si presionamos RIGHT: A0 queda cableado a GND midiendo en A0 0V.
  • Si presionamos UP: A0 queda entre puesto entre las resistencias de R6 y R2, creando un divisor resistivo que nos da como resultado 0.71v.
  • Si presionamos DOWN: A0 queda conectado entre las resistencias R6 y R2+R3, creando un divisor resistivo diferente al anterior y nos da como resultado 1.61v.
  • Si presionamos LEFT: A0 queda conectado entre las resistencias R6 y R2+R3+R4 , creando un divisor resistivo diferente al anterior y nos da como resultado 2.47v.
  • Si presionamos SELECT: A0 queda conectado entre las resistencias R6 y R2+R3+R4+R5 , creando un divisor resistivo diferente al anterior y nos da como resultado 3.62v.

Con el Arduino no medimos voltage en las entradas analogicas, no al menos directamente, lo que medimos es su equivalente de 0a 1023 y es por eso que te presentamos la siguiente tabla:

Boton Tension ADC 8 bit ADC 10 bit
RIGHT 0.00v 0 0
UP 0.71v 36 145
DOWN 1.61v 82 329
LEFT 2.47v 126 505
SELECT 3.62v 185 741

Diferenciamos dos tipos de ADC, porque el Arduino, trae un ADC de 10 bit pero podrias estar usando este shield con otro micro que tenga un ADC de solo 8 bit.

Pero esta tabla tiene un problema: Las resistencias contienen un error de fabricación que normalmente es de 5%. Si nosotros programamos un código donde compare de igual a igual con la tensión o el número en la columna ADC es probable que no ande, así que quedan algunas opciones:

  1. Realizar una etapa de calibración en cada LCD Shield que usemos.
  2. Agregar un rango de error del 5% al código.
  3. Como verás también, las tensiones son ascendentes y se puede trabajar con números mayores o menores > o <.

Valoraciones

No hay valoraciones aún.

Sé el primero en valorar “SHIELD LCD 16*2 CON TECLADO (4 PULSADORES) KEYPAD”

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *