Sie sind auf Seite 1von 6

16/7/2017 LCD Keypad Shield | Tutoriales Arduino

LCD KEYPAD SHIELD


Usando un Shield que nos ahorrar muchos dolores de cabeza

Home (Http://Www.Prometec.Net) LCD Keypad Shield

OBJETIVOS

Conocer los Shields con LCD y botones.

Presentar un ejemplo sencillo de uso..

MATERIAL REQUERIDO.

Arduino UNO o equivalente (http://www.prometec.net/categoria-


producto/arduinos/).

(http://www.prometec.net)

(http://www.prometec.net/producto/arduino-uno/)

TIENDA (HTTP://WWW.PROMETEC.NET/TIENDA/) ARDUINO (HTTP://WWW.PROMETEC.NET/INDICE-TUTORIALES)

RASPBERRY PI (HTTP://WWW.PROMETEC.NET/INDICE-RASPBERRY-PI/) IMPRESORA 3D (HTTP://WWW.PROMETEC.NET/3D-INDICE/)

FORO (HTTP://WWW.PROMETEC.NET/FOROS-PROMETEC/) CONTACTO (HTTP:/


Un LCD /WWW.PROMETEC.NET/CONTACT/)
Keypad Shield (http://www.prometec.net/producto/lcd-keypad/)

(http://www.prometec.net/wp-
content/uploads/2015/02/arduino-lcd-keyboard-shield-500x500-
500x500.jpg)

http://www.prometec.net/lcd-keypad-shield/ 1/6
16/7/2017 LCD Keypad Shield | Tutoriales Arduino

LOS KEYPADS CON DISPLAY LCD

Con mucha frecuencia, cuando estas montando algn circuito de prueba, necesitas un display para ver cmo van las cosas y en muchas
ocasiones la consola de Arduino es una opcin incomoda o simplemente no est disponible.

Necesitamos un display local y para ello ya vimos en las pasadas sesiones que basta con conectar un display del tipo que sea. Lo ms fcil
suele ser un LCD de 162 del tipo I2C, por aquello de no tener que conectar muchos pines, que adems tienen la mala costumbre de soltarse
en el peor momento.

Pero incluso en estas ocasiones los varios hilos del I2C son poco robustos y no es raro que se suelten, lo que suele provocar una de esas tpicas
imprecaciones por las que a electrnicos y tcnicos en general se nos acusa de mal carcter (y hasta de hablar solos).

Por eso, hace tiempo que uso un pequeo Shield que ha mejorado mucho mis relaciones con los que me rodean, y que si no tienes problemas
de pines, permite montar con seguridad un pequeo display con botones, ideal para muchas pruebas de campo e incluso como dispositivo nal
en cualquiera de esos perdidosa rincones de la casa por la que andas colocando Arduinos.

Por poco ms de lo que vale un display LCD de 162, este pequeo Shield nos viene con un LCD ms 5 botones, que podemos usar para
nuestros proyectos. A cambio se queda bastante pines del Arduino UNO para s mismo y la gestin del LCD, pero nos sigue dejando libres los
pines digitales del 0 al 7, y las puertas analgicas del A1 al A5, ms el ICSP.

La ventaja del LCD keypad Shield, es que se coloca rpidamente en su sitio y queda con una sujecin robusta a prueba de cables de
protoboard bailando, lo que garantiza la estabilidad del asunto.

(http://www.prometec.net/wp-content/uploads/2015/02/Arduino_Shield8.png)
El LCD est conectado de esta forma:

http://www.prometec.net/lcd-keypad-shield/ 2/6
16/7/2017 LCD Keypad Shield | Tutoriales Arduino

(http://www.prometec.net/wp-content/uploads/2015/02/conexiones.png)
Para no tener que usar 5 pines digitales para reconocer los 5 botones, estn conectados en serie con resistencias a un nico puerto analgico
de modo que reconocemos el botn pulsado mediante el valor de tensin que lee A0.


Aunque esto tiene el inconveniente que, si no podremos discriminar si se pulsan dos
botones simultneamente.

EL PROGRAMA DE CONTROL

Como ya vimos en toras sesiones el manejo de los LCD de 162, no entraremos en el detalle de su gestin, y remitimos a los que sean nuevos
con esta pequea joyita de hardware al tutorial correspondiente: Displays LCD (http://www.prometec.net/displays-lcd/)


Tambin conviene recordar de que para que podamos ver correctamente el display LCD, dispone de un
potencimetro en la esquina superior derecha que nos ayudar a ajustar el contraste.


Dado que los pines estn jados por Hardware en el Shield, podemos presentar un programa tipo para manejarlo. Como el LCD va directamente
te conectado a los pines digitales de nuestro Arduino vamos a empezar incluyendo la librera LCD y de niendo las conexiones de los pines.

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

Algunas de niciones por comodidad

int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5

int read_LCD_buttons() // para leer los botones

Para leer los botones, vamos a de ner una pequea function:

http://www.prometec.net/lcd-keypad-shield/ 3/6
16/7/2017 LCD Keypad Shield | Tutoriales Arduino

int read_LCD_buttons()
{ adc_key_in = analogRead(0); // Leemos A0
// Mis botones dan: 0, 145, 329,507,743
// Y ahora los comparamos con un margen comodo
if (adc_key_in > 900) return btnNONE; // Ningun boton pulsado
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;

return btnNONE; // Por si todo falla


}

Simplemente lee el valor de tensin en A0 y con esto reconocemos el botn pulsado. El Shield est diseado para que cada botn provoque una
lectura distinta de tensin en el convertidor A0. En cuanto un valor concuerda salimos de la funcin con el valor dado.

Tienes que comprobar que para el Shield del que dispones los valores son aproximadamente los mismos, pero no te confes y comprubalo.


Cada botn est previsto sobre una serie de 0, 175, 350, 525, 700 ;Perola fabricacin de
los componentes electrnicos tiene una dispersin amplia para esta calidad, por lo que
podran haber diferencias.


En cuanto al Setup, simplemente sacamos un mensaje en pantalla:

void setup()
{ lcd.begin(16, 2); // Inicializar el LCD
lcd.setCursor(0,0);
lcd.print("Prometec.net"); // print a simple message
}

Y por ltimo en el loop, gestionamos los valores en pantalla:Sesion_84 (http://www.prometec.net/wp-content/uploads/2015/02/Sesion_84.rar)

void loop()
{ lcd.setCursor(9,1); // Cursor a linea 2, posicion 9
lcd.print(millis()/1000); // Imprime segundos
lcd.setCursor(13, 0); // Cursor a linea 1, posicion 13
lcd.print(key); // Imprime el valor leido en la puerta A0
lcd.setCursor(0,1); // Cursor a linea 2, posicion 1

lcd_key = read_LCD_buttons();
if( lcd_key == btnRIGHT)
lcd.print("RIGHT ");
else if ( lcd_key == btnLEFT )
lcd.print("LEFT ");
else if ( lcd_key == btnUP)
lcd.print("UP ");
else if ( lcd_key == btnDOWN)
lcd.print("DOWN ");
else if ( lcd_key == btnSELECT)
lcd.print("SELECT");
else if ( lcd_key == btnNONE)
lcd.print("NONE ");
}

El programa es muy sencillo y muy fcil de adaptar a tus propios proyectos, lo que hace que estas placas sean muy practicas cuando quieres
lanzar un prototipo y no quieres liarte con los botones y displays.

El nico inconveniente que tienen es que para engancharle sensores externos tienes que soldarlos a la placa o al menos soldar conectores
hembras como los que trae Arduino para sus pines, ya que estos Shields nunca los pasan, o al menos yo no he visto ninguno que lo haga.

Aqu os dejo un pequeo video para mostraros el Shield.

http://www.prometec.net/lcd-keypad-shield/ 4/6
16/7/2017 LCD Keypad Shield | Tutoriales Arduino

RESUMEN DE LA SESIN

Hemos visto como estos Shields son muy sencillos de usar.

Encajan como cualquier otro Shield con rmeza, lo que nos haya a mejorar la robustez de los prototipos.

Son muy prcticos y nos permiten poner en marcha prototipos rpidamente sin preocuparnos por pelear
con las pantallas y o botones de entrada

Anterior Siguiente
(http://www.prometec.net/tira- (http://www.prometec.net/multimetro-
de-leds/) (https://www.facebook.com/prometecnet-
digital)
1541207239447373/timeline/)

COMENTARIOS MS VIEJOS (HTTP://WWW.PROMETEC.NET/LCD-KEYPAD-SHIELD/COMMENT-PAGE-1/#COMMENTS)

(40) COMMENTS

http://www.prometec.net/lcd-keypad-shield/ 5/6
16/7/2017 LCD Keypad Shield | Tutoriales Arduino

Reply
(Http://Www.Prometec.Net/Lcd-
Keypad-Shield/?
Replytocom=19347#Respond)
Cuida (http://www.prometec.net/lcd-keypad-shield/) 06 Mar 2017
Para los botones Compar con los siguientes parmetros:

// Y ahora los comparamos con un margen comodo


if (adc_key_in > 1023) return btnNONE; // Ningun boton pulsado
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 300) return btnDOWN;
if (adc_key_in < 450) return btnLEFT;
if (adc_key_in < 650) return btnSELECT;

GIVE A REPLY

Message

Name (required) Email (required)

URL

Post comment
WordPress Anti-Spam by WP-SpamShield (https://wordpress.org/extend/plugins/wp-spamshield/)

Copyright Prometec (http://www.prometec.net) (https://www.facebook.com/pages/prom


(https://plus.google.com/10
(https://www.youtub

http://www.prometec.net/lcd-keypad-shield/ 6/6

Das könnte Ihnen auch gefallen