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