#include <Keypad.h>
#include <Servo.h>
const uint8_t LEDS = 12;
#include <LiquidCrystal.h>
#define codeLength 5
Servo myservo;
char Code[codeLength];
char PassW[codeLength] = "1234";
byte keycount = 0;
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
LiquidCrystal lcd(13,12,9,8,7,6);
uint8_t rowPins[ROWS] = { 26, 22, 21, 20 };
uint8_t colPins[COLS] = { 19, 18, 17, 16 };
Keypad customKeypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
lcd.begin(16,2);
lcd.print("Enter a Key:-");
myservo.attach(28);
}
void loop()
{
int pos;
char customKey = customKeypad.getKey();
if(customKey)
{
Code[keycount] = customKey;
Serial.print(Code[keycount]);
lcd.setCursor(5,1);
lcd.print(Code[keycount]);
keycount++;
}
if(keycount==codeLength-1)
{
Serial.println("");
if(!strcmp(Code,PassW))
{
Serial.println("Correct Password");
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Correct Password");
for(pos = 90; pos<=180;pos++)
{
myservo.write(pos);
delay(40);
}
delay(1000);
for(pos = 180; pos>=90;pos--)
{
myservo.write(pos);
delay(40);
}
}
else
{
Serial.println("Incorrect Password");
delay(1000);
}
deletecount();
}
}
void deletecount()
{
while(keycount!=0)
{
Code[keycount--]=0;
}
return;
}
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS
rp1:1
rp1:2
rp2:1
rp2:2
rp3:1
rp3:2
rp4:1
rp4:2
keypad1:R1
keypad1:R2
keypad1:R3
keypad1:R4
keypad1:C1
keypad1:C2
keypad1:C3
keypad1:C4
lcd1:VSS
lcd1:VDD
lcd1:V0
lcd1:RS
lcd1:RW
lcd1:E
lcd1:D0
lcd1:D1
lcd1:D2
lcd1:D3
lcd1:D4
lcd1:D5
lcd1:D6
lcd1:D7
lcd1:A
lcd1:K
servo1:GND
servo1:V+
servo1:PWM
r1:1
r1:2