Hallo Zusammen,
ich sehe vor Lauter Code den Wald nicht mehr...
Stehe gerade vor dem Problem, dass ich mit einem Arduino Leonardo eine USB Tastatur nachbauen will mit Makrotasten.
Habe zum einen den Befehl "Keyboard.press" als auch den Befehl "Keymap" mit im Quellcode.
Die Bibliotheken
#include <Keyboard.h>
#include <Keyboard_de_DE.h>
sind eingebunden.
Defaktum das Problem ist nun, dass die Tasten die ich definiere, entweder garnicht oder wenn komplett falsch dargestellt werdem.
Ich weiß dass ich den Fehler im ASCII Code suchen muss.
Weiß jemand, welchen ASCII ich Eintippen muss bei welchem Befehl (HEX, DEZ)?
Anbei der Code.
#include <Keyboard.h>
#include <Keyboard_de_DE.h>
//Zugbeeinflussung PZB90
int buttonStateFrei = 0;
int buttonStateWach = 0;
int buttonStateBef = 0;
//Federspeicherbremse
int buttonStateFBA = 0;
int buttonStateFBL = 0;
//Mg-Bremse
int buttonStateMg = 0;
//Fahrtrichtung
int buttonStateFV = 0;
int buttonStateFR = 0;
//Führeraum besetzt
int buttonStateFRI = 0;
int buttonStateFRO = 0;
//Hauptschalter ET
int buttonStateHSE = 0;
int buttonStateHSA = 0;
//Stromabnehmer ET
int buttonStateSTH = 0;
int buttonStateSTS = 0;
//Sand
int buttonStateSand = 0;
//SIFA
int buttonStateSifa = 0;
void setup() {
pinMode(1, INPUT_PULLUP); //PZB90 Frei
pinMode(2, INPUT_PULLUP); //PZB90 Wachsam
pinMode(3, INPUT_PULLUP); //PZB90 Befehl 40
pinMode(4, INPUT_PULLUP); //Federspeicherbremse Anlegen
pinMode(5, INPUT_PULLUP); //Federspeicherbremse Lösen
pinMode(6, INPUT_PULLUP); //Mg-Bremse
pinMode(7, INPUT_PULLUP); //Fahrtrichtung Vorwärts
pinMode(8, INPUT_PULLUP); //Fahrtrichtung Rückwärts
pinMode(9, INPUT_PULLUP); //Führerpult Aktivieren
pinMode(10, INPUT_PULLUP); //Führerpult Deaktivieren
pinMode(11, INPUT_PULLUP); //Hauptschalter Einlegen
pinMode(12, INPUT_PULLUP); //Hauptschalter Auslegen
pinMode(13, INPUT_PULLUP); //Stromabnehmer Heben
pinMode(14, INPUT_PULLUP); //Stromabnehmer Senken
pinMode(15, INPUT_PULLUP); //Sanden
pinMode(16, INPUT_PULLUP); //SIFA
Keyboard.begin();
}
void loop() {
buttonStateFrei = digitalRead(1);
if (buttonStateFrei == LOW) {
uint8_t keymap = 0x62; //Taste . (Punkt)
Keyboard.end();
Keyboard.begin(&keymap);
Keyboard.press(0);
Keyboard.end();
Keyboard.begin(KeyboardLayout_de_DE);
delay(100);
Keyboard.releaseAll();
}
buttonStateWach = digitalRead(2);
if (buttonStateWach == LOW) {
uint8_t keymap = 0x63; //Taste - (Minus)
Keyboard.end();
Keyboard.begin(&keymap);
Keyboard.press(0);
Keyboard.end();
Keyboard.begin(KeyboardLayout_de_DE);
delay(100);
Keyboard.releaseAll();
}
buttonStateBef = digitalRead(3);
if (buttonStateBef == LOW) {
uint8_t keymap = 0x58; //Taste , (Komma)
Keyboard.end();
Keyboard.begin(&keymap);
Keyboard.press(0);
Keyboard.end();
Keyboard.begin(KeyboardLayout_de_DE);
delay(100);
Keyboard.releaseAll();
}
buttonStateFBA = digitalRead(4);
if (buttonStateFBA == LOW) {
Keyboard.press(228);
delay(100);
Keyboard.releaseAll();
}
buttonStateFBL = digitalRead(5);
if (buttonStateFBL == LOW) {
Keyboard.press(252);
delay(100);
Keyboard.releaseAll();
}
buttonStateMg = digitalRead(6);
if (buttonStateMg == LOW) {
Keyboard.press(109);
delay(100);
Keyboard.releaseAll();
}
buttonStateFV = digitalRead(7);
if (buttonStateFV == LOW) {
Keyboard.press(118);
delay(100);
Keyboard.releaseAll();
}
buttonStateFR = digitalRead(8);
if (buttonStateFR == LOW) {
Keyboard.press(114);
delay(100);
Keyboard.releaseAll();
}
buttonStateFRI = digitalRead(9);
if (buttonStateFRI == LOW) {
Keyboard.press(105);
delay(100);
Keyboard.releaseAll();
}
buttonStateFRO = digitalRead(10);
if (buttonStateFRO == LOW) {
Keyboard.press(111);
delay(100);
Keyboard.releaseAll();
}
buttonStateHSE = digitalRead(11);
if (buttonStateHSE == LOW) {
Keyboard.press(104);
delay(100);
Keyboard.releaseAll();
}
buttonStateHSA = digitalRead(12);
if (buttonStateHSA == LOW) {
Keyboard.press(110);
delay(100);
Keyboard.releaseAll();
}
buttonStateSTH = digitalRead(13);
if (buttonStateSTH == LOW) {
Keyboard.press(101);
delay(100);
Keyboard.releaseAll();
}
buttonStateSTS = digitalRead(14);
if (buttonStateSTS == LOW) {
Keyboard.press(99);
delay(100);
Keyboard.releaseAll();
}
buttonStateSand = digitalRead(15);
if (buttonStateSand == LOW) {
Keyboard.press(115);
delay(100);
Keyboard.releaseAll();
}
buttonStateSifa = digitalRead(16);
if (buttonStateSifa == LOW) {
Keyboard.press(20);
delay(100);
Keyboard.releaseAll();
}
}
Vielen Dank für eure Hilfe!
Kevin
