Logo
Lisa Schneider
Die meisten Anfänger raten, wo ihre Firmware hängt. Dabei sagt es das Programm selbst – über die Verbindung, die es beim Flashen ohnehin nutzt.

Wer ein erstes IoT-Programm auf einen Mikrocontroller lädt, trifft schnell auf Serial.println(). Wer nicht weiß, was dahinterläuft, sieht nur wirre Zeichen im Monitor und hält die Platine für kaputt.

Der serielle Monitor der Arduino-IDE zeigt Textausgaben der Firmware über die USB-Verbindung an, etwa mit Serial.println(). Dahinter steckt dieselbe UART-Verbindung, also die serielle Schnittstelle mit einer TX- und einer RX-Leitung, über die auch die Firmware in den Flash-Speicher geschrieben wird. UART überträgt Daten ohne gemeinsamen Takt, deshalb müssen Firmware und Monitor dieselbe Baudrate verwenden, also dieselbe Übertragungsgeschwindigkeit in Bits pro Sekunde.

In der Praxis sieht das so aus: In setup(), dem Vorbereitungsteil, der genau einmal läuft, startet Serial.begin() die Schnittstelle und legt die Baudrate fest. Danach gibt die Firmware mit Serial.print() Text aus dem laufenden loop(), der Endlosschleife nach dem Start, an den PC. Serial.println() fügt am Ende einen Zeilenumbruch an, sodass jede Ausgabe eine eigene Zeile erhält. Vor dem WLAN-Verbinden etwa eine Zeile „WLAN verbinde…“, danach die Antwort der Firmware.

Verwechselt wird der Monitor gern mit einem Messgerät. Er ist keins: Er zeigt nur, was die Firmware selbst ausgibt, etwa den gelesenen Pin-Zustand, nicht was ein Multimeter messen würde. Auch Serial.begin() gehört in setup(), nicht in loop(), sonst wiederholt die Firmware die Startarbeit bei jedem Durchlauf und kann Abläufe stören, die nur beim Start gehören.

Der serielle Monitor ist kein separates Werkzeug, sondern dasselbe UART-Kabel, nur in Gegenrichtung. Er ersetzt kein Messgerät – aber er ersetzt das Raten.

📌 Serieller Monitor · Serial.println() · Baudrate

📚 IoT von Grund auf · Tag 3 von 30
#Arduino #esp32 #Mikrocontroller
3 Tage vor