#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
const int redLedPin = 13;
const int greenLedPin = 12;
const int buzzerPin = 11;
const int ROWS = 4;
const int COLS = 4;
const char password[4] = "1234";
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {0, 1, 2, 3};
byte colPins[COLS] = {4, 5, 6, 7};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin(16, 2);
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter password:");
char enteredPassword[5];
int i = 0;
while (i < 4) {
char key = keypad.getKey();
if (key) {
enteredPassword[i++] = key;
lcd.setCursor(i-1, 1);
lcd.print("*");
}
if (strcmp(enteredPassword, password) == 0) {
// Correct password
digitalWrite(greenLedPin, HIGH);
digitalWrite(redLedPin, LOW);
digitalWrite(buzzerPin, LOW);
lcd.clear();
lcd.print("Password OK!");
delay(2000);
} else {
// Incorrect password
digitalWrite(greenLedPin, LOW);
digitalWrite(redLedPin, HIGH);
digitalWrite(buzzerPin, HIGH);
lcd.clear();
lcd.print("Incorrect Password!");
delay(2000);
}
}
}