1234567891011121314151617181920212223242526272829303132 |
- #include <M5Stack.h>
- #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);
- }
- }
- }
- }
- }
|