Descripción
Este shield con pantalla LCD 16×2 y teclado te permite integrar fácilmente una interfaz de usuario a tus proyectos con Arduino agregando una pantalla LCD estándar de 16 x 2 y botones para la navegación a través de un sistema de menús.
El shield incluye un display LCD 16×2 basado en el controlador HD44780 con iluminación, 5 botones para la aplicación y un botón de reset en la parte superior. Los botones en el shield se encuentran multiplexados, de manera que todos pueden leerse mediante un único pin analógico (A0). La desventaja de este método es que no podemos saber si hay mas de un botón oprimido al mismo tiempo.
La pantalla utilizada es estándar y puede utilizarse con la librería LiquidCrystal que viene incluida en Arduino IDE. Para leer los botones es necesario realizar una rutina que convierta el valor analógico del pin a los botones que están siendo accionados.
Venta de shield con pantalla LCD 16×2 y teclado | Distribuidor | Mayorista | Comprar en México | Tienda de electrónica en línea.
Características y especificaciones de shield con pantalla LCD 16×2 y teclado
- Tipo de tarjeta o modulo: Shield para Arduino
- Función: Display LCD y botones
- Compatible con tarjetas: Arduino Uno y Arduino Mega
- Circuito principal: Controlador LCD compatible con HD44780
- Bus de comunicación: Paralelo 4 bits
- Voltaje de operación: 5 VDC
- Botón de reset en la parte superior
- Conector ISP en la parte superior
- Potenciómetro para el ajuste de contraste
- Botones multiplexados en un solo pin analógico para ahorrar pines
- Led de encendido en la parte superior
- Peso: 16 gramos
- Dimensiones
- Largo: 6.9 cm
- Ancho: 5.3 cm
- Alto: 1.5 cm
Uso y función de los pines utilizados por este shield
| Numero de pin | Función |
|---|---|
| 4 | DB4 – Bus de datos paralelo bit 4 |
| 5 | DB5 – Bus de datos paralelo bit 5 |
| 6 | DB6 – Bus de datos paralelo bit 6 |
| 7 | DB7 – Bus de datos paralelo bit 7 |
| 8 | RS – Register select, pin que define si estamos enviando comandos o datos al controlador LCD |
| 9 | E – Señal de activación que señaliza la lectura o escritura de datos en el bus de la pantalla |
| 10 | Control de iluminación de fondo de la pantalla |
| A0 | Botones de navegación (up, down, left, right, select) |
En el pin A0 se encuentran conectados todos los botones que forman un divisor resistivo variable, de forma que dependiendo del botón oprimido veremos un valor diferente de voltaje en el pin A0 de la tarjeta Arduino. Para conocer más detalles de cómo funciona este circuito recomendamos revisar el diagrama esquemático en la sección de documentación.
Código de ejemplo shield con pantalla LCD 16×2 y teclado
El ejemplo que se muestra a continuación permite mostrar un mensaje inicial en la pantalla y además muestra cual de los botones estamos oprimiendo en un momento dado. Este programa es una demostración completa de la funcionalidad de este shield o tarjeta de expansión. Basados en los conceptos que se muestran podemos adecuar este ejemplo a cualquier aplicación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | /** Geek Factory - "Dale vuelo a tus proyectos" Tienda de electrónica, Arduino, Raspberry Pi, IoT www.geekfactory.mx GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. EJEMPLO SHIELD CON PANTALLA LCD 16X2 y TECLADO Descripción: Este programa demuestra la configuración de la librería LiquidCrystal que debe usarse con este shield y también demuestra como leer los botones que se encuentran conectados en el pin A0 de la tarjeta Arduino. Las conexiones a realizar son las siguientes: * Colocar el LCD Keypad shield sobre la tarjeta Arduino Uno */ #include <LiquidCrystal.h> // variables utilizadas para los pines de la pantalla // bus de datos de 4 bits const int d4 = 4, d5 = 5, d6 = 6, d7 = 7; // señales de control const int rs = 8, en = 9; // control de iluminación const int bl = 10; // objeto para controlar la pantalla LCD LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // enumeracion con los distintos botones enum lcdkeypad_buttons { LCDKEYPAD_BUTTON_NONE = 0, LCDKEYPAD_BUTTON_RIGHT, LCDKEYPAD_BUTTON_UP, LCDKEYPAD_BUTTON_DOWN, LCDKEYPAD_BUTTON_LEFT, LCDKEYPAD_BUTTON_SELECT, }; // variables enumeradas para manejar los botones enum lcdkeypad_buttons btn, prevbtn = LCDKEYPAD_BUTTON_NONE; /** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // configurar el pin de control de iluminación como salida pinMode(bl, OUTPUT); // parpadeamos la pantalla para probar el control de iluminación for (unsigned int i = 0; i < 10; i++) { digitalWrite(bl, HIGH); delay(200); digitalWrite(bl, LOW); delay(200); } // dejar la iluminacion encendida digitalWrite(bl, HIGH); // preparamos la pantalla para su uso lcd.begin(16, 2); // mostramos mensaje inicial lcd.print(" GEEKFACTORY.MX "); lcd.print(" LCD KEYPAD "); delay(2000); } /** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { // llamamos a la funcion para leer los botones btn = read_shield_buttons(); // solo actualizamos la pantalla cuando cambie la tecla oprimida if (btn != prevbtn) { prevbtn = btn; // borrar la pantalla y escribir la palabra button en la primera linea lcd.clear(); lcd.write("Button"); // en la segunda linea lcd.setCursor(0, 1); // imprimir la cadena apropiada para cada boton switch (btn) { case LCDKEYPAD_BUTTON_RIGHT: lcd.write("Right"); break; case LCDKEYPAD_BUTTON_UP: lcd.write("Up"); break; case LCDKEYPAD_BUTTON_DOWN: lcd.write("Down"); break; case LCDKEYPAD_BUTTON_LEFT: lcd.write("Left"); break; case LCDKEYPAD_BUTTON_SELECT: lcd.write("Select"); break; case LCDKEYPAD_BUTTON_NONE: lcd.write("None"); break; } } } /** Función que retorna el botón oprimido basandose en el valor del convertidor analógico a digital en el pin A0 */ enum lcdkeypad_buttons read_shield_buttons() { unsigned int adcval = analogRead(A0); if (adcval > 900) return LCDKEYPAD_BUTTON_NONE; if (adcval < 50) return LCDKEYPAD_BUTTON_RIGHT; if (adcval < 250) return LCDKEYPAD_BUTTON_UP; if (adcval < 450) return LCDKEYPAD_BUTTON_DOWN; if (adcval < 650) return LCDKEYPAD_BUTTON_LEFT; if (adcval < 850) return LCDKEYPAD_BUTTON_SELECT; return LCDKEYPAD_BUTTON_NONE; } |









Valoraciones
No hay valoraciones aún.