Ir ao conteúdo

Posts recomendados

Postado
#include <Keypad.h> // Inclusão de biblioteca para que o teclado seja ativo.
#include <Servo.h> // Inclusão de biblioteca para que o Micro Servo seja ativo.  
#include <LiquidCrystal.h>  


LiquidCrystal lcd(19,18,17,16,15,14);

Servo servo_Motor; // Objeto tipo Servo
char* password = "12345678"; //Senha para destrancar 
int position = 0; // Variavel para ler a posição da tecla apertada
const byte VERT = 4; // Quantidade de linhas do teclado
const byte HORI = 4; // Quantidade de colunas do teclado
char keys[VERT][HORI] = { // Declaração dos botões do teclado (Letras e caracteres)
{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}
};

byte vertPins[VERT] = { 8, 7, 6, 1 }; // Pinos que estão conectadas as linhas do teclado
byte horiPins[HORI] = { 5, 4, 3, 0 }; //Pinos que estão conectadas as colunas do teclado 
Keypad keypad = Keypad( makeKeymap(keys), vertPins, horiPins, VERT, HORI );// As variáveis vertPins e horiPins irão receber a leitura dos pinos das linhas e colunas, respectivamente

const int ledVerm = 12; // Pino em que o led vermelho está ligado
const int ledVerde = 13; // Pino em que o led verde está ligado



void setup() 
{  
  lcd.begin(16,2);
  // Define o pino do sensor optico como entrada 
  lcd.setCursor(0, 0);
  lcd.print("Fechadura");
  lcd.setCursor(0, 1);
  lcd.print("Fechado");
  
  pinMode(ledVerm, OUTPUT); 
  pinMode(ledVerde, OUTPUT); 

  servo_Motor.attach(11); // Pino de controle do Servo Motor
  setLocked(true); // Estado inicial da fechadura, que está trancada
}

void loop(){
  char chave = keypad.getKey(); // Comando para a leitura das teclas pressionadas 
  if (chave == '*' || chave == '#') { 
      position = 0; // Posição de leitura da tecla aperta inicia em 0
      setLocked(true); // Se apertar a tecla " * " ou a tecla " # " a tranca é fechada
}
if (chave == password[position]){ 
      position ++;// Se a tecla pressionada seguir a ordem da senha definida, pula para o proximo caractere.
}
if (position == 8){ 
      setLocked(false); //Se a variável for igual a 8 quando todas as teclas da senha forem pressionadas na ordem correta, a fechadura estará destrancada.
}
delay (100);
}
void setLocked(int locked){ 
if (locked){ // Se a tranca estiver fechada, faz com que o led vermelho acenda e o verde apague
    digitalWrite(ledVerm, HIGH);
    digitalWrite(ledVerde, LOW);
    lcd.setCursor(0, 1);
    lcd.print("Fechado");
    servo_Motor.write(0); //Posição do Servo fica em 0°, que significa que a fechadura está trancada
}
else{ 
    digitalWrite(ledVerde, HIGH);
    digitalWrite(ledVerm, LOW);
    lcd.setCursor(0, 1);
    lcd.print("Aberto");  
    servo_Motor.write(82);// Posição do Servo passa a ser 82º, que significa que a fechadura está destrancada
}
}

Galera to motando esse projeto ai, O objetivo é: quando a fechadura estiver trancada, mostrar no monitor e o led vermelho ficar aceso ( esse ta ok )

mas quando eu digito a senha que eu coloquei no codigo, não aparece no painel que a tranca foi destrancada e nem o led verde ( de liberado ) acende, alguem pode consertar por favor? É NA PLATAFORMA TINKERCAD

image.png

  • Membro VIP
Postado

Confuso pra analisar...p.ex. verifique cada abertura e fechamento de chaves. Pesquise sobre indentação. É de sua autoria? Parece algo sinistro: uma função dentro do loop... me deu dor de cabeça... Aguarde alguém da sua...

12 horas atrás, Davi Mateus Gomes disse:

Galera

😒

  • Haha 1
  • 8 meses depois...
Postado

Comece colocando um delay médio (tipo 500 ou 1000) ao apertar o botão correto.
Outra coisa, eu faria o código de x dígitos inteiro e faz o teste no fim, e não essa lógica de só aparecer o asterisco quando acertar, eu em 1 minuto descubro a senha se um sistema possuir tal lógica.

  • Membro VIP
Postado

off...

34 minutos atrás, Thiago Miotto disse:

1 minuto descubro a senha se um sistema possuir tal lógica.

Me fez lembrar... certa vez vi uma cena num filme (antigo) .. o teclado de um cofre tocava um som algo como aqueles tons telefone (gerador de dtmf). Cada tecla um tom. Então uma personagem ouviu os tons da senha que alguém digitava e depois "cantou" no ouvido de outro personagem quando passou perto dele tu túu tû tù tün  ... o cara foi lá e abriu de imediato.😑... bem menos de 1 minuto.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!