#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
bool custom = false;
const int PIR_ONE = 10;
const int PIR_TWO = 11;
const int PIR_THREE = 12;
bool PIR_ONE_status = false;
bool PIR_TWO_status = false;
bool PIR_THREE_status = false;
int count = 0,x=0;
char target [5];
int result=0;
char hexaKeys[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] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup(){
pinMode(PIR_ONE, INPUT);
pinMode(PIR_TWO, INPUT);
pinMode(PIR_THREE, INPUT);
lcd.backlight();
lcd.init();
lcd.setCursor(0, 0);
lcd.print("target = ");
for(int i=9; i<=13;){
char customKey = customKeypad.getKey();
custom = customKey;
if (custom){
if(customKey=='A')
break;
target[x]= customKey;
//lcd.clear();
lcd.setCursor(i, 0);
lcd.print(customKey);
i++;
x++;
}
custom = false;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("target : ");
for(int z=0; z<=4; z++){
lcd.print(target[z]);
}
//delay(5000);
//lcd.clear();
sscanf(target, "%d", &result);
// Conversion successful
lcd.setCursor(0, 1);
lcd.print(result);
delay(2530);
}
void loop(){
PIR_ONE_status = digitalRead(PIR_ONE);
PIR_TWO_status = digitalRead(PIR_TWO);
PIR_THREE_status = digitalRead(PIR_THREE);
if(PIR_ONE_status==true || PIR_TWO_status==true || PIR_THREE_status==true){
count++;
}
PIR_ONE_status = false;
PIR_TWO_status = false;
PIR_THREE_status = false;
lcd.setCursor(0, 1);
lcd.print("count : ");
lcd.print(count);
if(result<count){
lcd.setCursor(0, 1);
lcd.print("Successfully achive");
delay(2500);
}
}