Im vorherigen Kapitel wurden verschiedene Eingabegeräte bzw. Sensoren vorgestellt. Dieses Kapitel beschäftigt sich mit verschiedenen Ausgabegeräten bzw. Aktoren.
Dabei sollen auf folgende Komponenten eingegangen werden.
7-Segment Anzeigen
7-Segment Anzeigen werden z.B. in digitalen Uhren oder Timern verwendet.
Die obere Abbildung visualisiert eine 7-Segment Anzeige. Sie besteht grundsätzlich aus sieben LEDs, die gemeinsam eine Kathode oder Anode besitzen. Die LED-Ansteuerung benötigt dabei lediglich nur 8 Kontaktzugänge, in Gegensatz zu 14, wenn einzelne LED für die Umsetzung der Anzeige benutzt werden würden.
Gruppen von 7-Segment Anzeigen können mehrere Ziffern darstellen. Besitzen die Segmente eine gemeinsame Kathode, so sind die Anoden der einzelnen Segmente über alle Ziffern miteinander verbunden. Je Ziffer steht dann eine gemeinsame Kathode für die Segmente bereit, sodass die Kathoden unter den Ziffern nicht verbunden sind.
Die untere visualisierte Abbildung einer 7-Segment Anzeige besitzt eine gemeinsame Anode und soll hier als Beispiel herangezogen werden. Die einzelnen Segmente der 7-Segment Anzeigen werden mit A-G und falls ein Dezimalpunkt existiert mit DP bezeichnet.
Die folgende Animation stellt eine durch den Arduino angesteuerte 7-Segment Anzeige dar. Sie stellt die Ziffernfolge von 0 bis 9 dar.
Der folgende Quellcode setzt die Funktionalität dabei um.
LC Displays
Informationen können auch mit Hilfe sogenannter LC Displays dargestellt werden. Der englische Begriff lautet Liquid Crystal Displays, oder in Kurzschreibweise LCD. Auch LCDs gibt es in diversen Ausführungen. Ein mit dem Arduino häufig verwendeter Formfaktor ist 16×2. Dies bedeutet, das LCD besteht aus zwei Zeilen zu je 16 Zeichen.
Die LCDs besitzen mehr Anschlüsse als die 7-Segment-Anzeige, allerdings können sie auch wesentlich mehr Daten darstellen als diese.
Die folgende Abbildung möchte die Pin-Konfiguration darstellen, die beim LCD zur Verfügung stehen.
Die LyquidCrystal-Bibliothek unterstützt den Anwender bei der Ansteuerung des LCD-Displays. Alle Datenpins (D0 – D7) werden dabei nicht verwendet, sondern nur die letzten vier (D4 – D7). Der Read/Write-Pin ist für das folgende Beispiel ebenfalls nicht relevant.
Der visualisierte Quellcode soll als Beispiel dienen. Zuerst wird die Display-Konfiguration umgesetzt. Seine Anzeige wird dabei jede Sekunde einmalig aktualisiert. Dazu zählen die angezeigte Zeit, wie auch die Anpasung der Hintergrundbeleuchtung.
Motoren
Gegenstandsbewegungen werden in der Elektrotechnik mit Magnetfelder realisiert. Magnetfelder können durch Spulen erzeugt werden. Durch das Zusammenspiel von Permanentmagneten und Elektromagneten können rotierende Bewegungen umgesetzt werden.
Eine sehr einfache und kostengünstige Art von Elektromotoren sind Gleichstrommotoren.
Gleichstrommotoren sind vielseitig einsetzbar und in diversen Größen verfügbar. In der Regel gilt, je Größer ein Motor ist, desto mehr Leistung benötigt er, entsprechend bringt er aber auch mehr Kraft. Diese Art von Motor erreicht sehr hohe Geschwindigkeiten – 20000 Umdrehungen pro Minute sind keine Seltenheit. Hohe Drehzahlen werden durch Getriebe in Kraft überführt. Es existieren Getriebe die 20000 Umdrehungen in 800 Umdrehungen, oder aber auch in 1 Umdrehung pro Minute, überführen können. Je stärker das Getriebe die Geschwindigkeit des Motors verringert, desto höher wird dessen Antriebskraft.
Getriebe und Motor werden oft in Kombination miteinander angeboten.
Motoren werden zu unterschiedlichen Zwecken eingesetzt, z.B. als Antrieb eines Autos, in Bohrmaschinen, im Handy zur Erzeugung des Vibration, etc..
Die Motoransteuerung mit dem Arduino erfordert es, dass die Grenze der maximalen Arduino-Stromabgabe nicht überschritten wird. Motoren benötigen in der Regel viel Energie bzw. Strom.
Die Motorengeschwindigkeit kann durch das PWM-Signal gesteuert werden. Je nach Motor-Typ könnte es erforderlich sein den Mindest-Duty-Cycle-Faktor mit anzugeben, da ansonsten keine Motorbewegung passieren würde.
Der folgende visualisierte Quellcode würde ein PWM-Signal für eine mögliche Motorsteuerung erzeugen.
Servos
Eine spezielle Motorenart sind Servos. Servos sind Motoren inkl. Steuerungselektronik, die eine genaue Winkelpositionierung und eine genaue Steuerung der Drehgeschwindigkeit erlauben.
Die obere Abbildung visualisiert.
- Regelungselektronik: Steuert die Position und Geschwindigkeit des Motors.
- Motor: Führt die Drehbewegung aus.
- Getriebe: Erhöht die Kraft und senkt die Geschwindigkeit des Motors.
- Positionssensor: Oft ein Potentiometer, das die aktuelle Position an die Regelungselektronik übermittelt.
Die Position des Servos-Achse wird über ein 50Hz PWM-Signal gesteuert. Der Duty-Cycle-Faktor bestimmt den gewünschten Winkel. Zur Servo-Steuerung könnte die Servo-Bibliothek verwendet werden, die sich um die Regelung des PWM-Signals kümmert.
Der folgende Quellcode möchte diesen Sachverhalt verdeutlichen.
Das Codefragment könnte die Servo-Ausrichtung über die serielle Schnittstelle steuern.