#include #define KEYBOARD_I2C_ADDR 0X08 #define KEYBOARD_INT 5 void setup() { M5.begin(); M5.Power.begin(); Wire.begin(); M5.Lcd.setTextFont(2); M5.Lcd.println("FACES Keyboard I2C Read Example"); pinMode(KEYBOARD_INT, INPUT_PULLUP); } void loop() { if (digitalRead(KEYBOARD_INT) == LOW) { Wire.requestFrom(KEYBOARD_I2C_ADDR, 1); // request 1 byte from keyboard while (Wire.available()) { uint8_t key_val = Wire.read(); // receive a byte as character if (key_val != 0) { if (key_val >= 0x20 && key_val < 0x7F) { // ASCII String Serial.print((char)key_val); M5.Lcd.print((char)key_val); } else { Serial.printf("0x%02X ", key_val); M5.Lcd.printf("0x%02X ", key_val); } } } } }