Arduino Leonardo als USB/UART-Adapter verwenden

English Deutsch

Im Gegensatz zu älteren Designs wie dem Arduino Uno verfügt der Arduino Leonardo über eine separate Verbindung Serial1 für TTL-UART, während Serial für das USB-CDC-UART-Interface verwendet wird.

Dies ermöglicht es, den Leonardo als USB/UART-Brücke zu verwenden, ohne auf teurere Boards wie den Arduino Mega 2560 zurückgreifen zu müssen. Verwende dafür diesen Sketch, der auch modifiziert werden kann, um eine intelligente UART-Brücke bereitzustellen.

Denke daran, die Baudrate für deine Anwendung anzupassen. Diese Version des Sketchs unterstützt keine automatische Baudraten-Auswahl über die CDC-Peripherie.

arduino_leonardo_usbuart_bridge.ino
/*
  USB/UART-Brücke für Arduino Leonardo
  Ursprünglich geschrieben von Uli Koehler in 2015
  Veröffentlicht auf techoverflow.net

  Revision 1.0

  Veröffentlicht unter Public Domain (CC 1.0 Universal)
 */

void setup() {
  // Baudrate hier anpassen
  Serial.begin(115200);
  Serial1.begin(115200);
  //Warten bis USB-CDC-Port verbunden ist
  while (!Serial) {
  }
}

void loop() {
  //Byte kopieren, das über TTL-Serial hereinkommt
  if (Serial1.available() > 0) {
    Serial.write(Serial1.read());
  }
  //Byte kopieren, das über CDC-Serial hereinkommt
  if (Serial.available() > 0) {
    Serial1.write(Serial.read());
  }
}

Update 2017-09-13: Fix für const int baudrate, das ein 2-Byte-int auf avr-gcc ist und daher 115200 als Zahl nicht aufnehmen kann. Danke Andrei Kovari!


Check out similar posts by category: C/C++, Embedded