(RESOLVIDO) - Ajuda - Trava Eletrônica com - Arduino Uno - Display Lcd sem I2c - Teclado 4x3.

Olá pessoal, seguinte.

Estou querendo colocar uma tranca com senha em uma área de minha residência e tenho já o arduino com o display lcd já funcionando nas portas digitais,  2-3-4-5-11-12 + VCC 5v. e GND) o problema está na conexão do teclado, estou sem saber onde posso usar os pinos no arduino pois as portas já estão sendo usadas pelo lcd, já vi vários projetos, mas somente com o adaptador I2C que não tenho.

Pensei em usar as portas analógicas, mas são somente 6 e o teclado são de 7 conexões.

Peço ao pessoal que me dê alguma ideia de como contornar o problema.

Muito obrigado a todos.

Exibições: 878

Responder esta

Respostas a este tópico

http://playground.arduino.cc/Code/OneWireKeyPad

Nesse tutorial ensina como utilizar apenas 1 entrada analógica do Arduino para ler teclados matriciais. Você só irá precisar de 6 resistores.

Oi João muito obrigado pela dica, vou tentar fazer e dou um retorno do resultado.

Oi AO, boa noite.

Mude seu display para as porta analógicas e use o seu teclado nas digitais.

Rui

Nossa Rui nunca iria imaginar isto, kkkkkk, maravilha ideia, valeu demais, muito obrigado.

Oi Anderson,

Só para reforçar o que o Rui já comentou acima, caso decida usar as portas analogicas como digitais basta apenas nomear as mesmas no codigo com a nomenclatura abaixo.

A0: 14

A1: 15

A2: 16

A3: 17

A4: 18

A5: 19

E usar pinMode, digitalWrite, ou digitalRead por exemplo, caso tenha duvidas poste seu code no www.pastebin.com e cole o link aqui.

Abs.

Valeu grande Carlos, já estou cutucando vamos ver no que vai dar, muito obrigado pela dica.

Pessoal estou perdendo os meus últimos cabelos brancos, kkkk, conseguir dividir os pinos do arduino como está nas linhas de comandos do sketch, peço por gentileza verificar pois quando mando copilar está retornando muitos erros e a leiguice aqui é muita, agradeço se derem uma força.

http://pastebin.com/FDE0cxcx

Olá Alexandre A. M. Nogueira, como tinha me passado a dica de inversão dos relés em outra postagem, peço a gentileza se possível verificar as linhas de código do projeto que estou querendo que é Trava Eletrônica, está retornando muitos erros e sabe como é, iniciantes sofrem, kkkk, se puder dar-me uma força fico imensamente agradecido, muito obrigado e segue o link do sketch via Pastebin.

http://pastebin.com/FDE0cxcx

Boa noite AO tem alguns erros pequenos 

Keys é diferente de keys ... contator é diferente de contador.... 


#include <Keypad.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int contador = 0;

const byte ROWS = 4; // Quatro Linhas
const byte COLS = 3; // Tres Colunas

// Definindo quais são os caracteres correspondentes no teclado
char Keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'},
};

// Conectando os pinos do arduino as suas respectivas linhas
byte rowPins[ROWS] = { 7, 6, 1, 0 };
// Conectando os pinos do arduino as suas respectivas colunas
byte colPins[COLS] = { 10, 9, 8, };
// Criando o objeto
Keypad kpd = Keypad( makeKeymap(Keys), rowPins, colPins, ROWS, COLS );

//Definição de qual será a senha
char senha[7] = {'0', '1', '0', '2', '0', '3', '#'};
char palavra[7] = {'0', '0', '0', '0', '0', '0', '0'};
int fechadura = 13;


void setup(){
digitalWrite(fechadura, LOW);
lcd.begin(16, 2);
lcd.clear();
lcd.print("Inicializando...");
delay(200);
lcd.clear();
lcd.print("DIGITE A SENHA: ");
}
void loop(){
char key = kpd.getKey();

if(key) {
lcd.setCursor(0, 0);
lcd.print("Digite a Senha: ");
lcd.setCursor(contador, 1);
lcd.print(key);
delay(500);
palavra[contador] = key;
contador++;
if(contador == 6) {
palavra[contador] = senha[6];
contador = 0;
if(palavra[0]==senha[0] && palavra[1]==senha[1] && palavra[2]==senha[2] && palavra[3]==senha[3] && palavra[4]==senha[4] && palavra[5]==senha[5] && palavra[6]==senha[6]) {
lcd.clear();
lcd.print("Senha Correta!");
delay(2000);
lcd.clear();
lcd.print("Digite a Senha: ");
digitalWrite(fechadura, HIGH);
delay(1500);
digitalWrite(fechadura, LOW);
}
else
{
lcd.clear();
lcd.print("Senha Incorreta!");
delay(2000);
contador = 0;
lcd.clear();
lcd.print("Digite a Senha: ");
digitalWrite(fechadura, LOW);
}
}
}
}

Nossa valeu Alexandre, como sempre salvando meu dia, lhe agradeço demais, muito obrigado.

Venho agradecer a todos pela ajuda principalmente o Alexandre A. M. Nogueira que está sempre resolvendo as minhas dúvidas, segue a finalização do projeto com o sketch pronto para ser usado e adicionei algumas linhas de comando para acionamento do relé que não havia, lembrando que o meu relé é acionado inversamente com LOW, quem tiver um relé normal basta inverter as linhas de comando ( LOW por HIGH), abraço a todos e muito obrigado.

http://pastebin.com/d9xqXntC

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço