Leonardo als USB Keyboard

Hallo,

Kan er mij iemand vertellen wat ik verkeerd doe?
Onderstaande code werd in de Leonardo gestoken.
De pull-up weerstand en drukknop werden verbonden.

Wanneer ik de knop indruk krijg ik vele U's afgeprint (tussen de 40 en de 100).
Heeft dit iets met het drukknopje te maken ?
Of kan er iets anders fout zijn ?

void setup() {
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
}

void loop() {
if(digitalRead(2)==LOW){
Keyboard.write("U");
}
}

de code stuurt een U door zolang er op het knopje wordt gedrukt.
Dus wat jij omschrijft klopt met de code.
Wat wil je dat er gebeurd?

Wat dacht je van bij te houden wat de vorige stand van je knopje was...

Daarenboven kan je ook best nog "debouncen" als je een keyboard wil maken... Er is een voorbeeld in de arduino IDE. Is niet zo moeilijk maar vraagt wel wat tijd en experiment om te begrijpen als je niet gewoon bent te programmeren.

boolean vorigeStatus=HIGH;

void setup()
{
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
}

void loop()
{
boolean status=digitalRead(2);

if(status!=vorigeStatus)
{
vorigeStatus=status;
if (status==LOW)
{
Keyboard.write('U');
}
}
}