Bom noite, garagistas,
estou realizando a montagem de um projeto e neste estou com algumas dificuldades na programação, algumas funções desejadas para a realização do projeto plena não estão sendo contempladas, pois eu desconheço a maneira correta de sua feitura, sendo estas:
- O sistema tem uma função de ativação apertando a tecla ''*'', o problema é que necessito a satisfação da condição: Caso o sistema não seja ativado após 3 minutos de sua alimentação, o programa deve encaminhar o código para a sub-rotina (''void NADA''), caso seja ativado dentro o prazo previsto (3 minutos), o código deve seguir com seu procedimento.
- No ponto em que o programa está, já foram utilizados 1 teclado matricial 4x4 e uma tela de LCD com suas devidas programações corretas, porém necessito ligar mais um teclado matricial 4x4 e outra tela LCD no mesmo código, estou com duvida de como vou realizar tais praticas e como informar o programa a diferença entre os componentes , para que assim possa realizar funções em cada um de acordo com a necessidade do projeto. (EX: a partir de determinado ponto do código, ele reconhecera teclas digitadas pelo segundo keypad e terá 2 textos diferentes escritos nos displays simultaneamente)
Espera que através desta, os senhores possam me auxiliar neste problema.Obrigado desde já.
Obrigado pela atenção e compreensão!
Pedro Emboava.
(SEGUE O CÓDIGO EM ANEXO EM ATUAL ESTADO, SUJEITO A ADIÇÃO DAS FUNÇÕES DESCRITAS ACIMA COM O AUXILIO DOS SENHORES)
Tags:
Primeiramente, por favor, delete seus posts repetidos.
O uso de 2 LCDs é direto, coisa como:
LiquidCrystal lcd1(22, 24, 26, 28, 30, 32);
LiquidCrystal lcd2(22, 25, 26, 28, 30, 32);
Veja que vc pode compartilhar todos os outros pinos, apenas o Enable precisa ser unico.
Tudo que se refere a lcd passa a se referir a lcd1 ou lcd2 conforme sua necessidade.
O uso de mais teclas recomendo construir um teclado maior.
Vc pode construir um teclado de 8x4 assim gastaria só mais 4 pinos.
Aih por ex:
const byte ROWS = 8; //Quatro linhas
const byte COLS = 4; //QUatro
char convteclado[16]={'1','4','7','2','5','8'.... //Matriz de conversão de posicoes teclado 2 para teclado1.
//Mapeamento de teclas
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A', 'E','I','M','Q',},
{'4', '5', '6', 'B', 'F','J'... // '...' significa que vc tem que terminar a tabela
{'7', '8', '9', 'C', 'G','K'...
{'*', '0', '#', 'D', 'H','L'...
Aih vc precisa fazer uma lógica depois pra transformar o 'E' em '1' do teclado 2.
algo como:
if (key>='E') teclado=1; // Como estão em ordem os caracteres é possivel fazer só isso para saber se é uma tecla 'alta'.
else
{teclado=2;
key=convteclado[key-'E']; // usa a tabela para converter.
}
Desculpe pelos repetidos, informei em ''sala principal'' que estava com dificuldades para saber a real validade do post, pois estava dando erro ''550'' e eu não sabia se os tópicos estavam sendo gerados. Obrigado pelo esclarecimento, não havia pensado em tal possibilidade.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por