Zelf een gamecontroller maken

ik ben inmiddels weer terug van vakantie en weet begonnen met arduino en begonnen met het uitzoeken van de toetsen dus heb ik een programmatje van custom keyboard key geadopteerd, het probleemis dus op het moment dat ik mn random toets indruk in dit geval case 2
krijg ik niet 1 t maar 5-7 t's en op het moment dat ik de delay aanpas dan worden het er alleen maar meer

#include <Keyboard.h>
int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

void setup() {
 // put your setup code here, to run once:
 Keyboard.begin(); // setup keyboard
 for (int i = 2; i < 11; ++i) {
 // initilize pins
 pinMode(i, INPUT);
 }
}

void loop() {
 // put your main code here, to run repeatedly:
 for (int i = 2; i < 11; ++i) {
 // check buttons
 if(readButton(i)) {
 doAction(i); 
 }
 }
}

boolean readButton(int pin) {
 // check and debounce buttons
 if (digitalRead(pin) == HIGH) {
 delay(10);
 if (digitalRead(pin) == HIGH) {
 return true;
 }
 }
 return false;
}

void doAction(int pin) {
 // perform tasks
 switch (pin) {
 case 2:
 Keyboard.press('t');
 delay(100);
 Keyboard.releaseAll();
 break;
 case 3:
 Keyboard.println("makeuseof.com");
 break;
 case 4:
 // CMD + T (new tab, Chrome)

 break;
 case 5:
 // your task here
 break;
 case 6:
 // your task here
 break;
 case 7:
 // your task here
 break;
 case 8:
 // your task here
 break;
 case 9:
 // your task here
 break;

 }
}

makeuseof