- 01 Placa Arduino Uno
- 01 Protoboard
- 01 LCD 16x2
- 01 Buzzer
- 01 Servo Motor
- 01 Módulo de comunicação I2C
- Jumpers
- 01 Potenciômetro de 10KΩ
Código
#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
Servo motor1;
const byte numRows= 4; //número de linhas no teclado
const byte numCols= 3; //Número de colunas no teclado
int position = 0;
const int buzzer = 9;
const int duration = 200;
int Led_vermelho = 10;
int Led_verde = 11;
char* secretCode = "2468";
int fechadura = 13;
int contador =0;
char senha[ ] = {'0','1','0','2','0','3','\0'};
char palavra[ ] = {'0','0','0','0','0','0','\0'};
//Keymap define a tecla pressionada de acordo com a linha e colunas tal como aparece no teclado
char keymap[numRows][numCols]=
{
{'1', '2', '3', },
{'4', '5', '6', },
{'7', '8', '9', },
{'*', '0', '#', }
};
//Código que mostra as conexões do teclado para os terminais arduino
byte rowPins[numRows] = {8,7,6,5};
byte colPins[numCols]= {4,3,2};
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup()
{
motor1.attach(12);
digitalWrite(fechadura, LOW);
lcd.begin(16,2);
lcd.clear();
lcd.print("Inicializando..");
delay(2000);
lcd.clear();
lcd.print("Digite a Senha:");
motor1.write(0);
}
void loop()
{
char key = myKeypad.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] = '\0';
if((palavra[0] == senha[0]) &&(palavra[1] == senha[1]) && (palavra[2] == senha[2]) && (palavra[3] == senha[3]))
{
lcd.clear();
lcd.print("Senha Correta !");
delay (600);
lcd.clear();
tone(buzzer,2500);
delay(100);
tone(buzzer,900);
delay(100);
noTone(buzzer);
pinMode(Led_verde,OUTPUT);
digitalWrite(Led_verde,HIGH); //liga Led verde
lcd.print("Porta Aberta");
motor1.write(180);
delay(400);
delay(6000);
digitalWrite(Led_verde,LOW); //desliga Led verde
lcd.clear();
lcd.print("Porta Fechada");
motor1.write(0);
delay(400);
delay(1000);
contador = 0;
lcd.clear();
lcd.print ("Digite Senha: ");
digitalWrite(fechadura, HIGH);
delay(1500);
digitalWrite(fechadura, LOW);
}
else
{lcd.clear();
lcd.print("Senha incorreta!");
pinMode(Led_vermelho,OUTPUT);
digitalWrite(Led_vermelho,HIGH); //liga Led vermelho
tone(buzzer,300);
delay(500);
noTone(buzzer);
delay(500);
tone(buzzer,300);
delay(100);
noTone(buzzer);
delay(500);
delay(2000);
digitalWrite(Led_vermelho,LOW); //desliga Led vermelho
contador = 0;
lcd.clear();
lcd.print("Digite a Senha: ");
digitalWrite(fechadura, LOW);
}
}
}
}
0 Comentários:
Postar um comentário
Assinar Postar comentários [Atom]
<< Página inicial