Ir ao conteúdo
  • Cadastre-se

Arduino Projeto com um Arduino


Posts recomendados

#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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

  • 8 meses depois...

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.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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.

Link para o comentário
Compartilhar em outros sites

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!