Retornar
ao topo
ao topo
Autor
Mensagem
Olá, recentemente me envolvi em um projeto de alarme e incêndio e surgiu a ideia de representar diferentes setores de uma maquete com um LED diferente. Em primeiro caso resolvi utilizar um teclado matricial para acender diferentes LEDs. Eu sei como funciona o teclado matricial porém não consigo definir uma forma para manter um LED aceso quando uma tecla for pressionada, e caso for pressionada novamente o LED apague. O meu problema é que sempre mexi no teclado matricial colocando as colunas em alto e as linhas em baixo, caso um botão for pressionado a coluna dele também fica em estado baixo e faço uma varredura pra encontrar a tecla pressionada. Aqui um exemplo: int pinosLinhas[] = {11,10,9,8}; int pinosColunas[] = {7,6,5,4}; char teclas[4][4] = {{'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'}}; void setup() { for (int nL = 0; nL <= 3; nL++) { pinMode(pinosLinhas[nL], OUTPUT); digitalWrite(pinosLinhas[nL], HIGH); } for (int nC = 0; nC <= 3; nC++) { pinMode(pinosColunas[nC], INPUT_PULLUP); } Serial.begin(9600); Serial.println("Teclado 4x4"); Serial.println("Aguardando acionamento das teclas..."); Serial.println(); } void loop() { //faz varredura em todas as linhas, desligando uma de cada vez for (int nL = 0; nL <= 3; nL++) { digitalWrite(pinosLinhas[nL], LOW); //faz varredura em todas as colunas verificando se tem algum botao apertado for (int nC = 0; nC <= 3; nC++) { if (digitalRead(pinosColunas[nC]) == LOW) { Serial.print("Tecla: "); Serial.println(teclas[nL][nC]); while(digitalRead(pinosColunas[nC]) == LOW){} } } digitalWrite(pinosLinhas[nL], HIGH); } delay(10); } Queria saber como fazer como integrar os LEDs nesse código pro proposito que eu quero atingir.
fabiolivera2016, para o uso do teclado matricial 4x4, sempre recomendamos o uso da biblioteca "Keypad.h", que basicamente executa a mesma sequência que você executa em seu código, porém internamente, o que facilita muito. Você pode encontrar um exemplo do uso dessa biblioteca no tutorial do link a seguir, https://www.robocore.net/...ial-com-arduino. Em relação ao controle do LED ao pressionar um dos botões, você precisa usar uma variável auxiliar para salvar o estado do LED, mantendo ele aceso ou apagado. Você pode encontrar um exemplo disso no segundo código do tutorial a seguir, https://www.robocore.net/...erial-com-botao. Embora esse tutorial mencionado seja específico para o módulo Relé Serial que fabricamos, ele pode ser uma base muito útil para o seu projeto. Espero ter ajudado, qualquer dúvida entre em contato.
|
|
|
Todos os horários são GMT - 3 Horas | Você não tem permissão para escrever novas mensagens v não tem permissão para responder às mensagens Você não tem permissão para editar suas mensagens Você não tem permissão para deletar suas mensagens Você não tem permissão para classificar tópicos Você não tem permissão para classificar mensagens Você não tem permissão para votar em enquetes Anexar downloads : Proibido Fazer Download de Arquivos: Proibido |
Powered by phpBB © 2001 phpBB Group