#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
#include "Wire.h"
// #include "I2CKeyPad.h"
// #include "Keypad_I2C.h"
#include <Keypad.h> // GDY120705
// #include <Wire.h>
#define I2CADDR 0x38
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {32, 35, 12, 14}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {27, 26, 25, 33}; //connect to the column pinouts of the keypad
// Keypad_I2C keypad = Keypad_I2C( makeKeymap(keys), rowPins, colPins, ROWS, COLS, I2CADDR );
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
byte ledPin = 17;
boolean blink = false;
#define deltaTime(val) (millis()-val)
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
keypad.begin(makeKeymap(keys));
pinMode(ledPin, OUTPUT); // sets the digital pin as output
digitalWrite(ledPin, HIGH); // sets the LED on
keypad.addEventListener(keypadEvent); //add an event listener for this keypad
keypad.setHoldTime(1500);
tft.begin();
tft.setRotation(1);
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(2);
tft.print("Connecting to WiFi");
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.println(key);
}
if (blink){
digitalWrite(ledPin,!digitalRead(ledPin));
delay(100);
}
}
//take care of some special events
void keypadEvent(KeypadEvent key){
Serial.println("TEST, ESP32!");
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;
}
}