2016-06-03 21 views
1

Ich versuche, eine Sparkfun Pro Micro als Controller für meine Tastatur zu verwenden. Ich kann das Verhalten einer normalen Tastatur nicht erreichen. Das ist mein Code:Sparkfun Pro Micro (ATMega32u4) als Controller einer USB-Tastatur

#include <Keyboard.h> 

int firstButtonPin = 18, secondButtonPin = 19; 
char firstButtonChar = 'z', secondButtonChar = 'x'; 
bool firstButtonPressed = false, secondButtonPressed = true; 

void setup() { 
    pinMode(firstButtonPin, INPUT); 
    pinMode(secondButtonPin, INPUT); 

    Keyboard.begin(); 
} 

void loop() { 
    if(digitalRead(firstButtonPin) == HIGH && firstButtonPressed == false) Keyboard.press(firstButtonChar), firstButtonPressed = true; 
    else if(digitalRead(firstButtonPin) != HIGH && firstButtonPressed) Keyboard.release(firstButtonChar), firstButtonPressed = false; 

    if(digitalRead(secondButtonPin) == HIGH && secondButtonPressed == false) Keyboard.press(secondButtonChar), secondButtonPressed = true; 
    else if(digitalRead(secondButtonPin) != HIGH && secondButtonPressed) Keyboard.release(secondButtonChar), secondButtonPressed = false; 
} 

YT-Link: https://youtu.be/VfHNOtq4HHo. Wie Sie sehen können, gibt normale Tastatur eine einzelne Taste aus und nach einiger Zeit spamt es. Wenn ich AVR umschalte, bekomme ich immer wieder Spam (es sieht so aus, als würden die Tasten nicht geladen werden, nur gedrückt und in sehr kurzer Zeit wieder losgelassen. Wie kann ich das Verhalten einer echten Tastatur erreichen? Ich würde es gerne benutzen in Spielen wie Osu !. Ich hoffe, Sie können mir helfen. Vielen Dank im Voraus

Antwort

0

Das Problem war, Bouncing-Taste.