int pins[] = {0, 1, 2, 3}; int vals[] = {0, 0, 0, 0}; int lastVals[] = {0, 0, 0, 0}; String ch[] = {"a", "d", "s", "w"}; long lastDebounceTime[] = {0, 0, 0, 0}; long debounceDelay = 10; void setup() { for(int i = 0; i < 4; i++) { pinMode(pins[i], INPUT); } } void loop(){ for(int i = 0; i < 4; i++) { int reading = digitalRead(pins[i]); if (reading != lastVals[i]) { lastDebounceTime[i] = millis(); } if ((millis() - lastDebounceTime[i]) > debounceDelay) { vals[i] = reading; } lastVals[i] = reading; if (vals[i] == HIGH) { Keyboard.print(ch[i]); } } delay(100); }