#include<LiquidCrystal.h>
#include<Keypad.h>
#include<Servo.h>
int redled = 11;
int greenled = 12;
int yellowled = 13;
int buzzer = 10;
int pos = 0;
#define PasswordLength 8
char Data[PasswordLength];
char Master[PasswordLength] = "4758690";
byte datacount = 0, mastercount = 0;
bool paaIsGood;
char customKey;
const byte COLS = 3;
const byte ROWS = 4;
char keys [ROWS] [COLS] ={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {5,4,3,2};
byte colPins[COLS] = {8,7,6};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
Servo myservo;
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
myservo.attach(9);
pinMode(redled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(yellowled, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{
digitalWrite(redled, HIGH);
digitalWrite(greenled, HIGH);
digitalWrite(yellowled, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Initialising");
for(int n = 13; n<= 16;n++){
lcd.setCursor(n,0);
lcd.print(".");
delay(250);
}
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(yellowled, LOW);
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PLEASE ENTER THE");
lcd.setCursor(0,1);
lcd.print(" PASSWORD");
delay(2000);
lcd.noDisplay();
delay(150);
lcd.display();
delay(150);
lcd.noDisplay();
delay(150);
lcd.display();
delay(150);
lcd.noDisplay();
delay(150);
lcd.display();
delay(150);
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("PASSWORD: ");
lcd.setCursor(0,1);
char customKey = keypad.getKey();
if(customKey){
Data[datacount] = customKey;
tone(buzzer, 3000);
digitalWrite(yellowled, HIGH);
lcd.setCursor(datacount,1);
lcd.print("*");
datacount ++;
}
digitalWrite(yellowled, LOW);
if(datacount == PasswordLength)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ACCESS ");
if(!strcmp(Data,Master))
{
lcd.setCursor(8,0);
lcd.print("GRANTED");
Serial.println("ACCESS GRANTED");
for(pos = 0;pos<180;pos++)
{
myservo.write(pos);
digitalWrite(greenled,HIGH);
delay(15);
}
}
else
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("INVALID PASSWORD");
lcd.setCursor(0,1);
lcd.print("Try Again");
digitalWrite(redled, HIGH);
}
}
}
void clearData()
{
while(datacount != 0)
{
Data[datacount --]=0;
}
return;
}
my code is not stopping at the if(customKey)
can anyone help me....