#include <LCD_I2C.h>
#include <Wire.h>
#include <I2CKeyPad.h>
LCD_I2C lcd(0x3C, 16, 2); //incorporate LCD
I2CKeyPad keyPad(0x38); //incorporate Keypad
uint32_t start, stop;
uint32_t lastKeyPressed = 0;
void setup(){
Serial.begin(115200); Serial.println(); Serial.println(__FILE__);
Serial.print("I2C_KEYPAD_LIB_VERSION: "); Serial.println(I2C_KEYPAD_LIB_VERSION); Serial.println();
Wire.begin();
Wire.setClock(400000);
if (keyPad.begin() == false) {
Serial.println("\nERROR: cannot communicate to keypad.\nPlease reboot.\n");
while (1);
}
}
void loop(){
uint32_t now = millis();
char keys[] = "123A456B789C*0#DNF"; // N = NoKey, F = Fail
if (now - lastKeyPressed >= 100) {
lastKeyPressed = now;
start = micros();
uint8_t index = keyPad.getKey();
stop = micros();
Serial.print(millis()); Serial.print("\t"); Serial.print(index); Serial.print("\t");
Serial.print(keys[index]); Serial.print("\t"); Serial.println(stop - start);
}
}