#include <Keypad.h>
#include <Servo.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {A3, A2, A1, A0};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Servo myServo;
const int ledPin = 13;
const String password = "1234";
String inputPassword = "";
void setup() {
myServo.attach(10);
myServo.write(0);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
lcd.begin(16, 2);
lcd.print("System Ready");
delay(1500);
lcd.clear();
lcd.print("Enter Password:");
}
void loop() {
char key = keypad.getKey();
if (key) {
if (key == '#') {
if (inputPassword == password) {
correctPassword();
} else {
incorrectPassword();
}
inputPassword = "";
} else if (key == '*') {
inputPassword = "";
lcd.clear(); //
lcd.print("Enter Password:");
} else {
inputPassword += key;
lcd.setCursor(0, 1);
lcd.print(inputPassword);
}
}
}
void correctPassword() {
lcd.clear();
lcd.print("Access Granted");
digitalWrite(ledPin, HIGH);
myServo.write(90);
delay(180);
myServo.write(0);
digitalWrite(ledPin, LOW);
lcd.clear();
lcd.print("Enter Password:");
}
void incorrectPassword() {
lcd.clear();
lcd.print("Access Denied");
digitalWrite(ledPin, LOW);
delay(180);
lcd.clear();
lcd.print("Enter Password:");
}
{
"version": 1,
"author": "Anonymous maker",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-arduino-uno",
"id": "uno",
"top": 10.2,
"left": -19.8,
"attrs": {} },
{
"type": "wokwi-lcd1602",
"id": "lcd",
"top": -236.57,
"left": -3.2,
"attrs": { "pins": "[\"RS\",\"E\",\"D4\",\"D5\",\"D6\",\"D7\"]" }
},
{
"type": "wokwi-membrane-keypad",
"id": "keypad1",
"top": -40.4,
"left": 360.8,
"attrs": {} },
{
"type": "wokwi-servo",
"id": "servo1",
"top": -69.2,
"left": -278.4,
"attrs": {}
},
{ "type": "wokwi-led",
"id": "led1",
"top": -70.8,
"left": 80.6,
"attrs":
{ "color": "red" }
}
],
"connections": [
[ "uno:12", "lcd:RS", "green", [ "v0" ] ],
[ "uno:11", "lcd:E", "green", [ "v0" ] ],
[ "uno:5", "lcd:D4", "green", [ "v0" ] ],
[ "uno:4", "lcd:D5", "green", [ "v0" ] ],
[ "uno:3", "lcd:D6", "green", [ "v0" ] ],
[ "uno:2", "lcd:D7", "green", [ "v0" ] ],
[ "uno:9", "keypad1:R1", "green", [ "v0" ] ],
[ "uno:8", "keypad1:R2", "green", [ "v0" ] ],
[ "uno:7", "keypad1:R3", "green", [ "v0" ] ],
[ "uno:6", "keypad1:R4", "green", [ "v0" ] ],
[ "uno:A3", "keypad1:C1", "green", [ "v0" ] ],
[ "uno:A2", "keypad1:C2", "green", [ "v0" ] ],
[ "uno:A1", "keypad1:C3", "green", [ "v0" ] ],
[ "uno:A0", "keypad1:C4", "green", [ "v0" ] ],
[ "uno:GND.1", "servo1:GND", "black", [ "v-38.4", "h-287.7" ] ],
[ "uno:10", "servo1:PWM", "green", [ "v0" ] ],
[ "uno:5V", "servo1:V+", "red", [ "v0" ] ],
[ "led1:A", "uno:13", "green", [ "v0" ] ],
[ "led1:C", "uno:GND.1", "green", [ "v0" ] ]
],
"dependencies": {}
}