Der Arduino Leonardo ist von den Maßen her mit dem Arduino UNO gleich, einzig die Technik (und darauf kommt es ja auch an) ist deutlich verbessert.
Inhaltsverzeichnis
Anschlüsse des Arduino Leonardos
Der Arduino Leonardo verfügt über einen Micro-USB-Anschluss für die Verbindung zum Computer und eine 2,1 mm „Center Positiv“ Strombuchse.
Stromversorgung
Wie auch der Arduino UNO verfügt der Leonardo über einen internen Spannungswandler. Somit ist dieser mit einer Spannung von 7 bis 12V zu betreiben.
Spezifikation
Länge | 68,6 mm |
Breite | 53,4 mm |
Gewicht | 20 g |
Flash Speicher | 32 KB (von denen 4 KB für den Bootloader reserviert sind) |
SRAM | 2,5 KB |
EEPROM | 1 KB |
CPU Taktgeschwindigkeit | 16 MHz |
Betriebsspannung | 5 V |
Eingangsspannung | 7 bis 12 V (bevorzugt) |
minimale Eingangsspannung | 6 V |
maximale Eingangsspannung | 20 V |
max. Stromstärke pro I/O Pin | 20 mA |
max. Stromstärke für die 3.3 V Versorgung | 50 mA |
digitale Eingänge / Ausgänge | 20 |
digitale PWM Ausgänge | 7 |
analoge Eingänge / Ausgänge | 12 |
Beispiele
Der Arduino Leonardo kann Maus & Tastatur Eingaben simulieren. Dieses möchte ich nun in einem kleinen Beispiel zeigen:
Beispiel 1 – Tastatureingaben simulieren
In einem kleinen Beispiel möchte ich nun durch einen Pull Down Widerstand ein Event auslösen, welches in einem Texteditor einen Text eingibt.
Das Beispiel habe ich von der Seite https://www.arduino.cc/en/Tutorial/KeyboardMessage geladen und etwas modifiziert.
Quellcode
#include <Keyboard.h> const int buttonPin = 4; // Eingangs PIN für den Taster int previousButtonState = HIGH; // Status des Tasters int counter = 0; // Zähler für die Anzahl der Eingaben des Tasters void setup() { pinMode(buttonPin, INPUT); Keyboard.begin(); } void loop() { int buttonState = digitalRead(buttonPin); if ((buttonState != previousButtonState) && (buttonState == HIGH)) { Keyboard.print("Der Taster wurde "); Keyboard.print(++counter); Keyboard.println(" mal gedrueckt."); Keyboard.press_iso(); } previousButtonState = buttonState; delay(350); }
Da die Bibliothek „Keyboard“ für das amerikanische Layout ausgelegt ist, sind die Umlaute nicht enthalten, sowie sind die Tasten x & y vertauscht, auch sind verschiedene Sonderzeichen nicht an der gleichen Stelle.
Für den Zeilenumbruch habe ich in dem Beispiel einfach den Befehl für das Drücken & loslassen der Enter / Return Taste (176) verwendet. Eine Liste mit gültigen Codes für die Sondertasten findest du unter
https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers/
Video
In diesem Video zeige ich in einem geöffneten Texteditor, dass beim Betätigen des Tasters ein Text eingegeben wird.
Da in dem Sketch eine kleine Pause von 350ms. eingebaut ist, wird nicht jeder Tastendruck erkannt. Hier muss noch etwas an der Pause „geschraubt“ werden. Sollte man diese jedoch weglassen so kommt es zum anderen Fall das dann zu viele Tastendrucke erkannt werden.
Troubleshooting
Bibliothek „Keyboard.h“ nicht gefunden
Wenn beim Kompilieren des Sketches die Fehlermeldung ausgegeben wird.
'Keyboard' nicht gefunden. Beinhaltet Ihr Sketch die Zeile '#include <Keyboard.h>'?
So liegt es wahrscheinlich daran, dass nicht das korrekte Board gewählt wurde. Zur Lösung also bitte das Board „Arduino Leonardo“ in der IDE auswählen.
Hi,
Ich habe Keyboard Library an Deutsche Layout angepasst.
Alle Umlaute und ß ESZET funktionieren.
Arduino Leonardo USB Keyboard Deutsch library
https://github.com/MichaelDworkin/Arduino-Leonardo-USB-Keyboard-Deutsch-library
Hi,
danke für den Hinweis. Werde ich mir glatt einmal anschauen.
Gruß,
Stefan Draeger