Serielle Kommunikation

Die USB-Verbindung des Arduino zu deinem PC kann nicht nur zum Programmieren genutzt werden, sondern auch, um vom Arduino Daten an deinen Rechner zurückzusenden. Man könnte so beispielsweise eine Schaltung bauen, die irgendeine Größe misst, und die Messwerte dann an den PC übertragt, wo man daraus ein Diagramm erstellen kann. Aber auch wenn man gerade ein Programm entwickelt, und es gerade nicht so klappt wie es soll, kann es praktisch sein, auf dem PC den Ablauf des Programms mitverfolgen zu können, um rauszufinden, was schiefgeht.

Die Daten werden vom Arduino über eine sogenannte serielle Schnittstelle verschickt. Um kennenzulernen, wie diese funktioniert, werden wir in dieser Lektion einen Taster an den Arduino anschließen und am PC anzeigen, ob dieser gedrückt ist oder nicht.

Die Schaltung

Schließe den Pin 2 des Arduino an den Taster an. Die andere Seite des Tasters verbinde mit +5V. Verbinde außerdem den Pin 2 über einen 10kΩ-Widerstand mit Masse (GND). Der Widerstand fungiert in dieser Schaltung als sogenannter Pulldown-Widerstand. Ist der Taster geöffnet, zieht der Widerstand den Pin auf Masse „herunter“, und der Arduino sieht eine „0“ auf dem Pin. Wird der Schalter gedrückt, stellt er eine Verbindung mit +5V her, der Arduino sieht an dem Pin also eine „1“. (Natürlich fließt auch etwas Strom über den Widerstand zwischen Masse und +5V, darum ist dieser mit 10kΩ so groß gewählt, dass dies nicht weiter ins Gewicht fällt.)

Das Programm

(Unter den Beispielprogrammen unter „01.Basics“ als „DigitalReadSerial“ zu finden)

void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT);
}

void loop() {
  int sensorValue = digitalRead(2);
  Serial.println(sensorValue);
}

Der Setup-Teil des Programms schaltet mittels Serial.begin(9600) die serielle Schnittstelle des Arduino ein. Die 9600 bedeutet, dass 9600 Bits pro Sekunde übertragen werden können. Dafür werden Pin 0 und 1 gebraucht, die auf der Arduino-Platine selbst mit dem USB-Adapter verdrahtet sind. Darum haben wir unseren Taster auch an Pin 2 angeschlossen, der mit dem pinMode(2, INPUT)-Befehl als Eingangspin definiert wird.

Der Loop des Programms fragt nun diesen Pin ab, und speichert seinen Zustand (0 oder 1 je nachdem ob der Taster gedrückt wurde) in der Variable sensorValue, die in der nächsten Zeile mittels Serial.println an deinen PC übertragen wird.

Um nun am PC die Ausgabe deines Arduino-Programms sehen zu können, musst du den „Serial Monitor“ in der Arduino-Software öffnen (Im Menü unter „Tools“ zu finden).

project/arduino-kickstarter-103.txt · Zuletzt geändert: 20.11.2013 21:54 von paalsteek
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Driven by DokuWiki