#include <Adafruit_TCA8418.h>
Adafruit_TCA8418 keypad;
volatile bool int_flag = false;
void ARDUINO_ISR_ATTR isr() {
int_flag = true;
}
void setup()
{
Wire.begin(D2, D3);
Serial.begin(115200);
while (!Serial) {
delay(10);
}
if (! keypad.begin(TCA8418_DEFAULT_ADDR, &Wire)) {
Serial.println("keypad not found, check wiring & pullups!");
while (1);
}
keypad.matrix(8, 10);
keypad.enableInterrupts();
pinMode(D5, INPUT_PULLUP);
attachInterrupt(D5, isr, FALLING);
keypad.flush();
}
void loop()
{
if (int_flag)
{
int k = keypad.getEvent();
if (k & 0x80) Serial.print("PRESS\tR: ");
else Serial.print("RELEASE\tR: ");
k &= 0x7F;
k--;
Serial.print(k / 10);
Serial.print("\tC: ");
Serial.print(k % 10);
Serial.println();
keypad.flush();
int_flag = false;
}
}Loading
xiao-esp32-c6
xiao-esp32-c6
Box
Lid
Box
Lid