[spoiler="Wiring and code"]
[/spoiler]
Code: Select all
#include <Bounce.h>
#define NUM_KEYS 12
struct Key {
char keycode;
Bounce* bounce;
};
Key keys[NUM_KEYS];
Key key(char keycode, int pin) {
Key *ret = new Key;
ret->keycode = keycode;
ret->bounce = new Bounce(pin, 10);
pinMode(pin, INPUT_PULLUP);
return *ret;
}
void setupKeys() {
keys[21] = key('w', 21);
keys[20] = key('s', 20);
keys[19] = key('a', 19);
keys[18] = key('d', 18);
keys[17] = key('p', 17);
keys[16] = key('l', 16);
keys[15] = key('o', 15);
keys[14] = key('k', 14);
keys[13] = key('x', 13);
keys[12] = key('z', 12);
keys[11] = key('q', 11);
keys[10] = key('e', 10);
}
void setup() {
setupKeys();
Keyboard.begin();
// pinMode(0, INPUT_PULLUP);
}
void loop() {
for (int i = 0; i < NUM_KEYS; i++) {
keys[i].bounce->update();
if (keys[i].bounce->fallingEdge()) {
Keyboard.press(keys[i].keycode);
} else if (keys[i].bounce->risingEdge()) {
Keyboard.release(keys[i].keycode);
}
}
}