Hello Every One,
Here i am having a code for multi-password locking system where i have a reset and enter key as per my requirement
Now i want to add a backspace key for deleting the wrong password or simply deleting the written characters one by one in back order
#include <Keypad.h>
#include <LCD_I2C.h>
#include <SoftwareSerial.h>
//const int RELAY_PIN = A0; // the Arduino pin, which connects to the IN pin of relay
const int RELAY_PIN = 12;
const int ROW_NUM = 4; //four rows
const int COLUMN_NUM = 4; //four columns
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
LCD_I2C lcd(0x27, 16, 2);
const String password_1 = "1"; // change your password here
const String password_2 = "11"; // change your password here
String input_password;
void setup(){
Serial.begin(9600);
input_password.reserve(32); // maximum input characters is 33, change if needed
pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output.
digitalWrite(RELAY_PIN, LOW); // lock the door
lcd.begin(); // initialize the lcd
lcd.backlight();
}
void loop(){
lcd.setCursor(0, 0);
lcd.print("Enter Key Below!");
char key = keypad.getKey();
if (key)
{
//Serial.println(key);
if(key == '*')
{
input_password = ""; // reset the input password
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Input Password");
lcd.setCursor(5, 1);
lcd.print("RESET");
delay(500);
lcd.clear();
}
else if(key == '#')
{
lcd.clear();
if(input_password == password_1) //|| input_password == password_2) // || input_password == password_3)
{
//Serial.println("password is correct");
lcd.setCursor(3, 0);
lcd.print("Warning");
lcd.setCursor(0, 1);
lcd.print("Kid Opened this Lock");
digitalWrite(RELAY_PIN, HIGH); // unlock the door for 20 seconds
delay(1000);
digitalWrite(RELAY_PIN, LOW); // lock the door
//lcd.clear();
} // if(input_password == password_1 || input_password == password_2 || input_password == password_3)
else if(input_password == password_2) //|| input_password == password_2) // || input_password == password_3)
{
//Serial.println("password is correct");
lcd.setCursor(4, 0);
lcd.print("CORRECT!");
lcd.setCursor(1, 1);
lcd.print("Lock Opened");
digitalWrite(RELAY_PIN, HIGH); // unlock the door for 20 seconds
delay(3000);
digitalWrite(RELAY_PIN, LOW); // lock the door
//lcd.clear();
}
else
{
//Serial.println("password is incorrect, try again");
lcd.setCursor(0, 0);
lcd.print("InValid Entry");
lcd.setCursor(1, 1);
lcd.print("ACCESS DENIED!");
delay(2000);
lcd.clear();
}
input_password = ""; // reset the input password
} // else if end
else
{
if(input_password.length() == 0)
{
lcd.clear();
}
input_password += key; // append new character to input password string
lcd.setCursor(input_password.length(), 1); // move cursor to new position
lcd.print(key); // print key showing the character
} // else last
} // if (key) end [Every Thing Resides Under this key]
} // void loop end
Please help me in introducing a backspace button as i need it compulsorily for few things or issues i am facing in my project !!!
Thanks to all !