28
Günter Spanner Arduino Schaltungsprojekte für Profis • Programmiergrundlagen • Einfache Projekte für den Einstieg • Schnittstellen- und Hardware-Erweiterungen • Komplexe Anwendungen für Fortgeschrittene

Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

  • Upload
    ngolien

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

Elektor-Verlag GmbH52072 Aachenwww.elektor.de

ISBN 978-3-89576-257-4

Günter Spanner

Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. Zum Einen wird durch das fertige Prozessor-Board der Einstieg in die Hardware enorm erleichtert. Der zweite Erfolgsfaktor ist die kostenlos verfügbare Programmieroberfl äche (Open Source), die ohne In stallationsprozeduren sofort einsetzbar ist.

Einfache Einstiegsbeispiele sorgen für den schnellen Erfolg. Eine komplizierte Auswahl von Parametern, wie etwa Prozessorversion oder Schnittstelleneinstellungen sind nicht erforderlich. Erste Beispielprogramme können innerhalb weniger Minuten auf das Arduino-Board geladen und getestet werden.

Unterstützt wird der Arduino-Anwender durch eine Fülle von Software-Bibliotheken. Die täg-lich wachsende Flut von Libraries stellt den Einsteiger vor erste Probleme. Nach einfachen Ein-führungsbeispielen ist der weitere Weg nicht mehr klar erkennbar. Hier fehlen oft detaillierte Beschreibungen und die mehr oder weniger gut beschriebenen Projekte führen eher zu Verwir-rung. Ein klar erkennbarer roter Faden fehlt, da die Anwendungen natürlich von einer Vielzahl verschiedener Personen erstellt wurden, die alle jeweils ein spezielles Ziel vor Augen hatten.

Hier setzt dieses Buch an. Systematisch werden Projekte vorgestellt, die in verschiedene The-mengebiete einführen. Dabei wird neben den erforderlichen theoretischen Grundlagen stets größter Wert auf eine praxisorientierte Ausrichtung gelegt. So werden wichtige Techniken wie AD-Wandlung, Timer oder Interrupts stets in Praxisprojekte eingebettet. Es entstehen Laufl icht-effekte, ein Aufwachlicht, voll funktionsfähige Voltmeter, präzise Digitalthermometer, Uhren in allen Variationen, Reaktionszeitmesser oder mausgesteuerte Roboterarme. Und ganz nebenbei hat der Leser die Basics der zugehörigen Controllertechnik verstanden und im wahrsten Sinne des Wortes begriffen.

Arduino

Günt

er S

pann

er

ArduinoSchaltungsprojektefür Profi s

Schaltungsprojektefür Profi s

• Programmiergrundlagen• Einfache Projekte für den Einstieg• Schnittstellen- und

Hardware-Erweiterungen• Komplexe Anwendungen für

Fortgeschrittene

Günter Spanner

Ardu

ino

· Sch

altu

ngsp

roje

kte

für P

rofi s

Cover_Arduino_rz_neu-2.indd 1Cover_Arduino_rz_neu-2.indd 1 25.10.12 10:5225.10.12 10:52

jeanineo
Distance Measurement
Distance: 13,60 mm
Page 2: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

Dr. Günter SpannerArduino

Schaltungsprojekte für Profis

119026_arduino-buch_03.indd 1119026_arduino-buch_03.indd 1 23.10.2012 16:44:0923.10.2012 16:44:09

Page 3: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

Über den Autor

Der Autor des vorliegenden Buches ist beruflich seit über 15 Jahren inForschung und Entwicklung aktiv.

Der Schwerpunkt seiner Tätigkeit für verschiedene Großkonzerne wieSiemens und ABB ist die Projektleitung im Bereich Elektronikentwicklungund Physikalische Technologie.

Unter seiner Federführung entstanden in Kooperation mitverschiedenen Universitäten Patente auf den unterschiedlichstenGebieten: Von der Elektronik über die Umweltsensorik bis hinzur Bio- und Medizintechnik.

Dank seiner Tätigkeiten im Bereich Sourcing Engineering und alsTechnology- und Category-Mananger verfügt er über detaillierte Kenntnisse des Halbleitermarktes und der Produktionstechnik.

Neben seiner Tätigkeit als Fachdozent für Physik und Elektrotechnikhat er verschiedene Fachartikel und Bücher zu den Themen Elektronik,Halbleitertechnik und Mikrocontroller veröffentlicht, sowie Kurse undLernpakete zu diesen Themen erstellt.

119026_arduino-buch_03.indd 2119026_arduino-buch_03.indd 2 23.10.2012 16:44:2123.10.2012 16:44:21

Page 4: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

Dr. Günter Spanner

Arduino

Schaltungsprojektefür Profis

Elektor-Verlag, Aachen

119026_arduino-buch_03.indd 3119026_arduino-buch_03.indd 3 23.10.2012 16:44:2123.10.2012 16:44:21

Page 5: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

© 2012: Elektor Verlag GmbH, Aachen. 1. Auflage 2012Alle Rechte vorbehalten.

Die in diesem Buch veröffentlichten Beiträge, insbesondere alle Aufsätze und Artikel sowie alleEntwürfe, Pläne, Zeichnungen und Illustrationen sind urheberrechtlich geschützt. Ihre auch aus-zugsweise Vervielfältigung und Verbreitung ist grundsätzlich nur mit vorheriger schriftlicher Zu-stimmung des Herausgebers gestattet.

Die Informationen im vorliegenden Buch werden ohne Rücksicht auf einen eventuellen Patent-schutz veröffentlicht. Die in diesem Buch erwähnten Soft- und Hardwarebezeichnungen könnenauch dann eingetragene Warenzeichen sein, wenn darauf nicht besonders hingewiesen wird. Siegehören dem jeweiligen Warenzeicheninhaber und unterliegen gesetzlichen Bestimmungen.

Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen.Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autor können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung nochirgend eine Haftung übernehmen.

Für die Mitteilung eventueller Fehler sind Verlag und Autor dankbar.

Korrektorat: Ute Marion Poeppel, BonnUmschlaggestaltung: Etcetera, AachenSatz und Aufmachung: InterMedia – Lemke e. K., RatingenDruck: WILCO, Amersfoort (NL)

Printed in the Netherlands

ISBN 978-3-89576-257-4

Elektor-Verlag GmbH, Aachenwww.elektor.de

119026-1/D

119026_arduino-buch_03.indd 4119026_arduino-buch_03.indd 4 23.10.2012 16:44:2123.10.2012 16:44:21

Page 6: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

Inhalt1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1 Das Arduino-Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2 Aufbau und Zielgruppe des Buches. . . . . . . . . . . . . . . . . . . . . . 10

2 Aufbau und Funktion der Hardware . . . . . . . . . . . . . . . . . . . . . . 132.1 Große Auswahl: Arduino-Typen . . . . . . . . . . . . . . . . . . . . . . . . 142.2 In allen Variationen erhältlich: Shields . . . . . . . . . . . . . . . . . . . 15

2.2.1 Proto Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.2 Motor Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.3 Ethernet Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Ohne Power läuft nichts: Die Stromversorgung . . . . . . . . . . . . . 172.4 Der Controller – das Herz des Arduinos . . . . . . . . . . . . . . . . . . 182.5 Das USB-Interface – die gute Verbindung zum PC . . . . . . . . . . . 19

3 Entwicklungsumgebung und Programmiergrundlagen. . . . . . . . 213.1 Die Integrierte Entwicklungsumgebung (IDE) . . . . . . . . . . . . . . 213.2 Auch für Linux-Freunde: Die Arduino-IDE unter UBUNTU . . . . . . 273.3 Einfacher Einstieg – der Warnblinker . . . . . . . . . . . . . . . . . . . . r 283.4 Die allgemeine Struktur eines Arduino-Programms . . . . . . . . . . 293.5 Grundelemente der Programmiersprache C´ für den Arduino . . 313.6 Programm-Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.7 Arduino-spezifische Funktionen . . . . . . . . . . . . . . . . . . . . . . . 333.8 Punkt und Komma für den Controller: Syntax-Elemente. . . . . . . 343.9 Elementare Datenspeicher: Variablen . . . . . . . . . . . . . . . . . . . 343.10 Die hohe Kunst der Mathematik: Operatoren . . . . . . . . . . . . . . 363.11 Für eindeutige Aussagen: Logische Operatoren. . . . . . . . . . . . . 363.12 Unveränderliche Parameter: Konstanten . . . . . . . . . . . . . . . . . 393.13 Umgang mit größeren Datenmengen: Variablenfelder . . . . . . . . r 403.14 Programmsteuerung und Kontrollstrukturen. . . . . . . . . . . . . . . 413.15 Zeitsteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.16 Mathematische und trigonometrische Funktionen . . . . . . . . . . . 443.17 Zufallszahlen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.18 Erweiterte Möglichkeiten: Einfügen von Bibliotheken . . . . . . . . . 45

4 Elektronische Bauelemente und Low Cost „Freeduinos“ . . . . . . 474.1 Breadboards – Einfach und effektiv ohne Löten . . . . . . . . . . . . 474.2 Lochraster – Dauerhafte Aufbauten ohne Chemie . . . . . . . . . . . 484.3 Low Cost „Freeduinos“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.4 Arduino und seine Helfer: Die wichtigsten elektronischen Bauelemente . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.4.1 USB-Kabel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.4.2 Widerstände . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.4.3 Kondensatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4.4 Potentiometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r 524.4.5 LEDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

119026_arduino-buch_03.indd 5119026_arduino-buch_03.indd 5 23.10.2012 16:44:2123.10.2012 16:44:21

Page 7: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

6

INHALT

4.4.6 RGB-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4.7 Drucktaster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4.8 Siliziumdioden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4.9 Transistoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5 „Hello World“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.1 Lauflichter in allen Varianten . . . . . . . . . . . . . . . . . . . . . . . . . 555.2 Es geht auch heller: Ansteuerung von Power-LEDs . . . . . . . . . . 575.3. POVino: Persistence of Vision-Display . . . . . . . . . . . . . . . . . . . 58

6 Displays und Anzeigetechniken. . . . . . . . . . . . . . . . . . . . . . . . . . 616.1 Bargraph-Anzeigen – die Klassiker für Meßanwendungen . . . . . 616.2 Einfach und preisgünstig: Sieben-Segmentdisplays . . . . . . . . . 626.3 4-stellige Siebensegment-Displays: Basis für Messgeräte und Uhren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.4 LED-Matrix – Minimonitor für Zeichen und Graphik . . . . . . . . . . 696.5 Das Dot-Matrix-Display als zweistellige Digitalanzeige . . . . . . . . 746.6 Der Mikrocontroller lernt schreiben: Alphanumerisches Display . . 766.7 LCD-Anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7 Messtechnik und Sensoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857.1 Flexibel und schnell ablesbar: LED-Voltmeter . . . . . . . . . . . . . .r 857.2 Volt- und Amperemeter – präzise Messgeräte für das Hobbylabor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r 877.3 Kiloohmmeter für individuelle Anwendungen. . . . . . . . . . . . . . . 927.4 Nie mehr Ärger mit defekten Elkos – Kondensator-Tester „Elkodino“. . . . . . . . . . . . . . . . . . . . . . . . . 947.5 picoFaradino: Messung kleiner Kapazitäten. . . . . . . . . . . . . . . . 967.6 Transistortester „Transistino“ . . . . . . . . . . . . . . . . . . . . . . . . . 987.7 Ein einfaches NTC-Thermometer . . . . . . . . . . . . . . . . . . . . . . . r 1007.8 Heiß oder kalt? Temperaturmessung mit dem AD22100 . . . . . . . 1037.9 Fernthermometer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r 1047.10 Thermodino – präzises Thermometer mit Siebensegment-Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057.11 Wann fühlt man sich am wohlsten? – Hygrometer . . . . . . . . . . 1107.12 Akkudino – das Kapazitätsmessgerät für Akkus . . . . . . . . . . . . 1127.13 Optosensoren – nicht nur beim Photographieren wichtig! . . . . . . 1167.14 Reflexlicht für Geo-Caching . . . . . . . . . . . . . . . . . . . . . . . . . . 1187.15 Für Profi-Photographen: Digital-Luxmeter . . . . . . . . . . . . . . . . r 1207.16 „Radarstation“ für zu Hause: Distanzmessung mit Ultraschall . . . 122

8 Timer, Uhren und Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298.1 Für Spaß am Morgen und am Abend: Formel-I-Zahnputzuhr. . . . 1298.2 Präzise und praktisch: Digitaluhr mit LED-Anzeige. . . . . . . . . . . 1368.3 Wer ist schneller? Ein Reaktionszeitmesser. . . . . . . . . . . . . . . . 1408.4 Timerino – ein Universal-Timer mit Siebensegment-Display . . . . 1438.5 Steckdosen-Timer erleichtern das tägliche Leben . . . . . . . . . . . 1468.6 Mit atomarer Präzision: DCF77-Funkuhr . . . . . . . . . . . . . . . . . . 147

119026_arduino-buch_03.indd 6119026_arduino-buch_03.indd 6 23.10.2012 16:44:2123.10.2012 16:44:21

Page 8: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

7

INHALT

8.7 Ausgabe von Zeit und Datum auf die serielle Schnittstelle . . . . . 1508.8 DCF77-Funkuhr mit LC-Display als Stand-alone-Gerät . . . . . . . . 152

9 Schnittstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.1 Universell und einfach: Die I2C-Schnittstelle. . . . . . . . . . . . . . . 1559.2 Wenn die Pins mal knapp werden: Port-Erweiterung . . . . . . . . . 1589.3 Mega-Lauflicht mit 24 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . 1589.4 Hex-Debugger mit 2-stelliger Siebensegment-Anzeige . . . . . . . . 1629.5 LC-Display-Steuerung via I2C und PCF8574 . . . . . . . . . . . . . . . 1659.6 Diesmal voll digital: LM75-Temperaturmessung. . . . . . . . . . . . . 1689.7 Stromsparend: Realtime-Clock mit Datumsanzeige . . . . . . . . . . 1719.8 Drahtlos – praktisch – gut: Die IR-Schnittstelle. . . . . . . . . . . . . 1759.9 Lampino, die IR gesteuerte RGB-Lampe . . . . . . . . . . . . . . . . . . 1799.10 Luxus pur – Digitaluhr mit IR-Fernbedienung . . . . . . . . . . . . . . 1829.11 Optimal für Mikrocontroller: die PS/2-Schnittstelle . . . . . . . . . . 1859.12 Tastatur und Maus als universelle Eingabemedien . . . . . . . . . . . 1869.13 Ein kompletter Mikrocomputer – mit LCD-Monitor und Tastatur . r 188

10 Sound und Synthesizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19310.1 Schallwandler und Verstärker . . . . . . . . . . . . . . . . . . . . . . . . .r 19310.2 Einfache Töne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19510.3 Schnelle PWM macht’s möglich: nicht nur Töne sondern Klänge . 19710.4 Theremin – Die berührungslose Sound-Maschine . . . . . . . . . . . 20410.5 Audio-Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

10.5.1 VCO: Durchstimmbare Sinusquelle. . . . . . . . . . . . . . . . 20710.5.2 Digitales Signal-Processing . . . . . . . . . . . . . . . . . . . . . 209

10.6 Klangwolken: Digitaler Synthesizer . . . . . . . . . . . . . . . . . . . . . 213

11 Digitale Regelungstechnik. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21511.1 Reglertypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

11.1.1 Der P-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . r 21711.1.2 Der I-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r 21711.1.3 Der PI-Regler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21711.1.4 Der PD-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r 21811.1.5 Der PID-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . .r 218

11.2 Optimale Arbeitsplatzbeleuchtung: Digitaler Helligkeitsregler . . . 21811.3 Klassiker der Regelungstechnik: Der Gravitationskompensator . . 222

12 Physical Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22912.1 Servos steuern die Welt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23012.2 Photino, der 2-D-Kamera Schwenker . . . . . . . . . . . . . . . . . . . . 23312.3 Kranino: Kransteuerung mit Maus . . . . . . . . . . . . . . . . . . . . . . 236

13 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24113.1 Arduino & Processing – ein erfolgreiches Duo . . . . . . . . . . . . . 24213.2 Interaktion mit Processing – Datenlogger, Trendkurven und Co. . . 243

14 Modulares Großprojekt „Wohnzimmerbox“ . . . . . . . . . . . . . . . . 25114.1 Immer nützlich: die Uhr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

119026_arduino-buch_03.indd 7119026_arduino-buch_03.indd 7 23.10.2012 16:44:2223.10.2012 16:44:22

Page 9: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

14.2 Bedienung aus der Ferne: IR-Schnittstelle. . . . . . . . . . . . . . . . 25314.3 230-V-Steuerung für HiFi, TV oder Lampen etc. . . . . . . . . . . . . 25414.4 Timer und Sensoren als Basis für die Heimautomatisierung. . . . 25414.5 Thermometer für Innen und Außen. . . . . . . . . . . . . . . . . . . . . 25414.6 Nie mehr zu trockene Luft: Hygrometer . . . . . . . . . . . . . . . . . r 25514.7 Die Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25514.8 Das Beispielprogramm zur Wohnzimmerbox . . . . . . . . . . . . . . 256

Anhang. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Bezugsquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Programme, Informationen und Updates . . . . . . . . . . . . . . . . . . . . . 261

Verzeichnis der Beispielsketche und -programme . . . . . . . . . . . . . . . 262

Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

119026_arduino-buch_03.indd 8119026_arduino-buch_03.indd 8 23.10.2012 16:44:2223.10.2012 16:44:22

Page 10: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

9

1 Einführung

Für den großen Erfolg des Arduinos lassen sich zwei Ursachen finden. Zum einen wirddurch das fertige Prozessorboard der Einstieg in die Hardware enorm erleichtert. Dietypischen Anfängerprobleme wie Quarze, die aufgrund falscher Lastkapazitäten nichtanschwingen, falsche Spannungsversorgungen oder Probleme mit den Einstellungen der Konfigurationsparameter („Fuse-Bits“) sind beim Arduino unbekannt. Das Board wird einfach mit der USB-Schnittstelle des PCs oder Laptops verbunden – und los geht’s.Auch Jugendliche oder Angehörige der älteren Generationen, die noch niemals mit Elek-tronik in Berührung gekommen sind, haben hier keinerlei Probleme.

Der zweite Erfolgsfaktor, ist die zugehörige Programmieroberfläche. Diese wird zum einen kostenlos als Open-Source-Version zur Verfügung gestellt. Darüber hinaus ist sieohne Installation sofort einsetzbar. Einfache Einstiegsbeispiele sorgen für den schnellenErfolg. Eine komplizierte Auswahl von Parametern, wie etwa Prozessorversion oder Schnittstelleneinstellungen sind nicht erforderlich. Die ersten Beispielprogramme kön-nen innerhalb weniger Minuten auf den Arduino geladen und getestet werden.

Weiterhin wird der Arduino-Anwender durch eine Fülle von Software-Bibliotheken un-terstützt. Die praktisch täglich wachsende Flut von „Libraries“ stellt dann aber oft denEinsteiger vor erste Probleme. Nach einfachen Einführungsbeispielen ist der weitereWeg nicht mehr klar erkennbar. Hier fehlen oft detaillierte Beschreibungen und Erläu-terungen. Die Vielzahl, der im Internet mehr oder weniger gut beschriebenen Projekte,führt eher zur Verwirrung. Ein klar erkennbarer roter Faden fehlt, da die Anwendungennatürlich von einer Vielzahl verschiedener Personen erstellt wurden, die alle jeweils einspezielles Ziel vor Augen hatten.

Hier setzt das vorliegende Buch an. Systematisch werden Projekte vorgestellt, die inverschiedene Themengebiete einführen. Dabei wird neben den erforderlichen theoreti-schen Grundlagen stets größter Wert auf eine praxisorientierte Ausrichtung gelegt. Sowerden wichtige Techniken wie AD-Wandlung, Timer oder Interrupts stets in Praxispro-jekte eingebettet. Es entstehen Lauflichteffekte, voll funktionsfähige Voltmeter, präziseDigitalthermometer, Uhren in allen Variationen, Reaktionszeitmesser oder mausgesteu-erte Roboterarme und ganz nebenbei hat der Leser die „Basics“ der zugehörigen Cont-rollertechnik verstanden und im wahrsten Sinne des Wortes begriffen.

Die vorgestellten Praxisprojekte bleiben dabei aber nicht im Status eines „Laborproto-typs“ stehen. Durch entsprechende Tipps und Hinweise entstehen vielmehr praxistaug-

119026_arduino-buch_03.indd 9119026_arduino-buch_03.indd 9 23.10.2012 16:44:2223.10.2012 16:44:22

Page 11: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

10

1 EINFÜHRUNG

liche Geräte, die in Haushalt, Hobby und Beruf eingesetzt werden können. Die Projektelassen sich dabei stets kostengünstig mit gängigen Komponenten realisieren. Auf denEinsatz teurer und schwer zu beschaffender Spezialteile wurde vollständig verzichtet.

Im Abschlusskapitel wird schließlich eine Arduino-basierte „Wohnzimmerbox“ vorgestellt.Diese ist modular aufgebaut und kann an die individuellen Bedürfnisse angepasst wer-den. Hier kann das erlernte Wissen noch einmal praktisch umgesetzt werden und esentsteht ein alltagstaugliches, aber dennoch nicht alltägliches Gerät.

1.1 Das Arduino-Projekt

Die Idee „Arduino“ wurde am Institut für Interaktives Design in Ivrea, Italien im Jahre2005 geboren. Die Suche nach einem kostengünstigen Mikrocontrollersystem für Design-Studenten führte zu einer handlichen Leiterplatte mit allen erforderlichen elektronischenBauelementen. Das Hauptziel war die Entwicklung eines preisgünstigen Controllerboardsdas auch von Kunst- und Designstudenten ohne Vorkenntnisse in den Bereichen Elek-tronik und Programmierung schnell und unkompliziert eingesetzt werden kann.

Die erste Version des Arduinos bestand aus einem Hardware-Bausatz, der einfach undschnell zusammen gelötet werden konnte. Dieser erste Bausatz war innerhalb kürzester Zeit ausverkauft und rasch folgten weitere Auflagen. Designer und Künstler aus ande-ren Regionen nahmen die Idee auf und das „Arduino-Prinzip“ verbreitete sich zunächstin Italien, dann in Europa und schließlich weltweit

Schnell wuchs das Interesse auch bei anderen Anwendergruppen, außerhalb von Kunst-akademien und Designerschulen. Das Konzept einer einfachen und kostengünstigenHardware-Plattform zusammen mit einer frei verfügbaren, leicht zu erlernenden Pro-grammiersprache, wurde bald auch von Hobbyanwendern honoriert. Schließlich erkann-ten auch Schulen und Hochschulen im wissenschaftlichen und technischen Bereich dasenorme Potential der Arduino-Idee. Es entstanden neue Hardware-Versionen und so-genannte Shields, also aufsteckbare Erweiterungsplatinen und die Einsatzgebiete desArduinos waren nur noch durch die Phantasie des Anwenders begrenzt.

Inzwischen haben die Verkaufszahlen aller Arduino-Versionen zusammen die100.000-Stück-Grenze bei weitem überschritten. Wenn man auch noch Eigen- und Nach-bauten in Betracht zieht, so dürfte mittlerweile sogar die 1-Millionen-Grenze übertroffensein. Es ist somit sicherlich nicht übertrieben, wenn behauptet wird, dass der Arduinodas erfolgreichste Mikrocontroller-Board aller Zeiten ist.

1.2 Aufbau und Zielgruppe des Buches

Das vorliegende Buch wendet sich an alle, die bereits einige grundlegende Erfahrungenauf dem Gebiet der Elektronik gesammelt haben. Allerdings sind bereits klassischeSchulkenntnisse vom Stromkreis, Ohmschen Gesetz etc. vollkommen ausreichend. Zu-dem werden in Kapitel 4 die prinzipiellen Funktionen und Eigenschaften der wichtigstenBauelemente erläutert. Im weiteren Verlauf werden aber auch sehr anspruchsvolle Pro-

119026_arduino-buch_03.indd 10119026_arduino-buch_03.indd 10 23.10.2012 16:44:2223.10.2012 16:44:22

Page 12: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

AUFBAU UND ZIELGRUPPE DES BUCHES 1.2

11

jekte besprochen, so dass dort durchaus auch Studenten oder Dozenten technischer Fächer neue Herausforderungen finden werden.

Die Projekte sind einzelnen Themengruppen zugeordnet. Allerdings wurde darauf ge-achtet, dass die technisch weniger anspruchsvollen Themen am Anfang des Buches be-handelt werden. Für Einsteiger ist es also sicher sinnvoll, die Kapitel des Buches der Reihe nach durchzugehen, auch wenn nicht jedes einzelne Projekt aufgebaut wird.

119026_arduino-buch_03.indd 11119026_arduino-buch_03.indd 11 23.10.2012 16:44:2223.10.2012 16:44:22

Page 13: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

13

2 Aufbau und Funktion der Hardware

Das Arduino-Board war in seiner ursprünglichen Form mit einem ATmega8-Mikrocon-troller und einem einfachen RS232-Pegelumsetzer bestückt. Damit konnte es direkt über die serielle Schnittstelle eines PCs oder Laptops programmiert werden. Im Laufe der Zeit haben sich aus diesem Urtyp eine Vielzahl von Updates und Varianten entwickelt.Da immer weniger PCs mit seriellen Schnittstellen ausgestattet wurden und Laptopsdieses sogenannte „Legacy“-Interface so gut wie gar nicht mehr aufwiesen, war einer der ersten Fortschritte in der Arduino-Entwicklung der Einsatz eines USB zu RS232-Konverters. Hierfür wurde zunächst ein spezieller FTDI-Chip eingesetzt. Im Arduino„UNO“ wurde dieser verhältnismäßig teure Chip durch einen ATmega8U2 ersetzt. Dieser kann mittels einer speziellen Firmware ebenfalls USB-Signale in das RS232-Protokollumsetzen.

Bild 2.1:Arduino Uno

Auch der ursprünglich als Hautprozessor eingesetzte ATmega8 wurde durch die leis-tungsfähigeren Typen ATmega168 und ATmega328 ersetzt. Parallel zu den Hauptent-wicklungslinien sind im Laufe der Jahre viele mehr oder weniger kompatible Ableger entstanden. So gibt es etwa sogenannte „Rugged“ Versionen, bei welchen alle Ports

119026_arduino-buch_03.indd 13119026_arduino-buch_03.indd 13 23.10.2012 16:44:2223.10.2012 16:44:22

Page 14: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

21

3Entwicklungsumgebung und Programmiergrundlagen

Das Arduino-Board wird über eine spezielle, anfängerfreundliche Programmierober fläche(IDE = Integrated Design Environment = Integrierte Entwicklungsoberfläche) program-miert. Der große Vorteil im Vergleich zu einer klassischen „Tool-Chain“ liegt darin, dasssie sehr intuitiv bedient werden kann. Neben dem Arduino-Board selbst, ist diese spe-zielle Entwicklungsumgebung sicher einer der Hauptfaktoren für den großen Erfolg desArduino-Konzeptes.

3.1 Die Integrierte Entwicklungsumgebung (IDE)

Die IDE erfordert keine langwierige Installation. Die ersten Programme können direktnach dem Start der IDE auf den Mikrocontroller geladen werden.

Die aktuelle Version der IDE kann kostenlos unter

http://arduino.cc/en/Main/Software

heruntergeladen werden.

Es stehen verschiedene Versionen für die gebräuchlichsten Betriebssysteme (Windows,MAC OS und Linux) zur Verfügung.

Die vollständigen Programmpakete liegen als komprimierte ZIP-Archive vor und könnenin ein beliebiges Verzeichnis extrahiert werden.

Hinweis:Die aktuelle Version der IDE ist Arduino 1.x. Die Vorgängerversionen wurden allemit vierstelligen Ziffern (0001 bis 0023) bezeichnet. Unglücklicherweise wurdenbeim Übergang zur Version 1.0 verschiedene Änderungen implementiert, welchedie Kompatibilität mit älteren Sketchen und Bibliotheken deutlich einschränken.

119026_arduino-buch_03.indd 21119026_arduino-buch_03.indd 21 23.10.2012 16:44:2923.10.2012 16:44:29

Page 15: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

47

4Elektronische Bauelemente undLow Cost „Freeduinos“

Vom Standpunkt der Betriebssicherheit ist eine gut gelötete Leiterplatte kaum zu über-treffen. Desh alb werden so gut wie alle elektronischen Schaltungen im industriellenBereich als bestückte Platinen ausgeliefert. Auch das Arduino-Board selbst besteht auseiner solchen industriell gefertigten Leiterplatte.

Im Umfeld der Schaltungsentwicklung haben solche Leiterplatten aber einen gravieren-den Nachteil: Wenn sie einmal fertig entwickelt sind, kann die Schaltung praktisch nichtmehr verändert werden. Selbst kleine Anpassungen oder Erweiterungen erfordern einekomplette Überarbeitung (ein sogenanntes „Re-Design“). Für Laborzwecke gibt es des-halb Lochrasterplatinen. Hier werden die Bauteile auf ein Standardraster aus Lötpunktenoder Leiterbahnen gesetzt und gegebenenfalls zusätzlich mit Schaltdraht verbunden.Im nachfolgenden Kapitel sind hierzu weitere Informationen zu finden.

4.1 Breadboards – Einfach und effektiv ohne Löten

Noch einen Schritt weiter gehen die sogenannten Steckplatinen, auch unter der Bezeich-nung „Breadboards“ bekannt. Hier können Schaltungen ganz ohne Löten aufgebaut wer-den. Steckfedern aus Metall im inneren dieser Boards sorgen für elektrisch leitendeVerbindungen zwischen den elektronischen Bauelementen. In der Abbildung sind dieseVerbindungen durch schwarze Linien angedeutet.

Bild 4.1 zeigt ein solches Breadboard. Natürlich erreichen diese Steckplatinen nicht dieZuverlässigkeit von gelöteten Leiterplatten. Tro tzdem könn en sorgfältig aufgebauteBreadboard-Schaltungen über Jahre hinweg zuverlässig funktionieren. Diese Aufbau-technik ist also nicht nur auf kurzlebige Experimentieraufbauten beschränkt. Bei nor-malen Umgebungsbedingungen, d. h. nicht zu großen Temperaturschwankungen oder übermäßig hohen Luftfeuchtigkeiten, können Geräte auf Breadboard-Basis durchaus mitprofessioneller Elektronik konkurrieren. Bei anspruchsvollen Anwendungen, wie bei-spielsweise in mobilen Geräten oder im Fahrzeugeinsatz ist eine Breadboard-Schaltungnatürlich ungeeignet. Aufgrund der hier auftretenden Vibrationen kann man in diesenBereichen nicht mit einer allzu hohen Zuverlässigkeit rechnen und muss auf Lochras-terplatinen oder besser noch auf geätzte Platinen ausweichen.

119026_arduino-buch_03.indd 47119026_arduino-buch_03.indd 47 23.10.2012 16:44:4423.10.2012 16:44:44

Page 16: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

55

5 „Hello World“

Eine der einfachsten Mikrocontroller-Anwendungen ist das Schalten von LEDs. Diesesind für den Betrieb mit Mikrocontrollern bestens geeignet. Klassische Versionen benö-tigen einen Strom von ca. 20 mA. Dieser kann ohne weiteres von einem Mikrocontroller-Pin zur Verfügung gestellt werden. Sogenannte Low-Current-Typen kommen bereits mit2 mA aus. In diesem ersten größeren Projekt werden 10 LEDs angesteuert. Bild 5.1 zeigtden Aufbau der Schaltung.

Geradezu ideal sind die bereits im Abschnitt 4.4.5 angesprochenen 5-V-LEDs. Diesekönnen direkt an die Ausgänge des Arduinos geschaltet werden. Die in Bild 5.1 darge-stellten strombegrenzenden Vorwiderstände sind dann nicht erforderlich, da diese jabereits in die LED integriert sind.

5.1 Lauflichter in allen Varianten

Werden mehrere LEDs eingesetzt, dann lassen sich problemlos Lau flichteffekte z. B. für case modding oder Modelleisenbahnen realisieren.

Im Programm werden zunächst die LED-Pins als Array definiert. Die Var iable „direction“legt die Laufrichtung des Lichtpunktes fest, die Variable „LED“ enthält die Portnummer der jeweils aktuell aktivierten Leuchtdiode. Im setup werden zunächst alle beschaltetenPorts als Ausgänge definiert und auf LOW-Potential gelegt.

In der Hauptschleife wird dann die erste LED mit

▌ digitalWrite(ledPin[LED], HIGH);

eingeschaltet. Nach einer kurzen Wartepause von 50 ms wird genau diese LED wieder ausgeschaltet und anschließend die Variable LED um den Wert „direction“ erhöht. Wennalso direction = 1 gilt, dann wandert der Lichtpunkt in Richtung höhere Portnummern,also z. B. nach rechts. Für direction = -1 wandert der leuchtende Punkt in die entgegen-gesetzte Richtung.

Durch zwei if-Abfragen wird das Ende der Lichterkette bei LED Nr. 0 der LED Nr. 9 er-kannt und die Laufrichtung umgedreht.

119026_arduino-buch_03.indd 55119026_arduino-buch_03.indd 55 23.10.2012 16:44:5123.10.2012 16:44:51

Page 17: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

61

6 Displays und Anzeigetechniken

Displays sind die wichtigsten Schnittstellen zwischen dem Menschen und der Maschine.In den letzten Jahren hat es gerade in diesem Bereich enorme Fortschritte gegeben.Bis Ende der 90er-Jahre dominierten im Computer-Bereich Röhrenmonitore mit oftmalsflimmernden Bildern, geringer Auflösung und mit enormem Energieverbrauch. Mit demAufkommen der Flachbildschirme hat sich die Situation grundlegend verbessert. Nunstehen Monitore mit Bildschirmdiagonalen von über einem Meter und in voller HD-Auf-lösung zur Verfügung.

Aber auch den Bereich der mobilen Geräte hat die Displaytechnik revolutioniert. Ohnebrillante, ultraflache und robuste Displays wären Geräte wie IPod, IPad, Digitalkamerasoder Smartphones aller Varianten undenkbar.

Prinzipiell sind natürlich auch hochauflösende Farbdisplays mit einem Mikrocontroller ansteuerbar. Allerdings ist ein Arduino hier doch etwas überfordert. Dennoch stehenauch für kleinere Controller verschiedene attraktive Displays zur Verfügung. Angefan-gen von einfachen Bargraph-Anzeigen, über Siebensegment-Displays, LED-Punktmatri-zen bis hin zu LC-Textanzeigen, lässt die Technik hier kaum Wünsche offen. Natürlichsteht im Mikrocontrollerbereich die Anzeige und Visualisierung von Messwerten undDaten im Vordergrund, hochauflösende Graphiken und schnelle Videospiele bleiben vor-erst noch leistungsstärkeren Prozessoren vorbehalten.

6.1 Bargraph-Anzeigen – die Klassiker für Meßanwendungen

Eine einfache Display-Version wurde schon beim POV-Projekt eingesetzt: die LED-Bar-graph-Anzei ge. Diese besteht aus Einzeldioden in rechteckiger Bauform, die in einemgemeinsamen Gehäuse aneinander gereiht werden. Neben POV-Applikationen lassensich damit auch sehr einfach optische Effekte, wie variable Leuchtbänder oder Lauflich-ter erzeugen.

Achten Sie beim Einsatz von LED-Bargraph-Anzeigen immer auf geeignete Vorwider-stände. Wird immer nur jeweils ein einzelnes LED-Element aktiviert, so genügt ein ein-ziger Widerstand in der für alle Elemente gemeinsamen Zuleitung. Wenn mehrere LEDsgleichzeitig leuchten sollen, hat die Verwendung eines gemeinsamen Vorwiderstandesden Nachteil, dass die einzelnen Segmente immer dunkler werden, je mehr LEDs gleich-zeitig leuchten. Dieses Verhalten ergibt sich, da mit steigendem Strom der Spannungs-

119026_arduino-buch_03.indd 61119026_arduino-buch_03.indd 61 23.10.2012 16:45:0223.10.2012 16:45:02

Page 18: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

85

7 Me sstechnik und Sensoren

Was die Sinne für den Menschen sind, sind Sensoren für die Technik. Nahezu alle mensch-lichen und tierischen Sinne können mit technischen Mitteln nachgebildet werden. Ka-meras, oder in einfachen Fällen Photodioden, können als technische Augen betrachtetwerden. Mikrophone oder andere Schallwandler erfassen Geräusche mit ähnlicher Emp-findlichkeit wie menschliche Ohren. Aber auch Temperatur- und Tastsinn können durchSensoren ersetzt werden. Daneben weist die Elektronik aber auch noch weitergehendeMöglichkeiten auf. So sind Größen, für die der Mensch kein direktes Sinnesorgan besitzt,wie etwa elektrische Ströme und Spannungen oder aber auch radioaktive Strahlung,technisch leicht erfassbar.

7.1 Flexibel und schnell ablesbar: LED-Voltmeter

Der Arduino erlaubt es, mit sehr geringem Aufwand, an zusätzlichen Bauelementen einrecht praxistaugliches Spannungsmessgerät aufzubauen. Mit lediglich ein paar 5-V-LEDskann ein sogenanntes Bargraph-Voltmeter realisiert werden. Bekannt ist diese Anzei-rgeart von den Pegelmessinstrumenten an hochwertigen HiFi-Anlagen. Aber auch in der Automobiltechnik, etwa bei digitalen Tachometern, wird diese Art der Messwertanzeigehäufig eingesetzt, da sie ein schnelles Erfassen einer sich rasch ändernden Größe er-möglicht. So kann die Länge eines Leuchtbalkens deutlich schneller erkannt werden alseine konventionelle Ziffernanzeige, insbesondere auch dann, wenn die Ziffern infolgesich schnell ändernder Werte rasch durchlaufen.

Die Schaltung zu einer Bargraph-Anzeige zeigt Bild 7.1. Beachten Sie, dass in dieser Variante jedes LED-Element seinen eigenen Vorwiderstand (220 Ω) benötigt. Für Test-zwecke kann man auch nur einen einzelnen Vorwiderstand verwenden, so wie bei der POV-Schaltung. Man erkennt dann sehr schön, wie bei zunehmender Anzahl aktiver Ele-mente, die einzelnen LEDs immer dunkler werden.

Im Programm werden zunächst die verwendeten Arduino-Ports in einem Array zusam-mengefasst. Auf diese Weise können alle Ports sehr einfach innerhalb einer for-Schleifeangesprochen werden. Im Setup werden die Ports genau auf diese Weise alle als Aus-gänge definiert.

In der Variablen „value“ wird der ADC-Wert erfasst. Der Wert in „delta“ definiert dieSchrittweite der Anzeige. Für delta = 50 ergibt sich eine Spannung von

Udelta = (delta/1023)*Uref = (50 /1023)*5 V = 0,24f

119026_arduino-buch_03.indd 85119026_arduino-buch_03.indd 85 23.10.2012 16:45:2723.10.2012 16:45:27

Page 19: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

129

8 Timer, Uhren und Interrupts

Da auf dem Arduino-Board bereits ein Quarz integriert ist, eignet es sich auch besten s zum Bau von präzisen Uhren und Timern. Mit einer Quarzzeitbasis können Präzisionenim ppm-Bereich (parts per million) erreicht werden. Das bedeutet, dass Frequenz-abweichungen nicht größer als 1:1.000.000 sind. In Zeiten umgerechnet heißt das, dasseine Uhr innerhalb eines Monats nur um wenige Sekunden vor oder nach geht.

Noch höhere Präzision ist mit einem DCF-77-Funkmodul erzielbar. Dieses empfängt dieZeitsignale eines Senders bei Frankfurt. Damit wird die maximale Zeitabweichung auf weniger als eine Sekunde in 10.000 Jahren reduziert. Das sollte für alltägliche Erforder-nisse mehr als ausreichend sein.

Aber nicht immer geht es nur um die maximal erreichbare Präzision. Vielmehr kann der Arduino auch dazu benutzt werden, um kleine nützliche oder auch witzige Helfer für denAlltag aufzubauen. Das Projekt im folgenden Kapitel ist ein Beispiel dafür.

8.1 Für Spaß am Morgen und am Abend: Formel-I-Zahnputzuhr

Zähneputzen ist eine alltägliche Routineaufgabe. Die in diesem Kapitel vorgestellteZahnputzuhr kann mehr Spannung in diese tägliche Aufgabe zu bringen. Besonders für rKinder kann mit solchen Gadgets die Motivation für die tägliche Mundhygiene deutlichverbessert werden.

Als Display kommt die LED-Matrix zum Einsatz. Dabei wird hier von der Tatsache Ge-brauch gemacht, dass ein Matrix-Display nicht nur Ziffern und Zahlen darstellen kann,sondern eben auch einfache Graphiken. Die nachfolgenden Abbildungen zeigen die Sym-bole zum Putzen der linken und der rechten oberen Zahnreihe. Analoge Symbole werdenfür den Unterkiefer dargestellt. Abschließend symbolisiert ein Smiley den Abschluss der Mundhygiene.

Auf der Hardwareseite wird das Matrix-Display standardmäßig (s. Kapitel 6.4) an denArduino angeschlossen. Zusätzlich kommt noch ein piezoelektrischer Schallwandler zwi-schen Pin 13 und GND zum Einsatz. Damit wird ein akustisches Signal erzeugt, wennder nächste Zahnquadrant an der Reihe ist.

119026_arduino-buch_03.indd 129119026_arduino-buch_03.indd 129 23.10.2012 16:46:1223.10.2012 16:46:12

Page 20: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

155

9 Schnittstellen

In digitalen Geräten müssen häufig Daten zwischen verschiedenen Bausteinen ausge-tauscht werden. Hierfür wurden verschiedene Bus-Systeme entwickelt. Jedes dieser Systeme weist spezifische Vor- und Nachteile auf. Einige Busse sind besonders robustgegenüber Störeinstrahlungen, andere erlauben das Überbrücken größerer Distanzen.Im Bereich der Mikrocontrolertechnik hat sich ein Bussystem besonders durchgesetzt:Der sogenannte I2C-Bus (oft als „I quadrat C-Bus“ ausgeprochen).

9.1 Universell und einfach: Die I2C-Schnittstelle

Der I2C-Bus zeichnet sich dadurch aus, dass er mit geringstem Hardware-Aufwand aus-kommt. Die Bezeichnung „I2C“ steht dabei für IIC oder Inter-IC bzw. Inter-Integrated-Circuit-Bus. Entwickelt und spezifiziert wurde der Bus von der Firma Philips. Er ist des-halb, insbesondere auch in vielen Geräten der Unterhaltungselektronik, zu finden.

Der I2C-Bus ermöglicht eine synchrone serielle Zweidrahtverbindung zwischen einemMaster und mehreren Slaves. Auf einer Leitung (SCL = Serial Clock) wird der Takt ge-sendet, auf der zweiten Leitung (SDA = Serial Data) werden die Daten übertragen. Da-ten können sowohl vom Controller (Master) zum Slave, als auch vom Slave zum Master gesendet werden. Die Takterzeugung wird dagegen immer vom Master übernommen.

Prinzipiell ist es auch möglich, an einem Bus mehrere Master zu betreiben. Man sprichtdann vom sogenannten Multi-Master-Bus. In diesem Fall muss sichergestellt werden,dass es nicht zu Buskollisionen kommt, d. h. ein Master darf den Bus nur dann überneh-men, wenn der Bus gerade nicht von einem anderen Master belegt ist. Diese Betriebs-art ist jedoch vergleichsweise selten anzutreffen und wird hier nicht näher beschrieben.

Der I2C-Bus verfügt über vier Geschwindigkeitsstufen:

• 100 kHz Takt: Standard-Mode• 400 kHz-Takt: Fast-Mode• 1,0 MHz-Takt: Fast-Mode Plus• 3,4 MHz-Takt: High Speed Mode

Meist werden inzwischen Taktraten bis zu 1MHz unterstützt. Den prinzipiellen Aufbaueins I2C-Bussystems zeigt Bild 9.1.

119026_arduino-buch_03.indd 155119026_arduino-buch_03.indd 155 23.10.2012 16:46:3623.10.2012 16:46:36

Page 21: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

193

10Sound und Synthesizer

Neben der optischen Informationsausgabe über LEDs, LC-Displays oder Ziffernanzeigeneignen sich Mikrocontroller auch bestens zur Erzeugung von akustischen Signalen. Diebekanntesten Beispiele hierfür sind die Ausgabe kurzer Töne als Warnsignale. EinfacheAkustische Signale lassen sich mit Mikrocontrollern sehr einfach erzeugen, da Frequen-zen im Hörbereich zwischen 16 Hz und 16 kHz liegen und entsprechende Signale für Controller keine Herausforderung darstellen.

Darüber hinaus ist aber auch die Ausgabe komplexer Klangstrukturen möglich, wel-che ganz erstaunliche akustische Eindrücke liefern. Das Spektrum reicht hier vonsimplen elektronischen Orgelklängen bis hin zu ausgefeilten Synthesizern. Prinzipiellist sogar eine rudimentäre synthetische Spracherzeugung mit der Rechenleistung desArduinos möglich. Allerdings sind die Ergebnisse hier naturgemäß noch nicht ganzzufriedenstellend. Man kann aber davon ausgehen, dass sich hier in Zukunft noch einiges tun wird.

10.1 Schallwandler und Verstärker

Die einfachste Möglichkeit, die Signale eines Mikrocontrollers hörbar zu machen, bestehtim direkten Anschluss eines piezoelektrischen Schallwandlers an einen Prozessor-Pin.Allerdings liefert ein Piezo zum einen nur eine relativ geringe Lautstärke, zum anderenist die erzielbare Klangqualität sehr bescheiden. Piezos werden daher meist nur zur Widergabe sehr einfacher Signaltöne eingesetzt.

Eine deutlich bessere Klangqualität lässt sich mit einem sogenannten dynamischen Laut-sprecher erzielen. Dieser weist jedoch typischerweise eine Impedanz von nur wenigenOhm auf. Er kann daher nicht direkt an einen Prozessor-Pin angeschlossen werden, dader Pin sonst überlastet werden könnte. Hier ist also ein Verstärker erforderlich. Mit demrLM386 steht ein für diese Anwendung hervorragend geeigneter Baustein zur Verfügung.Für den Aufbau eines vollständigen Verstärkers sind nur wenige externe Bausteine er-forderlich. Das zugehörige Schaltbild ist in Bild 10.1 dargestellt.

Neben dem eigentlichen Verstärker kommt noch ein Audio-Filter zum Einsatz. Der 2,2-μF-Kondensator sorgt einerseits für eine gleichspannungsmässige Entkopplung des Ver-stärkers und andererseits für eine gewisse Hochpasswirkung. Der 1μF-Kondensator dagegen hat einen Tiefpasseffekt. Dieser ist insbesondere dann erwünscht, wenn

119026_arduino-buch_03.indd 193119026_arduino-buch_03.indd 193 23.10.2012 16:47:1323.10.2012 16:47:13

Page 22: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

215

11 Digitale Regelungstechnik

Die Grundprinzipien der Regelung sind nicht nur in der Technik weit verbreitet. Sie sindauch in praktisch allen Bereichen der belebten und der unbelebten Natur zu finden. OhneRegelungen wäre Leben praktisch unmöglich. So müssen in vielen biologischen Prozes-sen ganz bestimmte Bedingungen und Werte in engen Toleranzbereichen eingehaltenwerden. Einer der bekanntesten Regelkreise in diesem Bereich ist die Konstanthaltungder Körpertemperatur.

Ein weiterer sehr wichtiger Regelkreis sorgt für einen weitgehend konstanten Zucker-spiegel im Blut. Biologische Glucosesensoren erfassen die Blutzuckerkonzentration unddie Bauchspeicheldrüse schüttet Insulin aus, sobald sich der Blutzuckerspiegel über denNormalwert erhöht. Das Insulin sorgt für eine erhöhte Aufnahme von Glucose durch dieKörperzellen und der Zuckerspiegel wird wieder reduziert. Weitere Beispiele für biolo-gische Regelkreise sind der aufrechte Gang, Blutdruck und Herzfrequenz, Pupillengrößeund Umgebungshelligkeit usw.

In der Technik wird allgemein der Fliehkraftregler von James Watt, als erster bedeuten-der Schritt hin zur Regelungstechnik, angesehen. Der Engländer regelte damit die Dreh-zahl seiner ersten Dampfmaschine. Seit dieser Zeit hat die Regelungstechnik in allenGebieten des modernen Lebens Einzug gehalten. Temperaturregler in Heizungsanlagen,Gefrier- und Kühlschränken, Belichtungsautomatismen in Fotoapparaten, ABS-und ESP-Systeme in Fahrzeugen oder die Frequenzregelung im Stromversorgungsnetz sind hier nur einige wenige Beispiele.

Umgangssprachlich wird oft nicht zwischen Regelungen und Steuerungen unterschieden.In der Technik sind diese beiden Begriffe allerdings sehr wohl zu trennen. Unter Steuernversteht man einen Prozess ohne jegliche Rückkopplung. Die Ausgangsgröße wird dabeinicht überwacht und kann sich durch Störungen von außen verändern. Beispiele hierfür sind die Helligkeitssteuerung einer Glühlampe durch einen Dimmer oder die Geschwin-digkeitssteuerung eines Motors mit einer einstellbaren Gleichspannung. Im zweiten Fallkönnen beispielsweise Lastschwankungen die Drehzahl des Motors beeinflussen, so dassdie ursprünglich gewünschte Drehzahl nicht erreicht wird.

Genau hier setzt nun die Regelungstheorie an. Soll etwa eine Drehzahl konstant gehal-ten werden, ist eine Rückkopplung erforderlich, um die steuernde Spannung anzupas-sen. Genau diese Rückkopplung kennzeichnet einen Regelkreis.

119026_arduino-buch_03.indd 215119026_arduino-buch_03.indd 215 23.10.2012 16:47:3623.10.2012 16:47:36

Page 23: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

229

12 Physical Computing

Das noch relativ junge Fachgebiet des Physical Computing beschäftigt sich mit der Er-fassung von Umweltdaten und der Steuerung und Regelung mechanischer Größen. Wäh-rend Umweltdaten elektronisch sehr leicht mit verschiedenen Sensoren erfasst undquantitativ bestimmt werden können, ist die Steuerung mechanischer Größen meist mitetwas größerem Aufwand verbunden.

Häufig wird die Bezeichnung „Physical Computing“ auch für Projekte aus dem künstle-rischen Bereich oder bei Designer-Applikationen verwendet. Auch das Gebiet der Robo-tik und der autonomen Maschinen zählt zum Physical Computing. Speziell im Umfeld desPhysical Computing wurden mit Arduino-Unterstützung bereits ganz erstaunliche Pro-jekte realisiert. Zu den bekanntesten zählen eine Laserlichtharfe, Arduino-basierteSteuerungen für Hochgeschwindigkeitsphotographie oder auf zwei Rädern balancierendeRoboterfahrzeuge.

Als Aktuatoren stehen verschiedene Systeme zur Verfügung. Eine der einfachsten Mög-lichkeiten, stellt die Ansteuerung eines Gleichstrommotors dar. Bei geringer Leistungkann dieser direkt an einen Controller-Pin angeschlossen werden. Bei höheren Motor-leistungen ist eine Transistorstufe erforderlich (s. z. B. Bild 5.2). Zusätzlich sind spezielleMaßnahmen zur Unterdrückung von Induktionsspannungen, wie z. B. Abblockkonden-satoren und Freilaufdioden notwendig. Mit Gleichstrommotoren lassen sich allerdingsnur relativ einfache Anwendungen realisieren.

Wenn höhere Präzision gefragt ist, dann empfiehlt sich der Einsatz von Schrittmotoren.Dieser Motortyp zeichnet sich dadurch aus, dass er bestimmte Positionen mit hoher Präzision anfahren kann. Allerdings sind auch für die Ansteuerung von Schrittmotoren,spezielle Treiber notwendig. Darüber hinaus können mit Schrittmotoren durch das Ab-zählen der Einzelschritte, nur Relativbewegungen gesteuert werden. Für absolute Posi-tionierungen, sind wiederum Rückkopplungsmechanismen erforderlich.

Wesentlich einfacher ist die Ansteuerung von Servomotoren. Hierbei handelt es sich umkomplette Antriebssysteme inklusive einer Motorsteuerung und eines Positionierungs-systems. Bei einfachen Servosystemen besteht das Positionierungssystem aus einemGetriebe und einem Potentiometer. Das als Spannungsteiler betriebene Potentiometer,ist über das Getriebe fest mit der Motorachse verbunden, so dass die Poti-Spannung eindirektes Maß für die genaue aktuelle Motorposition liefert. Über eine integrierte Regel-schleife, kann ein Servo somit mittels eines einfachen digitalen Steuersignals sehr prä-

119026_arduino-buch_03.indd 229119026_arduino-buch_03.indd 229 23.10.2012 16:47:5323.10.2012 16:47:53

Page 24: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

241

13Processing

Processing ist das Gegenstück zur Arduino-IDE für den PC. Oft wird sogar auch die Pro-grammiersprache für den Arduino als Processing bezeichnet. In Bild 13.1 wird die naheVerwandschaft der beiden Programme offensichtlich.

Bild 13.1:Die Processing-Oberfläche

Auch die Steuer-Icons haben die gleichen Bedeutungen w ie beim Arduino, natürlich mitdem Unterschied, dass mit dem run-Symbol das aktuelle Programm nicht zum Arduinogesendet, sondern direkt vom PC ausgeführt wird.

Das Programm kann kostenlos unter

http://processing.org/

119026_arduino-buch_03.indd 241119026_arduino-buch_03.indd 241 23.10.2012 16:48:0523.10.2012 16:48:05

Page 25: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

251

14Modulares Großprojekt„Wohnzimmerbox“

Im letzten Kapitel soll ein etwas größeres Projekt vorgestellt werden. Es handelt sichdabei um eine „Wohnzimmerbox“, d. h. ein voll praxistaugliches Gerät, das ganz nachden Wünschen seines Besitzers gestaltet werden kann und durchaus nützliche Aufgabenübernimmt.

Der modulare Aufbau der Box garantiert eine optimale Flexibilität bezüglich der Anpas-sung des Projekts an die Vorstellungen des Erbauers. Natürlich bilden auch die hier vor-geschlagenen Features nur einen kleinen Teil der denkbaren Anwendungen. Es stehtjedem frei, bei Bedarf weitere Sensoren, Displays etc. hinzuzufügen. Mit dem, durch dieLektüre dieses Buches erworbenem Wissen, sollte dies keine Probleme mehr bereiten.

Die Box erhält ein ca. 32 cm x 22 cm x 8 cm großes, formschönes Gehäuse, so dassauch die Frau im Hause keinen Einspruch gegen das Aufstellen der Eigenbauelektronikin der guten Stube erhebt. Alle Daten, welche die Box liefert, sollen auf einem LC-Displaydargestellt werden. Um für Ergänzungen und Erweiterungen auch noch genügend Spiel-raum zu haben, ist ein 4x16- oder sogar ein 4x20-Zeichen-Typ empfehlenswert.

Um eine Vielzahl von Anwendungen mit einem einzelnen Controller zu steuern, wird in-tensiv von den Möglichkeiten des I2C-Busses Gebrauch gemacht.

Bild 14.1: Außenansichtder Wohnzimmerbox

119026_arduino-buch_03.indd 251119026_arduino-buch_03.indd 251 23.10.2012 16:48:1623.10.2012 16:48:16

Page 26: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

269

STICHWORTVERZEICHNIS

2-D Kameraschwenkarm 233

AAkkus 112Analogkanäle 243Arduino 9arithmetische Operatoren 36ATmega168 18ATmega328 18Audio-Prozessing 206

BBalkengrafik 243Bandpassfilter 209Bargraph-Anzeige 61Bargraphvoltmeter 85Bibliotheken 45Breadboards 47

DDämmerungsschalter 116Datenlogger 247DCF-77 Funkmodul 129DCF77-Modul 150Digitaluhr. 136Dioden 53Displays 61Drucktaster 53

EElektrolytkondensatoren 94Elektromagnet 236Elkos 94externen Spannung 17

FFeuchtesensoren 110Fototransistor 117Fuse-Bits 9

GGeo-Caching 118Gravitationskompensator 222

HHallfedern 209Hallplatten 209Helligkeitsregler 218HEX-Debugger 162

II2C-Bus 155IDE 21Inter-Integrated-Circuit-Bus 155IR-Empfänger 175IR-Fernbedienung 182IR-Schnittstellen 175

KKalibrierung 90Konstanten 39Kranino 236

LLauflichteffekte 55LC-Displays 79Leistungs-LEDs 57Leiterplatte 47lichtempfindliche Bauelemente 116Lichtschranken 116Lochrasterplatine 48Logische Verknüpfungen 36Luxmeter 120

MMagnet 225Mikrocontroller 18Minimal-Arduino 49Mood-Lights 179Multicolor-LEDs 53

NNachhall 209Netzrelais 146Netzspannungsgeräte 146NiMH-Akkumulatoren 112NTCs 100

Stichwortverzeichnis

119026_arduino-buch_03.indd 269119026_arduino-buch_03.indd 269 23.10.2012 16:48:3223.10.2012 16:48:32

Page 27: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

270

STICHWORTVERZEICHNIS

PPCF8583 172PC-Tastaturen 185PD-Regler 226Photodioden 116Physical Computing 229Potentiometer 52POV 58Power-LED 220Processing 241PS/2-Mäuse 185PS/2-Schnittstelle 185Pulsweitenmodulation 197Punktmatrix-Anzeigen 69

QQuarz 129

RRC5 Code 175Reaktionszeit 140Regelkreis 215Regelung 215relativen Luftfeuchte 110RGB-LED 179Ringspeicher 209RTC-Baustein 171

SSchwebezustand 225Sensoren 85Shields 15Shift-Operatoren 37Sieben-Segmentanzeigen 62Steckplatinen 47Steuericons 241Steuerungen 215Stromversorgung 17Strukturen 41Synthesizer 193

TTemperatursensor 103Theremin 204Thermometer 101, 105Timer 143Transistorparameter 98

UUBUNTU 27Ultraschallkapseln 122Ultraschallmessgeräte 122Upload 25USB-Kabel 24

VVariablen 34Variablenfelder 40Variablentypen 35VCO 207Verify 25Verstärker 193

WWarnblinker 29Widerstände 50Wohnraumhygrometer 110Wohnzimmerbox 251

ZZahnputzuhr 129Zufallszahlen 44

119026_arduino-buch_03.indd 270119026_arduino-buch_03.indd 270 23.10.2012 16:48:3223.10.2012 16:48:32

Page 28: Günter Spanner Arduino s Arduino Arduino ... · Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. ... voll funktionsfähige Voltmeter, präzise Digitalthermometer,

Elektor-Verlag GmbH52072 Aachenwww.elektor.de

ISBN 978-3-89576-257-4

Günter Spanner

Für den großen Erfolg der Arduino-Plattform lassen sich zwei Ursachen fi nden. Zum Einen wird durch das fertige Prozessor-Board der Einstieg in die Hardware enorm erleichtert. Der zweite Erfolgsfaktor ist die kostenlos verfügbare Programmieroberfl äche (Open Source), die ohne In stallationsprozeduren sofort einsetzbar ist.

Einfache Einstiegsbeispiele sorgen für den schnellen Erfolg. Eine komplizierte Auswahl von Parametern, wie etwa Prozessorversion oder Schnittstelleneinstellungen sind nicht erforderlich. Erste Beispielprogramme können innerhalb weniger Minuten auf das Arduino-Board geladen und getestet werden.

Unterstützt wird der Arduino-Anwender durch eine Fülle von Software-Bibliotheken. Die täg-lich wachsende Flut von Libraries stellt den Einsteiger vor erste Probleme. Nach einfachen Ein-führungsbeispielen ist der weitere Weg nicht mehr klar erkennbar. Hier fehlen oft detaillierte Beschreibungen und die mehr oder weniger gut beschriebenen Projekte führen eher zu Verwir-rung. Ein klar erkennbarer roter Faden fehlt, da die Anwendungen natürlich von einer Vielzahl verschiedener Personen erstellt wurden, die alle jeweils ein spezielles Ziel vor Augen hatten.

Hier setzt dieses Buch an. Systematisch werden Projekte vorgestellt, die in verschiedene The-mengebiete einführen. Dabei wird neben den erforderlichen theoretischen Grundlagen stets größter Wert auf eine praxisorientierte Ausrichtung gelegt. So werden wichtige Techniken wie AD-Wandlung, Timer oder Interrupts stets in Praxisprojekte eingebettet. Es entstehen Laufl icht-effekte, ein Aufwachlicht, voll funktionsfähige Voltmeter, präzise Digitalthermometer, Uhren in allen Variationen, Reaktionszeitmesser oder mausgesteuerte Roboterarme. Und ganz nebenbei hat der Leser die Basics der zugehörigen Controllertechnik verstanden und im wahrsten Sinne des Wortes begriffen.

Arduino

Günt

er S

pann

er

ArduinoSchaltungsprojektefür Profi s

Schaltungsprojektefür Profi s

• Programmiergrundlagen• Einfache Projekte für den Einstieg• Schnittstellen- und

Hardware-Erweiterungen• Komplexe Anwendungen für

Fortgeschrittene

Günter Spanner

Ardu

ino

· Sch

altu

ngsp

roje

kte

für P

rofi s

Cover_Arduino_rz_neu-2.indd 1Cover_Arduino_rz_neu-2.indd 1 25.10.12 10:5225.10.12 10:52

jeanineo
Distance Measurement
Distance: 13,60 mm