Samstag, 6. Juni 2015

Serielle Verbindung zwischen PC und Arduino

Manchmal ist es prakisch, dass man sein Arduinosketch auch vom PC steuern/überwachen kann. Dazu verwendet man eine serielle Verbindung. Diese sendet dann Daten über das USB Kabel.

Daten vom Arduino zum PC

Um Daten vom Arduino zum PC zu schicken (beispielsweise Statusinformationen), muss man zunächst eine serielle Verbindung starten. Das geschieht im Setup Teil über den Befehl Serial.begin(Datenrate). Die "Standarddatenrate" ist 9600. Wenn man nun einen Text senden will, verwendet man den Befehl Serial.print("Text"), bei Variablen lässt man die Anführungszeichen weg. Um danach einen Zeilenumbruch am PC zu erhalten verwendet man die Funktion Serial.println("Text");. 
Die Zeile while(Serial.available() < 0) {} ist ein kleiner Trick. Dadurch wird solange gewartet, bis die serielle Konsole am PC geöffnet wird. Erst, wenn diese geöffnet ist seht ihr die Nachrichten, die gerade gesendet werden. Ihr öffnet sie direkt in der Arduino IDE über einen Klick auf das Symbol rechts oben.
Dort erschient nun die von uns gesendete Nachricht:

Daten vom PC zum Arduino

Um Daten vom PC zum Arduino zu senden tippt man einfach die Nachricht in Zeile der seriellen Konsole ein (siehe oben). Damit der Arduino diese Nachrichten aber auch auswertet muss man ihm das mitteilen. Nehmen wir mal an wir wollen zwei LEDs über die serielle Konsole steuern können. Dann müssen wir sie natürlich als OUTPUTs definieren und eine serielle Verbindung mit einer gewissen Datenrate starten. Nun müssen wir wieder überprüfen, ob die serielle Konsole geöffnet ist/etwas gesandt wurde. Dazu nehmen wir wieder den Befehl Serial.available(). Um nun die Nachricht in einer Variable zu speichern, verwendet man die Funktion Serial.read(). Diese liest jedoch immer nur ein Zeichen aus. Wenn wir also beide LEDs über die Zeichenkette 11 anschalten wollen, müssen wir zweimal die Funktion Serial.read() aufrufen. Nun müssen wir nur noch überprüfen, ob die Variable einer LED 0 ist, also aus, oder 1 ist, also an.
Hinweis: Jedes mal, wenn man die serielle Konsole neu startet, startet sich auch der Arduino neu!

Das Ergebnis sind dann über den PC gesteuerte LEDs.


Wozu werdet ihr die serielle Verbindung benutzen?

Keine Kommentare:

Kommentar veröffentlichen