
Add to Cart
Esto es un escudo muy popular del telclado numérico del LCD para el tablero de Arduino o de Freeduino. Puede estar directamente tapa sobre el tablero de Arudino, ningún soldar o el mosca-cableado necesarios. Un 16x2 HD44780 LCD compatible, carácter blanco y retroiluminación azul.
Este escudo utiliza la biblioteca de Arudino LCD4Bit.
| Pin | Función |
|---|---|
| Análogo 0 | Botón (seleccione, encima de, derecho, abajo y se fue) |
| Digitaces 4 | DB4 |
| Digitaces 5 | DB5 |
| Digitaces 6 | DB6 |
| Digitaces 7 | DB7 |
| Digitaces 8 | RS (selección de la exhibición de los datos o de la señal) |
| Digitaces 9 | Permita |
| Digitaces 10 | Control retroiluminado |
Transferencia directa de la biblioteca de LCD4Bit_mod
objeto del #include
<LCD4Bit_mod.h> //create de //para controlar un LCD. //number
de líneas en display=1LCD4Bit_mod lcd = LCD4Bit_mod (2); msgs
messagechar de //Key [5] [15] = {la “AUTORIZACIÓN dominante
correcta”, “encima de la AUTORIZACIÓN
dominante”, “abajo cierra MUY BIEN”, “dejó
la AUTORIZACIÓN dominante”, la “AUTORIZACIÓN
dominante selecta”}; internacional ADC _key_val
[5] = {30, 150, 360, 535, 760}; internacional NUM_KEYS = 5;
adc_key_in de la internacional; internacional key=-1; internacional
oldkey=-1; disposición vacía () {pinMode (13, SALIDA); //we
utilizará la eliminación de errores LED para hacer salir un latido
del corazón lcd.init (); //optionally , ahora puso nuestros
ajustes específicos a la aplicación de la exhibición, omitiendo sea
cual sea hizo el lcd en lcd.init () //lcd.commandWrite (0x0F);
//cursor encendido, exhibición encendido, centelleo encendido.
(desagradable!) lcd.clear () ; lcd.printIn (“prueba del
TELCLADO NUMÉRICO… que presiona”);} lazo del vacío () {adc_key_in =
analogRead (0); //leyó el valor del digitalWrite del sensor (13
, ALTO); llave = get_key ( adc_key_in); ¡convertido de //en la
prensa dominante si (llave! = oldkey ) //si se detectan los
keypress {retraso (50); espera de //para el adc_key_in
= el analogRead (0 ) del tiempo del debounce; //leyó el
valor de la llave = del get_key (adc_key_in ) del sensor;
¡convertido de //en la prensa dominante si (llave! = oldkey )
{oldkey = llave ;
si (llave >=0) { lcd.cursorTo (2, 0 ); //line
=2, x=0 lcd.printIn (msgs [llave ]); }}} digitalWrite (13
, BAJO );}/valor del convertido ADC para cerrar el get_key
del numberint (internacional sin firmar entrada) {internacional k;
para (k = 0; LLAVES de k < de NUM_; k++) {si (_de la
entrada < del adc_key val [k]) {k de vuelta; }} si
( >= NUM_KEYS de k ) k = -1; //ninguna vuelta
presionada llave válida k;}
//Sample usando
******************************************************* de cristal
líquido del library#include <LiquidCrystal.h>/este programa
probará al panel LCD y el buttonsMark Bramwell, julio de 2010
********************************************************/selecciona
los pernos usados en el LCD lcd panelLiquidCrystal (8, 9, 4, 5, 6,
7); /defina algunos valores usados por el lcd_key del panel y del
buttonsint = 0; adc_key_in de la internacional = 0; el
btnRIGHT 0# del #define define el btnUP 1# define el btnDOWN
2# define el btnLEFT 3# define el btnNONE 5/leyó del
btnSELECT 4#define los read_LCD_buttons del buttonsint ()
{adc_key_in = el analogRead (0); // leyó el valor del sensor
// mis botones cuando estaba leído se centra en estos valies: 0,
144, 329, 504, 741 //añadimos aproximadamente 50 a esos valores y
control para ver si estamos cercanos si (adc_key_in > 1000)
btnNONE de la vuelta; //hacemos esto la 1ra opción por razones de
la velocidad puesto que será el resultado más probable si
(adc_key_in < 50) btnRIGHT de la vuelta; si (adc_key_in <
195) btnUP de la vuelta; si (adc_key_in < 380) btnDOWN de la
vuelta; si (adc_key_in < 555) btnLEFT de la vuelta; si
(adc_key_in < 790) btnSELECT de la vuelta; btnNONE de
vuelta; // cuando todos los demás fallan, vuelve esto…}disposición
vacía () {lcd.begin (16, 2); comienzo de // la
biblioteca lcd.setCursor (0,0); lcd.print (“empuje los botones”);
impresión de //un lazo simple del vacío del mensaje} ()
{lcd.setCursor (9,1); //movimiento cursor a segundo
línea “1" y 9 espacio sobre lcd.print (millis ()/1000); los
segundos de la exhibición de // transcurrieron desde
lcd.setCursor de ciclo inicial (0,1); movimiento de //al principio
de la segunda línea lcd_key = read_LCD_buttons (); //leyó
el interruptor de los botones (lcd_key) //dependiendo del cual
el botón fue empujado, nosotros realiza una acción
{btnRIGHT del caso: {lcd.print (“DERECHO "); rotura ; }
btnLEFT del caso: {lcd.print ( “IDO "); rotura ;
} btnUP del caso: { lcd.print (“PARA ARRIBA ") ;
rotura; } btnDOWN del caso: { lcd.print (“ABAJO
"); rotura; } btnSELECT del caso: {lcd.print
(“SELECCIONE "); rotura; } btnNONE del caso:
{lcd.print (“NINGUNO "); rotura ; }}}