

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 ; }}}