Arduino Serial Print: Daten von Arduino an deinen Computer senden

Heute zeige ich dir, wie du mit Arduino Serial Print Daten von deinem Arduino an den Computer sendest und im seriellen Monitor anzeigen lässt. Diese Funktion ist eines der wichtigsten Werkzeuge beim Arbeiten mit Arduino – egal ob du gerade erst anfängst oder schon fortgeschrittene Projekte umsetzt.

Serial Print ermöglicht es dir, in Echtzeit zu sehen, was in deinem Arduino passiert. Du kannst damit Sensordaten überwachen, Fehler in deinem Code finden (Debugging) oder einfach Werte ausgeben, um zu verstehen, wie dein Programm arbeitet. Die serielle Kommunikation ist besonders für Anfänger wertvoll, weil sie einen direkten Einblick in die Funktionsweise deines Codes gibt – ohne dass du zusätzliche Hardware wie Displays benötigst.

Materialliste

Für dieses Tutorial benötigst du folgende Bauteile:


Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


Technische Grundlagen

Was ist Serial Print?

Serial Print ist die Funktion, mit der dein Arduino Daten über die serielle Schnittstelle an deinen Computer sendet. Die Verbindung läuft über das USB-Kabel, das du ohnehin zum Programmieren verwendest. Die Daten werden dann im seriellen Monitor der Arduino IDE angezeigt.

Es gibt zwei wichtige Befehle, die du kennen solltest:

  • Serial.print() – gibt Daten aus, ohne eine neue Zeile zu beginnen
  • Serial.println() – gibt Daten aus und springt danach in die nächste Zeile

Der Unterschied mag klein erscheinen, ist aber entscheidend für die Formatierung deiner Ausgaben.

Die Baud-Rate verstehen

Die Baud-Rate bestimmt die Geschwindigkeit, mit der Daten übertragen werden. Du kannst sie dir wie eine gemeinsame Sprache zwischen Arduino und Computer vorstellen. Beide müssen die gleiche „Geschwindigkeit“ sprechen, sonst kommen nur unleserliche Zeichen an.

Gängige Baud-Raten sind:

  • 9600 – Standard für die meisten Projekte
  • 115200 – schneller, gut für viele Daten
  • Weitere: 4800, 19200, 57600, etc.

Wichtig: Die Baud-Rate im Code (Serial.begin()) muss mit der Einstellung im seriellen Monitor übereinstimmen!

Serial Monitor öffnen

Den seriellen Monitor findest du in der Arduino IDE auf drei Wegen:

  • Menü: Werkzeuge → Serieller Monitor
  • Tastenkombination: Strg+Umschalt+M (Windows/Linux) oder Cmd+Umschalt+M (Mac)
  • Symbol: Das Lupen-Symbol oben rechts in der IDE

Achte darauf, dass du unten rechts im Monitor die richtige Baud-Rate einstellst – sie muss mit Serial.begin() in deinem Code übereinstimmen.

Wichtige Serial-Befehle im Überblick

Hier sind die wichtigsten Befehle für die Arbeit mit Serial Print:

  • Serial.begin(9600) – Startet die serielle Kommunikation (gehört in setup())
  • Serial.print() – Gibt Werte aus ohne Zeilenumbruch
  • Serial.println() – Gibt Werte aus mit Zeilenumbruch
  • \t – Erzeugt einen Tabulator für Formatierung
  • \n – Erzeugt einen Zeilenumbruch

Verkabelung / Schaltplan

Für die ersten drei Beispiele brauchst du keine externe Verkabelung – nur dein Arduino Board mit USB-Verbindung zum Computer.

Für das Fotowiderstand-Beispiel schließt du den Sensor als Spannungsteiler an:

  • Ein Bein des Fotowiderstands an 5V
  • Das andere Bein an den analogen Pin A0 und über einen 10kΩ Widerstand an GND
  • Alternativ: Fotowiderstand an A0 und GND, 10kΩ Pulldown-Widerstand parallel

Die genaue Schaltung siehst du im folgenden Bild:

Arduino Fotowiderstand Schaltplan mit analogem Pin A0 und Spannungsteiler

Der Code

Beispiel 1: Einfacher Text

Das einfachste Arduino Serial Print Beispiel sendet einen Text:

Serial.print("Hallo Welt");

Dieser einzelne Befehl sendet „Hallo Welt“ an den seriellen Monitor. Beachte: Damit das funktioniert, muss Serial.begin() vorher in setup() aufgerufen worden sein.

Beispiel 2: Millisekunden ausgeben

So gibst du die laufende Zeit seit Programmstart aus:

void setup(){
  Serial.begin(9600);      // startet serielle Kommunikation mit einer Baud-Rate von 9600
}

void loop(){
  Serial.print(millis());  // sendet aktuelle Millisekunden 
  Serial.print(" ");       // sendet ein Leerzeichen
  delay(10);               // kurze Pause
}

Was macht dieser Code:

Ich erkläre dir die Funktionsweise: In setup() wird die serielle Kommunikation mit 9600 Baud initialisiert – das ist der Standard für die meisten Arduino-Projekte. In der loop() Funktion wird kontinuierlich die Zeit ausgegeben, die seit dem Programmstart vergangen ist.

Die Funktion millis() gibt dir die Millisekunden zurück, die seit dem Start des Programms vergangen sind. Da ich Serial.print() ohne „ln“ verwende, werden die Werte in einer Zeile ausgegeben. Das Leerzeichen sorgt dafür, dass die Zahlen lesbar getrennt sind. Die Pause von 10 Millisekunden verhindert, dass der Monitor überflutet wird.

Beispiel 3: Mehrere Sensoren formatiert ausgeben

So kannst du mehrere Sensorwerte übersichtlich darstellen:

Serial.print(millis());  // sendet aktuelle Millisekunden 
Serial.print("\t Sensor1=");  // erzeugt einen Tab-Stop
Serial.print(sensorWert1);  // Ausgabe Sensorwert
Serial.print("\t Sensor2=");  // erzeugt einen Tab-Stop
Serial.print(sensorWert2);  // Ausgabe Sensorwert
Serial.print("\t Sensor3=");  // erzeugt einen Tab-Stop
Serial.println(sensorWert3);  // Ausgabe Sensorwert und neue Zeile

Hinweis: Das \t erzeugt einen Tabulator, der für eine spaltenweise Ausrichtung sorgt. So kannst du mehrere Werte nebeneinander anzeigen, ohne dass alles zusammenläuft. Der letzte Befehl nutzt Serial.println(), damit nach allen drei Sensoren eine neue Zeile beginnt.

Diese Formatierung ist besonders praktisch, wenn du mehrere Sensoren gleichzeitig überwachen möchtest. Im seriellen Monitor sieht das dann wie eine Tabelle aus, die sich kontinuierlich aktualisiert.

Beispiel 4: Fotowiderstand mit Balkendiagramm

Ein praktisches Beispiel mit visuellem Feedback:

void setup(){
  Serial.begin(115200);      // startet serielle Kommunikation mit einer Baud-Rate von 115200
}

void loop(){
  int sensorWert = analogRead(0);  // liest einen Fotowiderstand aus
  for (int i=0; i<(sensorWert/10); i++){
    Serial.print("*");
  }
  Serial.println("");  // sendet einen Zeilenumbruch
  delay(10);               // kurze Pause
}

Was macht dieser Code:

Dieses Beispiel zeigt dir eine kreative Anwendung von Serial Print. Der Arduino liest den analogen Wert vom Fotowiderstand an Pin A0 aus. Dieser Wert liegt zwischen 0 (dunkel) und 1023 (hell).

Ich teile den Sensorwert durch 10, um die Länge des Balkens zu berechnen. Dann gibt eine for-Schleife so viele Sternchen aus, wie der berechnete Wert angibt. Je heller das Licht auf dem Fotowiderstand, desto länger wird der Balken aus Sternchen.

Nach jedem Balken sorgt Serial.println("") für einen Zeilenumbruch, sodass der nächste Balken in der nächsten Zeile beginnt. Das Ergebnis ist ein einfaches, aber effektives Echtzeit-Diagramm direkt im seriellen Monitor.

Tipp: Beachte, dass hier eine höhere Baud-Rate (115200) verwendet wird. Vergiss nicht, diese auch im seriellen Monitor einzustellen!

Häufige Fehler und Lösungen

Unleserliche Zeichen im seriellen Monitor

Wenn du nur seltsame Symbole siehst, stimmt die Baud-Rate nicht überein. Überprüfe, ob die Zahl in Serial.begin() mit der Einstellung unten rechts im seriellen Monitor übereinstimmt.

Keine Ausgabe im seriellen Monitor

Stelle sicher, dass:

  • Der serielle Monitor geöffnet ist
  • Der richtige COM-Port ausgewählt ist
  • Serial.begin() im setup() aufgerufen wird
  • Der Code tatsächlich Serial.print() verwendet

Ausgabe zu schnell oder zu langsam

Passe die delay() Zeit in der loop() an. Kleinere Werte bedeuten schnellere Updates, größere Werte verlangsamen die Ausgabe.

Fazit

Arduino Serial Print ist ein unverzichtbares Werkzeug für dich, egal ob du gerade deine ersten Schritte mit Arduino machst oder komplexe Projekte entwickelst. Ich nutze es in fast jedem Projekt zum Debuggen und Überwachen von Sensordaten.

Die Vorteile im Überblick:

  • Einfaches Debugging: Du siehst sofort, welche Werte dein Code verarbeitet
  • Keine zusätzliche Hardware: Der serielle Monitor ist in der Arduino IDE integriert
  • Flexible Formatierung: Mit \t, \n und verschiedenen Print-Befehlen gestaltest du die Ausgabe übersichtlich
  • Echtzeit-Monitoring: Du beobachtest deine Sensoren und Variablen live

Nächste Schritte

Jetzt bist du dran! Ich empfehle dir folgende Experimente:

  • Verschiedene Baud-Raten testen: Probiere aus, wie sich unterschiedliche Geschwindigkeiten auswirken
  • Eigene Formatierungen: Kombiniere \t und \n für deine perfekte Ausgabe
  • Mehrere Sensoren: Schließe verschiedene Sensoren an und gib alle Werte formatiert aus
  • Berechnungen ausgeben: Nutze Serial Print, um Zwischenergebnisse deiner Berechnungen zu kontrollieren

Weiterführende Tutorials

Wenn du Serial Print beherrschst, kannst du dich an diese fortgeschrittenen Themen wagen:

  • Arduino Serial Read: Empfange Daten vom Computer und steuere deinen Arduino interaktiv
  • Arduino Sensoren auslesen: Kombiniere verschiedene Sensoren mit Serial Print zur Überwachung
  • Arduino Debugging-Techniken: Professionelle Methoden zur Fehlersuche in komplexen Projekten
  • Arduino Datenlogging: Speichere Serial-Daten auf deinem Computer für spätere Analysen

Mit Serial Print hast du jetzt ein mächtiges Werkzeug an der Hand, das dir bei jedem Arduino-Projekt helfen wird. Viel Erfolg beim Experimentieren!


Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

  • Die beliebtesten Arduino-Projekte von StartHardware
  • Inklusive Schaltplan, Beschreibung und Code
  • Arduino-Schnellstart-Kapitel
  • Kompakter Programmierkurs


0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
Alex
4 Jahre zuvor

Serial.print(“Wert 1=” + wert1) funktioniert nicht …

Kann man aber umgehen indem der erste Wert mit einer Variablen definiert wird – etwa so:
String Test=““;
Serial.print(Test+“Wert 1=” + wert1)

Ali
Antworte an  Alex
3 Jahre zuvor

oder
Serial.print(“Wert 1=” + String(wert1));

2
0
Ich würde mich über deine Meinung freuen.x