

Add to Cart
Este é um protetor muito popular do teclado numérico do LCD para a placa de Arduino ou de Freeduino. Pode estar diretamente obstrui na placa de Arudino, em nenhuma solda ou em mosca-fiaço necessária. Um 16x2 HD44780 LCD compatível, caráter branco & luminoso azul.
Este protetor usa a biblioteca de Arudino LCD4Bit.
Pin | Funço |
---|---|
Analógico 0 | Boto (selecione, acima de, direito, para baixo e saiu) |
Digitas 4 | DB4 |
Digitas 5 | DB5 |
Digitas 6 | DB6 |
Digitas 7 | DB7 |
Digitas 8 | RS (seleço da exposiço dos dados ou do sinal) |
Digitas 9 | Permita |
Digitas 10 | Controle retroiluminado |
Transferência da biblioteca de LCD4Bit_mod
objeto do #include <LCD4Bit_mod.h> //create de //para controlar um LCD. //number das linhas em display=1LCD4Bit_mod lcd = LCD4Bit_mod (2); msgs messagechar de //Key [5] [15] = {“a APROVAÇO chave direita”, “acima da APROVAÇO chave”, “fecha para baixo ESTÁ BEM”, “deixou a APROVAÇO chave”, “a APROVAÇO chave seleta”}; int CAD _key_val [5] = {30, 150, 360, 535, 760}; int NUM_KEYS = 5; adc_key_in do int; int key=-1; int oldkey=-1; instalaço vaga () {pinMode (13, SAÍDA); //we usará o diodo emissor de luz da eliminaço de erros para output uma pulsaço do coraço lcd.init (); //optionally , estabelece agora nossos ajustes característicos da aplicaço da exposiço, cancelando o que quer que o lcd fez em lcd.init () //lcd.commandWrite (0x0F); //cursor sobre, exposiço sobre, piscamento sobre. (desagradável!) lcd.clear () ; lcd.printIn (do “testes TECLADO NUMÉRICO… que pressionam”);} laço do vácuo () {adc_key_in = analogRead (0); //leu o valor do digitalWrite do sensor (13 , ELEVAÇO); chave = get_key ( adc_key_in); converso de // na imprensa chave se (chave! = oldkey ) //se os keypress so detectados {atraso (50); espera de //para o adc_key_in do tempo do debounce = o analogRead (0); //leu o valor da chave do sensor = do get_key ( adc_key_in); converso de // na imprensa chave se (chave! = oldkey ) {oldkey = chave ; se (chave >=0) { lcd.cursorTo (2, 0 ); //line =2, x=0 lcd.printIn (msgs [chave ]); }}} digitalWrite (13 , BAIXO );}/valor do converso CAD para fechar o get_key do numberint (int sem assinatura entrado) {int k; para (k = 0; CHAVES de k < de NUM_; k++) {se (_da entrada < do adc_key val [k]) {k do retorno; }} se ( >= NUM_KEYS de k ) k = -1; //nenhum chave válida retorno pressionado k;}
//Sample que usa o ******************************************************* a cristal líquido do library#include <LiquidCrystal.h>/este programa testará o painel do LCD e o buttonsMark Bramwell, em julho de 2010 ********************************************************/seleciona os pinos usados no LCD lcd panelLiquidCrystal (8, 9, 4, 5, 6, 7); /defina alguns valores usados pelo lcd_key do painel e do buttonsint = 0; adc_key_in do int = 0; o btnRIGHT 0# do #define define o btnUP 1# define o btnDOWN 2# define o btnLEFT 3# define o btnNONE 5/do btnSELECT 4#define /leu os read_LCD_buttons do buttonsint () {adc_key_in = analogRead (0); // leu o valor do sensor // meus botões quando lido é centrado nestes valies: 0, 144, 329, 504, 741 //nós adicionamos aproximadamente 50 2 aqueles valores e verificaço para ver se nós somos próximos se (adc_key_in > 1000) btnNONE do retorno; //nós fazemos a isto a primeira opço para razões da velocidade desde que será o resultado mais provável se (adc_key_in < 50) btnRIGHT do retorno; se (adc_key_in < 195) btnUP do retorno; se (adc_key_in < 380) btnDOWN do retorno; se (adc_key_in < 555) btnLEFT do retorno; se (adc_key_in < 790) btnSELECT do retorno; btnNONE do retorno; // quando todos os outro falham, retorna este…}instalaço vaga () {lcd.begin (16, 2); começo de // a biblioteca lcd.setCursor (0,0); lcd.print (“empurre os botões”); cópia de //um laço simples do vácuo da mensagem} () {lcd.setCursor (9,1); //movimento cursor a segundo linha “1" e 9 espaço sobre lcd.print (millis ()/1000); os segundos da exposiço de // decorreram desde lcd.setCursor de ligaço inicial (0,1); movimento de //ao começo da segunda linha lcd_key = read_LCD_buttons (); //leu o interruptor dos botões (lcd_key) //segundo que o boto foi empurrado, nós executa uma aço {btnRIGHT do caso: {lcd.print (“DIREITO "); ruptura ; } btnLEFT do caso: {lcd.print ( “SAIDO "); ruptura ; } btnUP do caso: { lcd.print (“ACIMA ") ; ruptura; } btnDOWN do caso: { lcd.print (“PARA BAIXO "); ruptura; } btnSELECT do caso: {lcd.print (“SELECIONE "); ruptura; } btnNONE do caso: {lcd.print (“NENHUNS "); ruptura ; }}}