 |
Standardmäßig veröffentlichte oder
durch die Community erstellte Bibliotheken enthalten professionell
geschriebenen Code, welchen der Bentzer wie eine Black-Box benutzt (... es
ist nicht notwendig zu wissen, wie die Abläufe intern gestaltet sind, nur
die Schnittstellen sowie Übergabe-Parameter müssen eingehalten werden). |
 |
... klicken Sie nach dem Hochladen auf die lupenähnliche Schaltfläche
“serieller Monitor” oben rechts in der Arduino IDE.
Es öffnet
sich ein neues Fenster, in welchem unten rechts der Wert “9600 Baud”
eingestellt werden muss. Ab dann sollten Sie in diesem Fenster fortlaufend
die Ausgabe unseres Programmes sehen:
Der Arduino hat nun über das
USB-Kabel eine Datenverbindung zum PC und kann in diesem Fenster Zeichen
ausgeben – so wie eine Schreibmaschine oder ein Text-Ticker. Der
Mikrocontroller selbst nutzt dafür seine serielle Schnittstelle – eine sehr
einfache und bewährte Möglichkeit, über kurze Distanzen Daten zu übertragen.
Dafür sind nur drei Leitungen nötig – Tx (Transceive – senden), Rx (Receive–
empfangen) und die Masse-Verbindung als Gegenpol. Für moderne PCs ist die
serielle Schnittstelle zu langsam und nicht mehr zeitgemäß, daher fehlt
ihnen ein entsprechender Anschluss.
Die Arduino-Entwickler lösten
dieses Problem, indem sie auf der Arduino-Platine einen weiteren
Mikrocontroller platzierten, der sich per USB verbinden lässt und sich am
Computer als serielle Schnittstelle meldet. Er ist sozusagen der verlängerte
Arm des Computers und ermöglicht so die serielle Kommunikation mit dem
ATmega328, also dem eigentlichen Arduino-Mikrocontroller. Aus diesem Grund
müssen Sie in der Arduino IDE als Anschluss einen COM-Port auswählen, denn
ursprünglich wurden serielle Anschlüsse als COM(munication)-Ports
bezeichnet. Mit den seriellen Leitungen sind übrigens auch die mit “Rx” und
“Tx” beschrifteten LEDs auf der Platine verbunden. Deshalb flackert die
“Tx“-LED immer kurz auf, wenn eine Ausgabe von unserem Programm an den
Bildschirm gesendet wird. Schauen wir uns nun die Befehle des Codebeispiels
im Detail an:
1. Mit dem Befehl Serial.begin() wird die Verbindung
hergestellt. Der Arduino UNO hat dafür fest voreingestellte Anschlüsse, sie
können am Pin 0 (Rx) und 1 (Tx) abgegriffen werden. Wir müssen jedoch nichts
anklemmen, da sie bereits auf dem Board zusätzlich mit dem besagten
USB-Konverter verbunden sind. Die als Argument übergebene Zahl 9600 stellt
die gewünschte Datenübertragungsrate dar. Da der Verbindungsaufbau nur
einmal nötig ist, steht er innerhalb des setup()-Programmteils.Falls Sie
sich wundern, warum mitten im Funktionsnamen ein Punkt zu finden ist: Wir
werden diese Schreibweise in Kapitel (objektorientierte Programmierung)
noch genauer beleuchten. An der aktuellen Stelle hat dies für uns noch
keinen Belang, sehen Sie den Punkt vorerst einfach als Bestandteil des
Funktionsnamens. 2. Die Funktion Serial.print() können wir nun einfach
nutzen, um Zeichen oder Werte an ein seriell angeschlossenes Gerät
(hier also den PC) zu schicken. Als Argument wird hier einfach eine
Zeichenkette (also ein Textschnipsel) übergeben. 3. Diesmal wird der
Funktion der Wert der Variable Zaehler übergeben. Auf der Bildschirmausgabe
des Computers erkennen Sie, dass diese Zahl erwartungsgemäß hochgezählt
wird. 4. Hier heißt die Ausgabefunktion geringfügig anders: Das angehängte
“ln” bei Serial.Println() steht für Line, also Zeile. Es bedeutet lediglich,
dass im Anschluss an die Ausgabe noch ein Steuerzeichen für einen
Zeilenwechsel gesendet wird. Deshalb beginnt in der Ausgabe auf dem
seriellen Monitor danach immer eine neue Zeile. Dies dient nur der besseren
Übersicht. Die bei der Initialisierung angegebene Geschwindigkeit (Baudrate)
von 9600 beschreibt vereinfacht gesagt die Anzahl der übertragenen Bit pro
Sekunde. Da Text meist mit 8 Bit pro Zeichen übertragen wird, können wir
also grob geschätzt etwa 1.200 Buchstaben pro Sekunde senden. Real ist
dieser Wert etwas geringer, da auch noch Steuer- und Kontrollbits übertragen
werden, um den Datenfluss zu regeln. Für unsere Anwendungen reicht diese
Geschwindigkeit aber auf jeden Fall.Der Arduino Mikrocontroller unterstützt
Geschwindigkeiten bis zu 115200 Baud. Hohe Geschwindigkeiten machen das
Signal allerdings anfälliger für Störungen. Mehr dazu im Kapitel 5.5, wenn
wir uns den Schnittstellen widmen. Natürlich funktioniert die Übertragung
auch in die andere Richtung. Dazu nehmen wir nun ein neues Beispiel:
Nach dem
Hochladen dieses Sketches öffnen Sie einfach den seriellen Monitor, wieder
mit der Einstellung “9600 Baud”. Zunächst bleibt die Anzeige leer. Klicken
Sie nun mit der Maus in das Eingabefeld am oberen Rand, tippen Sie ein “e”
ein und bestätigen mit Enter. Nun sollte die LED aufleuchten und ein
Bestätigungstext am Bildschirm erscheinen. Mit dem Buchstaben “a” können Sie
sie in gleicher Weise abschalten. |