Open
Description
Hello,
I bought a 5 buttons keypad like https://fr.aliexpress.com/item/2044851328.html?gatewayAdapt=glo2fra&spm=a2g0o.9042311.0.0.277c6c37tAJ6Zn
and run the following code
#include <ezAnalogKeypad.h>
// #include <Keyboard.h>
#define PIN_ANALOG_KEYPAD_5BUT A0
ezAnalogKeypad keypad_5but(PIN_ANALOG_KEYPAD_5BUT);
void setup() {
Serial.begin(9600);
keypad_5but.setNoPressValue(1023); // analog value when no key is pressed
keypad_5but.registerKey('w', 145); // sw2 (up) 119
keypad_5but.registerKey('z', 330); // sw3 (down) 122
keypad_5but.registerKey('a', 0); // sw1 (left) 97
keypad_5but.registerKey('d', 506); // sw4 (right) 100
keypad_5but.registerKey('s', 742); // sw5 (but) 115
keypad_5but.setDebounceTime(100);
// Keyboard.begin();
}
void loop() {
//Serial.println(analogRead(PIN_ANALOG_KEYPAD_5BUT));
unsigned char button_k5 = keypad_5but.getKey();
if (button_k5) {
Serial.print("The button ");
Serial.print(char(button_k5));
Serial.println(" is pressed");
switch (button_k5) {
case 'w':
Serial.println("UP");
//Keyboard.press(KEY_UP_ARROW);
break;
case 'z':
Serial.println("DOWN");
//Keyboard.press(KEY_DOWN_ARROW);
break;
case 'a':
Serial.println("LEFT");
//Keyboard.press(KEY_LEFT_ARROW);
break;
case 'd':
Serial.println("RIGHT");
//Keyboard.press(KEY_RIGHT_ARROW);
break;
case 's':
Serial.println("p");
//Keyboard.press('p');
break;
default:
break;
}
delay(100);
//Keyboard.releaseAll();
}
}
when pressing SW1 (left arrow) the following text is shown on console
The button a is pressed
LEFT
The button z is pressed
DOWN
I was expecting only
The button a is pressed
LEFT
I don't uderstand why DOWN is also displayed.
Any idea? is it a problem with the library ?
Kind regards
PS : library works fine with analog 4x4 keypad https://github.com/scls19fr/condor_sim_keypad_4x4
Metadata
Metadata
Assignees
Labels
No labels