(sorry wenn ich aus der Firma Antworte darf ich meinen Account nicht benutzen drum haben ich 2 einen für daheim (LInuxPC) und einen in der Firma(WindowsPC).)
Der Scetch sendet auf HID den Text "ABC_XYZ_abx_xyz"
Dieser sendet auch und es kommt aber “ABC?XZY?abx?xzy” an
Irgendwie versteht der nicht das ich ein deutsches Keybord habe.
Und es ist auf Windows das gleiche Problem wie auch auf Linux
Das ändert nichts an deinem Problem:
Der Buchstabe '_' wird in einen Tastencode gewandelt und an den PC gesendet, der dann dort mit einer anderen Layout-Tabelle in ein '?' gewandelt wird.
Wenn du dem PC sagst, dass eine deutsche Tastatur dranhängt, musst du das auch so im Arduino einstellen (oder umgekehrt)
Recent releases of the HID Library have support for the most common layouts, so that they will always press the key corresponding to the character you want to type. Just use:
Keyboard.write('Y');
For this to work, you will need to add the following at the top of your sketch:
#define HID_CUSTOM_LAYOUT
#define LAYOUT_GERMAN
Make sure to add it before the #include <HID-Project.h> directive. Of course you can customize the second line to choose your desired keylayout. You can have a glimpse at the available layouts at the bottom of the ImprovedKeylayouts.h file.
Dabei werden bestimmte Sonderzeichen in der Funktion "void char2Keyboard(byte cOut) " umcodiert, so dass sie vom PC (Linux wie auch unter Windows) korrekt erkannt werden.
Eine kurze Erläuterung dazu findest Du im o.a. Thread in meinem Post 26.
Gerne mal testen ...
Gruß
ec2021
P.S.: Der Sketch wurde bei mir auf einem Pro Micro (in der Arduino IDE wie ein Leonardo anzusprechen) getestet. Für Deinen Anwendung müsstest Du nur das Pin-Array und das Text-Array anpassen. Aber Achtung: Wenn man den Text sofort ausgeben lässt, sobald das Board angeschlossen wird oder nicht sicherstellt, dass der Fokus auf dem beabsichtigen Fenster liegt, können ggf. äußerst unangenehme DInge passieren. Bei bösartigen Kommandos bis hin zum Löschen der Festplatte !!!! Es zeigt, wie gefährlich es ist, unbekannte Hardware per USB anzuschließen ...