KEYBOARD.ino 826 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <M5Stack.h>
  2. #define KEYBOARD_I2C_ADDR 0X08
  3. #define KEYBOARD_INT 5
  4. void setup()
  5. {
  6. M5.begin();
  7. M5.Power.begin();
  8. Wire.begin();
  9. M5.Lcd.setTextFont(2);
  10. M5.Lcd.println("FACES Keyboard I2C Read Example");
  11. pinMode(KEYBOARD_INT, INPUT_PULLUP);
  12. }
  13. void loop()
  14. {
  15. if(digitalRead(KEYBOARD_INT) == LOW) {
  16. Wire.requestFrom(KEYBOARD_I2C_ADDR, 1); // request 1 byte from keyboard
  17. while (Wire.available()) {
  18. uint8_t key_val = Wire.read(); // receive a byte as character
  19. if(key_val != 0) {
  20. if(key_val >= 0x20 && key_val < 0x7F) { // ASCII String
  21. Serial.print((char)key_val);
  22. M5.Lcd.print((char)key_val);
  23. } else {
  24. Serial.printf("0x%02X ",key_val);
  25. M5.Lcd.printf("0x%02X ",key_val);
  26. }
  27. }
  28. }
  29. }
  30. }