#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 16, 4);
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] = {12, 26, 14, 17};
byte colPins[COLS] = {13, 2, 4,19};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
byte ledPin = 13;
boolean blink = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
keypad.addEventListener(keypadEvent); // Add an event listener.
keypad.setHoldTime(500); // Default is 1000mS
keypad.setDebounceTime(250); // Default is 50mS
Serial.println("Hello, ESP32!");
lcdInit();
}
void loop() {
char kye2 = keypad.getKey();
if(kye2!=NO_KEY){
Serial.println(kye2);
lcd.print(kye2);
}
delay(10); // this speeds up the simulation
}
void lcdInit(){
lcd.init();
lcd.clear();
lcd.backlight();
cr();
lcd.print("Baslatiliyor");
cargando();
cr();
lcd.clear();
}
void cargando(){
for(int i=0; i<4; i++){
lcd.print(".");
delay(200);
}
}
void cr(){
lcd.setCursor(0, 0);
}
//take care of some special events
void keypadEvent(KeypadEvent key){
switch (keypad.getState()){
case PRESSED:
switch (key){
case '#': digitalWrite(ledPin,!digitalRead(ledPin)); break;
case '*': digitalWrite(ledPin,!digitalRead(ledPin)); break;
}
break;
case RELEASED:
switch (key){
case '*':
digitalWrite(ledPin,!digitalRead(ledPin));
blink = false;
break;
}
break;
case HOLD:
switch (key){
case '*': blink = true; break;
}
break;
}
}