// Programa: Projeto Cofre eletrônico
// Autor: André Luis Marques da Silveira
// Data: 14/04/2020
#include "LiquidCrystal.h"
#include "Keypad.h"
// Define as teclas do keypad
char teclas[4][4]= {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Define endereçando das conexões dos pinos arduino ao Keypad
byte linhaPinos[4] = {12,11,10,9}; // Linha 0 até 4
byte colunaPinos[4]= {8,7,6,5}; // Colunas 0 até 4
// Inicializa instancia de classe Keypad
Keypad keypad = Keypad(makeKeymap(teclas), linhaPinos, colunaPinos, 4, 4);
// Inicializa instancia de classe do LiquidCrystal
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
// Inteiros que vão armazenar a senha
int a=0;
int b=0;
int c=0;
int d=0;
//Definição da senha
int S1=2;
int S2=2;
int S3=2;
int S4=2;
int var=0; // Contador de teclas digitadas
int vezes=0; // Contadir de tentativas
void setup() {
lcd.begin(2,16);
lcd.setCursor(0,0);
lcd.clear();
}
void loop() {
char key = keypad.getKey();
if (key){
lcd.setCursor(6+var,1);
lcd.print(key);
delay(100);
lcd.setCursor(6+var,1);
lcd.print("*");
key=key-48; //converção de char em inteiros
var++;
// armazena os 4 digitos da senha
switch(var){
case 1:
a=key;
break;
case 2:
b=key;
break;
case 3:
c=key;
break;
case 4:
d=key;
testa_senha();
break;
}
} else {
lcd.setCursor(2,0);
lcd.print("Insira senha");
delay(100);
}
}
void testa_senha(){
if (a==S1 && b==S2 && c==S3 && d==S4){
lcd.setCursor(2,1);
lcd.print("Cofre aberto");
delay(1000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Insira senha");
vezes=0;
var=0;
} else{
lcd.setCursor(1,1);
lcd.print("Senha invalida");
delay(1000);
lcd.clear();
vezes++;
var=0;
}
// --- tentativas ---//
if (vezes > 0){
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Insira senha");
lcd.setCursor(2,1);
lcd.print(vezes);
lcd.setCursor(4,1);
lcd.print("tentativa");
delay(1000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Insira senha");
}
} |