e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge ·...

30
o’reillys basics Erik Bartmann Mit dem Arduino messen, steuern und spielen Elektronik leicht verstehen 44 Arduino-Projekte für den Selbstbau 2. Auflage Arduino Die elektronische Welt mit entdecken Stark erweiterte 2. Auflage

Transcript of e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge ·...

Page 1: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

o’r

ei

lly

s b

as

ic

sEr

ik B

artm

ann

• Mit dem Arduino messen, steuern und spielen

• Elektronik leicht verstehen

• 44 Arduino-Projekte für den Selbstbau

2. Auflage

ArduinoDie elektronische Welt mit

entdecken

Stark

erweiterte

2. Auflage

Page 2: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken
Page 3: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo

Die elektronische Welt mitArduino entdecken

Erik Bartmann

2. AUFLAGE

Page 4: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Die Informationen in diesem Buch wurden mit größter Sorgfalt erarbeitet. Dennoch könnenFehler nicht vollständig ausgeschlossen werden. Verlag, Autoren und Übersetzer übernehmenkeine juristische Verantwortung oder irgendeine Haftung für eventuell verbliebene Fehler undderen Folgen.

Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sindmöglicherweise eingetragene Warenzeichen. Der Verlag richtet sich im wesentlichen nach denSchreibweisen der Hersteller. Das Werk einschließlich aller seiner Teile ist urheberrechtlichgeschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung,Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.Kommentare und Fragen können Sie gerne an uns richten:

O’Reilly VerlagBalthasarstr. 8150670 KölnE-Mail: [email protected]

Copyright:© 2014 by O’Reilly Verlag GmbH & Co. KG1. Auflage 20112. Auflage 2014

Bibliografische Information der Deutschen NationalbibliothekDie Deutsche Nationalbibliothek verzeichnet diese Publikation in derDeutschen Nationalbibliografie; detaillierte bibliografische Datensind im Internet über http://dnb.d-nb.de abrufbar.

Lektorat: Volker Bombien, KölnFachliche Unterstützung: Holger Lübkert, CarlowKorrektorat: Dr. Dorothée Leidig, FreiburgSatz: III-satz, www.drei-satz.deUmschlaggestaltung: Michael Oreal, KölnProduktion: Karin Driesen, KölnBelichtung, Druck und buchbinderische Verarbeitung:Druckerei Himmer AG, Augsburg

ISBN 978-3-89721-115-6

Dieses Buch ist auf 100% chlorfrei gebleichtem Papier gedruckt.

Page 5: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- III

Inhalt

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII

1 Was ist ein Mikrocontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Wozu kann man ihn verwenden?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Allgemeiner Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Die Arduino-Familie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Was für Arduino-Boards gibt es? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Das jüngste Arduino-Kind: Der Yún . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Einführung Arduino Yún . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Erste Schritte mit dem Yún . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4 Das Arduino-Board ausführlich vorgestellt . . . . . . . . . . . . . . . . . . . . . . 101Die Stromversorgung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Die Kommunikationswege. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Die Programmiersprachen C/C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Wie und womit kann ich Arduino programmieren? . . . . . . . . . . . . . . . . . . . . . . . 111Die Arduino-Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Die Portkommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Befehl und Gehorsam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

5 Die Elektronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Was ist Elektronik eigentlich? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145Bauteile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Weitere interessante Bauteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Page 6: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- InhaltIV

6 Elektronische Grundschaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Widerstandsschaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Kondensatorschaltungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Transistorschaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

7 Fritzing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215Die Oberfläche der Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216Das Fritzing Creator Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Wo finde ich was? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

8 Das Zusammenfügen der Bauteile und weitere Tipps . . . . . . . . . . 239Was ist eine Platine? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Das Steckbrett (Breadboard) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241Verschiedene Kabel und ihre Tücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Die flexiblen Steckbrücken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247Die Durchgangsprüfung mit einem Multimeter . . . . . . . . . . . . . . . . . . . . . . . . . . 250

9 Nützliches Equipment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Nützliches Equipment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

10 Grundlegendes zur Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Was ist ein Programm bzw. ein Sketch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Was bedeutet Datenverarbeitung? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275Die Struktur eines Arduino-Sketches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292Wie lange läuft ein Sketch auf dem Board? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

11 Die Programmierung des Arduino-Boards . . . . . . . . . . . . . . . . . . . . . . 297Die digitalen Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297Die analogen Ports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Die serielle Schnittstelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

12 Elektronikprojekte mit dem Arduino-Board . . . . . . . . . . . . . . . . . . . . . 30712-1: Der erste Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30912-2: Einen Sensor abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32112-3: Blinken mit Intervallsteuerung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33912-4: Der störrische Taster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35112-5: Ein Lauflicht. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36312-6: Porterweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37712-7: Porterweiterung mal 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39712-8: Die State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

Page 7: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Inhalt ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- V

12-9: Der elektronische Würfel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43512-10: Der elektronische Würfel (und wie erstelle ich eine Bibliothek?) . . . . . . . . 45912-11: Das Mini-Roulette. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48312-12: Lichtsensoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49712-13: Der Richtungsdetektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51112-14: Die Ansteuerung eines Servos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52112-15: Das Lichtradar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53312-16: Das Tisch-Sonar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54312-17: Die Siebensegmentanzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56712-18: Die Siebensegmentanzeige (mir gehen die Pins aus). . . . . . . . . . . . . . . . . . 58312-19: Der Reaktionstester. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59512-20: Das KeyPad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61112-21: Das KeyPad (diesmal ganz anders) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62712-22: Eine Alphanumerische Anzeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64112-23: Kommunikation über I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66112-24: Der Schrittmotor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69512-25: Der ArduBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70912-26: Die Temperatur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72312-27: Der Sound und mehr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74112-28: Data Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75712-29: Der Arduino-Talker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76912-30: Die drahtlose Kommunikation über Bluetooth . . . . . . . . . . . . . . . . . . . . . 78112-31: Bluetooth und das Android-Smartphone . . . . . . . . . . . . . . . . . . . . . . . . . . 79712-32: Der ArduBot wird funkgesteuert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80312-33: Netzwerk-Kommunikation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81112-34: Ein TFT ansteuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82912-35: Digital ruft analog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86712-36: Interrupt-Steuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88112-37: Arduino-Interaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90512-38: Yún Prozesse starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92512-39: Der Webserver des Yún . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93112-40: Temboo für den Yún nutzen – Twitter-API . . . . . . . . . . . . . . . . . . . . . . . . 95312-41: Temboo für den Yún nutzen – Google Spreadsheet . . . . . . . . . . . . . . . . . . 97912-42: Der Yún und die Datenbank. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99112-43: Das Arduino-SimpleBoard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102712-44: Der Shieldbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033

A Wo bekomme ich was? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045

Page 8: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken
Page 9: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

FirstHier Mini IVZ eingeben!

Abstand untere Tabellenlinie zu Textanfang 1,8 cm-> also: manuell auf den Arbeitsseiten ziehen!!!

Erstellen auf denArbeitsseiten(siehe Muster)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- VII

Einleitung

Nun ist es schon einige Zeit her, dass mein erstes Arduino-Bucherschienen ist, und es hat sich seit dem Jahr 2011 einiges getan. Essind weitere Arduino-Boards erschienen, die interessante und neueMöglichkeiten bieten, der eigenen Kreativität ihren Lauf zu lassen.Ich gehe in diesem Buch auf einige Boards ein und zeige ihre Vor-bzw. Nachteile auf. Gerade in einer Zeit, nachdem der Einplatinen-Computer Raspberry Pi das Licht der Welt erblickt hat, ist es fürden Arduino nicht unbedingt leicht, sich zu behaupten. Vielehaben sich dem Hype des neuen Minicomputers Raspberry Pi hin-gegeben, der z.B. mit seinem Linux-Betriebssystem und seinerGPIO-Schnittstelle völlig neue Möglichkeiten bietet. Trotzdemsehe ich die Position des Arduino nicht in Gefahr, denn er eignetsich hervorragend für den Aufbau elektronischer Projekte und istsehr einfach mit den Programmiersprachen C/C++ zu programmie-ren. Gerade wenn es um das sogenannte Prototyping geht – also umden schnellen Aufbau interaktiver Schaltungen – hat der Arduinoimmer noch die Nase vorne. Man hat eine Idee, schnappt sich sei-nen Arduino und fängt an, zu programmieren und zu basteln. Es istganz natürlich, dass sich viele Arduino-Fans gewissermaßen vomRaspberry Pi bedroht fühlen, der wie ein Fremdkörper oder Ein-dringling daherkommt. Doch die Ansätze, die der Raspberry Pi ver-folgt, sind in meinen Augen ein wenig anders gelagert. Er eignetsich gut für den Einstieg in die Informationstechnologie, etwa wennes darum geht, unterschiedliche Programmiersprachen bzw. -techni-ken zu erlernen und sich mit grundlegenden Fragen der Program-mierung auseinanderzusetzen. Für den ersten Kontakt mit einemMinicomputer, der im Grunde genommen alles bietet, was ein rich-

Page 10: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungVIII

tiger Computer auch hat, also z.B. Anschlüsse für Tastatur, Maus,Bildschirm, Netzwerk oder USB, Speicher und einem Prozessor,eignet er sich wirklich gut. Der Arduino hingegen wurde entwic-kelt, um Hobbybastlern oder Designern ein Werkzeug an die Handzu geben, mit dem sie so schnell wie möglich zu einem brauch- undnutzbaren Ergebnis gelangen. Die Interaktivität stand und stehtdabei im Vordergrund. Und wenn es um die Erfassung von Sensor-daten geht, die quasi in Echtzeit verarbeitet werden müssen, umdamit bestimmte (Re-)Aktionen auszulösen, also z.B. Aktoren wieMotoren oder Servos anzusteuern, ist der Arduino unschlagbar.Heutzutage neigt man sehr dazu, alles zu polarisieren und entwederals gut oder schlecht abzustempeln. Schwarz oder weiß, oben oderunten. In den Augen vieler herrscht nur das pure Konkurrenzden-ken vor. Warum nicht an eine Koexistenz beider Plattformen den-ken? Der Arduino kann im Zusammenspiel mit dem Raspberry Pidas Spektrum kreativer Möglichkeiten derart erweitern, dass Gren-zen gesprengt werden und nahezu alles machbar ist. In diesemBuch werden wir uns natürlich primär mit dem Arduino befassen,ansonsten würde ich dem Titel dieses Buches wohl nicht gerechtwerden. Ach ja, eine Kleinigkeit – habe ich Kleinigkeit gesagt? –hätte ich beinahe vergessen zu erwähnen. Es gibt einen neuenArduino, der über einen zusätzlichen Prozessor verfügt, um daraufein Linux-Betriebssystem laufen zu lassen. Es handelt sich um denArduino Yún. Wie du siehst, schlafen die Entwickler von Arduinonicht und haben den Trend erkannt. Das neue Board stellt mit Hilfeeines zusätzlichen Prozessors eine Kombination aus der bestehen-den Arduino-Technologie auf der Basis eines Mikrocontrollers unddem Linux-Betriebssystem dar. Beide Welten können miteinanderkommunizieren, um Daten oder Informationen auszutauschen.Das Betriebssystem Linux Einzug halt also auch bei den ArduinosEinzug gehalten. Ich werde in diesem Buch auf das neue Boardebenfalls eingehen, so dass du einen Überblick über die verschiede-nen Spezifikationen und die damit einhergehenden Möglichkeitenerhältst.

Mir fällt in unserer sehr schnelllebigen Zeit auf, dass wir immerhäufiger mit vorgefertigten Dingen konfrontiert werden, bei denenkeine oder nur sehr geringe Möglichkeiten bestehen, etwas zu ver-ändern. Wir werden über die unterschiedlichen Medien wie Zei-tung, Fernsehen oder Internet mit Informationen – teilweisePseudowahrheiten – versorgt, die viele als gegeben hinnehmen,ohne sie zu hinterfragen. Die Benutzung des eigenen Verstandes

Page 11: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Einleitung ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- IX

wird auf diese Weise auf ein Minimum reduziert. Dadurch bestehtdie Gefahr einer schleichenden Entmündigung des Menschen,derer wir uns bewusst sein sollten. Wo bleibt die Kreativität? Dufragst dich jetzt möglicherweise, ob du das richtige Buch liest undwas das alles mit Arduino zu tun hat. Ich habe absichtlich diesekurzen und provokanten Zeilen geschrieben, weil es in diesemBuch auch um die Wiederentdeckung der Kreativität geht.

Die Elektronik ist ein weites Feld, das sich hervorragend eignet, umnach Lust und Laune der Kreativität freien Lauf zu lassen. Es soll indiesem Buch nicht um die Präsentation fertiger Lösungen bzw.Schaltungen gehen. Ganz ohne geht es natürlich nicht, doch vor-rangiges Ziel ist es, Ansätze zu liefern, die zum Weiterentwickelnanimieren. Das Abliefern von vorgefertigten Bausätzen, die nacheinem Schema F zusammengebaut werden, ist zwar auf den erstenBlick – so würde es Seven of Nine sagen – effizient und verlockend.Wir können uns relativ sicher sein, dass alles so funktioniert, wieder Entwickler es sich erdacht hat. Aber seien wir einmal ehrlich zuuns selbst und stellen uns die Frage: »War das eine bemerkens-werte Leistung?« Sicherlich nicht! Wir wollen mehr und vor allenDingen etwas, was ausschließlich unseren eigenen Ideen oder dereigenen Kreativität entsprungen ist. Gerade am Anfang benötigenwir dazu etwas Anschub, denn ohne das Vermitteln von erforderli-chen Grundlagen kann es nicht funktionieren. Dieser Prozess istvollkommen normal, wir mussten ja auch Krabbeln und Laufen,Lesen und Schreiben lernen und waren dabei auf die Hilfe andererangewiesen. Was wir später daraus gemacht haben, hing dagegenganz allein von uns selbst ab.

Arduino fällt in die Kategorie Open Source. Sicherlich hast du dieseBezeichnung schon einmal im Zusammenhang mit diverser freiverfügbarer Software gehört. Jedermann bzw. -frau kann sich ander Entwicklung dieser Projekte beteiligen und einen Beitrag dazuleisten. Diese Art der Zusammenarbeit vieler interessierter undengagierter Menschen birgt ein großes Potential in sich und treibtdie betreffenden Projekte deutlich voran. Die Ergebnisse könnensich sehen lassen und brauchen sich vor kommerziellen Projektennicht zu verstecken. Da es sich bei Arduino nicht alleine umHardware handelt, sondern auch um Software, wird der Symbiosedieser beiden ein eigener Name zuteil: Physical Computing stellteine Beziehung zwischen Mensch und Computer dar. UnsereWelt wird als analoges System angesehen. Im Gegensatz dazu

Page 12: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungX

agieren bzw. reagieren die Computer in einem digitalen Umfeld,das lediglich die logischen Zustände von 1 und 0 kennt.

Es ist nun an uns kreativen Individuen, eine interessante Verbin-dung beider Welten zu (er)schaffen, die zum Ausdruck bringt,wozu wir fähig sind.

Wir werden uns in diesem Buch zwei grundlegenden Themenberei-chen widmen, ohne die wir unseren Weg nicht beschreiten könnten:

• Elektronik (Bauteile und ihre Funktionen)

• Mikrocontroller (Arduino-Board)

Natürlich können wir, da jedes Buch in seinem Umfang begrenztist, diese beiden Themen nur anreißen und nicht erschöpfendbehandeln. Das soll auch nicht unser Ziel sein. Der Weg ist das Ziel– und wenn dabei die Lust auf mehr geweckt wird, kann man aufdie schier unübersehbare Menge an Literatur bzw. Informationenim Internet zurückgreifen, um sich entsprechend weiterzubilden.Dieses Buch soll den Grundstein dafür legen und quasi eine Initial-zündung sein, um bei dir einen unbändigen Wissensdurst zu stimu-lieren. Ich würde mich freuen, wenn ich dich ein wenig inspirierenkönnte. Doch konzentriere dich zunächst auf das, was du imMoment in den Händen hältst.

Zu Beginn werden wir relativ locker und einfach starten und dereine oder die andere wird sich womöglich fragen, ob das Blinkeneiner Leuchtdiode wirklich eine Herausforderung darstellt. Aber seidir sicher, dass alles aufeinander aufbaut. Ein Satz setzt sich auchaus simplen Buchstaben zusammen, wobei jeder für sich alleinenicht unbedingt einen Sinn ergibt, und doch hat er eine Daseinsbe-rechtigung, ohne die wir nicht sinnvoll kommunizieren könnten.Die geschickte Mischung aus den einzelnen Elementen macht dasErgebnis aus.

Aufbau des BuchesDu wirst schnell bemerken, dass der Stil dieses Buches ein wenigvom Üblichen abweicht. Ich habe mich für eine lockere und fastkumpelhafte Sprache entschieden, die du vielleicht schon aus mei-nem Buch über die Programmiersprache Processing kennst. Außer-dem habe ich dir durch das komplette Buch hindurch einenBegleiter zur Seite gestellt, der hier und dort Fragen stellt, die dichmöglicherweise ebenfalls beschäftigen. Die Fragen mögen zeitweise

Page 13: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Aufbau des Buches ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XI

den Charakter von »dummen Fragen« haben, doch das ist durch-aus beabsichtigt. Manchmal traut man sich wegen einer vermeintli-chen Offensichtlichkeit oder Einfachheit der Zusammenhängenicht, Fragen zu stellen, weil man fürchtet, ausgelacht zu werden.Es kann angenehmer sein, wenn man solche Fragen nicht selbststellen muss, sondern erleichtert aufatmen kann, weil zum Glückjemand anderes ebenso wenig Kenntnis hat und die Frage für michmit formuliert!

Ebenso wenig möchte ich dich gleich zu Beginn mit den komplet-ten Grundlagen der Elektronik bzw. der Programmierung des Mi-krocontrollers Arduino konfrontieren. Das hätte einen gewissenLehrbuchcharakter, den ich vermeiden möchte. Ich werde die ent-sprechenden Themenbereiche zu gegebener Zeit ansprechen und indie Beispiele integrieren. Du bekommst auf diese Weise immer nurdas geliefert, was zum betreffenden Lernfortschritt erforderlich ist.

Der Aufbau der einzelnen Kapitel folgt einem mehr oder wenigerstringenten Ablauf. Am Anfang werde ich die zu besprechendenTeilthemen anreißen, damit du einen Überblick bekommst, wasdich erwartet. Im Anschluss wird das eigentliche Thema bespro-chen und analysiert. Am Ende jedes Kapitels erfolgt noch einmaleine Zusammenfassung der behandelten Bereiche, um die gewon-nenen Kenntnisse ein wenig zu festigen. Fast sämtliche Program-miersprachen haben ihren Ursprung im Amerikanischen, was füruns bedeutet, dass alle Befehle amerikanisch sind. Natürlich werdeich zu allen Begrifflichkeiten die passende Erläuterung liefern. BeiExperimenten halte ich nach Möglichkeit folgendes Ablaufschema:

• Benötigte Bauteile

• Programmcode

• Code Review (Code-Analyse)

• Schaltplan

• Schaltungsaufbau

• Troubleshooting (Was tun, wenn’s nicht auf Anhieb klappt?)

• Was hast du gelernt?

• Workshop (kleine Aufgabe zur Vertiefung der Thematik)

Einige Experimente sind mit Bildern von Oszilloskop- bzw. Logik-analyzeraufnahmen versehen, um die Signalverläufe besser verständ-lich zu machen. Innerhalb des Textes findest du immer mal wiederPiktogramme, die je nach Farbe abweichende Bedeutungen haben.

Page 14: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungXII

Das könnte wichtig für dich seinHier findest du nützliche Informationen, Tipps und Tricks zumgerade angesprochenen Thema, die dir sicherlich helfen wer-den. Darunter befinden sich auch Suchbegriffe für die Suchma-schine Google. Ich werde dir nur wenige feste Internetadressenanbieten, da sie sich im Laufe der Zeit ändern können oder ein-fach wegfallen. Gerade wenn es um Datenblätter elektroni-scher Bauteile geht, sind die angeführten Links aber sehrhilfreich.

Eine Bemerkung am RandeDie Information hat nicht unmittelbar etwas mit dem Projekt zutun, das wir im Moment behandeln, doch man kann ja malüber den Tellerrand schauen. Es ist allemal hilfreich, ein paarZusatzinformationen zu bekommen.

AchtungWenn du an eine solche Stelle gelangst, solltest du den Hinweisaufmerksam lesen, denn er wird für den erfolgreichen Aufbaudes Experiments und die spätere Durchführung wichtig sein.

Ich habe die einzelnen Kapitel nicht unabhängig voneinander auf-gebaut. So kommt eins zum anderen, und die Sacherhalte werdennicht so hart voneinander getrennt. Der fließende Übergang voneiner Thematik zur nächsten mit der entsprechenden Überleitungmacht die Sache in meinen Augen interessanter. Zeitweise werdenvon mir auch Quick-and-Dirty-Lösungen angeboten, die auf denersten Blick etwas umständlich erscheinen mögen. Anschließendfolgt eine verbesserte Variante, was dich zum Nachdenken anregensoll, so dass du vielleicht sagst: Oh, das geht auch anders und siehtgar nicht schlecht aus! Ich habe aber eine andere Lösung gefunden,die in meinen Augen noch besser funktioniert. Wenn das geschieht,habe ich genau das erreicht, was ich beabsichtigt hatte. Falls nicht,auch gut. Jeder geht seinen eigenen Weg und kommt irgendwannans Ziel.

An dieser Stelle möchte ich auch auf meine Internetseite www.erik-bartmann.de hinweisen, auf der du einiges zum ThemaArduino findest. Vor allen Dingen habe ich dort zahlreiche Linksplatziert, die z.B. auf die von mir erstellten Videos zum ThemaArduino verweisen. Hierin werden Themen der einzelnen Kapitelaus diesem Buch behandelt. Sie sollen dich ein wenig bei deinenExperimenten unterstützen und zeigen, wie alles funktioniert. Dader Seitenumfang dieses Buches beschränkt ist, ich aber noch wei-

Page 15: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Benötigte Bauteile -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XIII

tere interessante Themen auf dem Schirm habe, wirst du dortauch noch das eine oder andere Zusatzkapitel finden, das einenBlick lohnt. Schau einfach mal vorbei. Es würde mich sehr freuen,wenn du bei dieser Gelegenheit ein wenig Feedback (positiv wienegativ) geben würdest. Die entsprechende E-Mail-Adresse lautet:[email protected] (sie ist auf der Internetseite noch ein-mal aufgeführt).

VoraussetzungenDie einzige persönliche Voraussetzung, die du mitbringen solltest,ist das Interesse am Basteln und Experimentieren. Du musst keinElektronik-Freak sein und auch kein Computerexperte, um die imBuch gezeigten Experimente nachvollziehen bzw. nachbauen zukönnen. Da wir sehr moderat beginnen werden, besteht absolutkeine Gefahr, dass irgendjemand auf der Strecke bleibt. Setz dichalso nicht selbst unter Druck und mach die Dinge nicht schwieri-ger, als sie sind. Der Spaß steht immer an erster Stelle.

Benötigte BauteileUnser Arduino-Board für sich alleine ist zwar ganz nett und wirkönnen uns daran erfreuen, wie klein und schön alles konzipiertwurde, doch auf Dauer ist das wenig befriedigend. Wir sollten unsdaher im nächsten Schritt ansehen, was wir alles von außen an dasBoard anschließen können. Falls du noch niemals in irgendeinerWeise mit elektronischen Bauteilen (wie Widerständen, Kondensa-toren, Transistoren oder Dioden, um nur einige zu nennen) inBerührung gekommen bist, ist das nicht weiter schlimm. Die benö-tigten Teile werden in ihrer Funktion ausführlich beschrieben, sodass du nachher weißt, wie sie einzeln und innerhalb der Schaltungreagieren. Vor jedem Experiment stelle ich eine Liste mit den erfor-derlichen Teilen zur Verfügung, mit deren Hilfe du dir die Teilebesorgen kannst. Kernelement ist natürlich immer das Arduino-Board, das ich nicht immer explizit erwähnen werde. Falls du dichan dieser Stelle fragen solltest, was um Himmels willen einArduino-Board kosten mag und ob du nach dieser Investition dei-nen gewohnten Lebensstil fortführen kannst, kann ich nur sagen:Yep, du kannst! Das Board kostet um die 25 €, und das ist wirklichnicht viel.

Page 16: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungXIV

Ich verwende in allen grundlegenden Beispielen das Arduino-Uno-Board. Nach den Grundlagen-Kapiteln gehe ich auf den ArduinoYún ein, ein interessanter Vertreter ist, wum den klassischenArduino mit dem Betriebssystem Linux zu verknüpfen. Eine wahr-lich bemerkenswerte Chimäre, der mit ca. 65 € zu Buche schlägt.

Abbildung 1Der Arduino Uno

Abbildung 2Der Arduino Yún

Page 17: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Verhaltensregeln -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XV

Eine Komplettliste aller in diesem Buch benötigten Bauteile findestdu im Download-Bereich meiner Internetseite. Ich vewende nachMöglichkeit keine ausgefallenen, exotischen bzw. teuren Bauteile.Falls du zu den Jägern und Sammlern zählst, hast du vielleicht nocheinen Haufen alter elektronischer Geräte wie Scanner, Drucker,DVD-Player, Video-Recorder, Radios etc. im Keller oder auf demDachboden, die du ausschlachten kannst, um an diverse Bauteilezu gelangen. Stell vor dem Öffnen derartiger Geräte immer sicher,dass sie vom Stromnetz getrennt sind. Ansonsten besteht Lebensge-fahr, und du willst doch sicherlich noch bis ans Ende des Buchesgelangen. Alle Experimente werden übrigens mit Versorgungsspan-nungen von 5V bzw. 12V betrieben.

VerhaltensregelnWenn du dich so richtig im Brass befindest und voll konzentriertbist auf etwas, was dir unheimlich viel Spaß macht, treten folgendeEffekte auf:

• Verminderte Nahrungsaufnahme, die zu kritischem Gewichts-und besorgniserregenden Realitätsverlust führen kann;

• unzureichende Flüssigkeitszufuhr bis hin zu Dehydrierung undvermehrter Staubentwicklung;

• Vernachlässigung sämtlicher hygienischer Maßnahmen, wieWaschen, Duschen, Zähneputzen, verbunden mit erhöhtemAuftreten von Ungeziefer;

• Abbruch jeglicher zwischenmenschlicher Beziehungen.

Lass es nicht so weit kommen und öffne ab und zu das Fenster, umzugewanderten Insekten das Verlassen des Zimmers zu ermögli-chen und um Frischluft bzw. Sonnenlicht hereinzulassen. Um denoben genannten Effekten entgegenzuwirken, kannst du z.B. denWecker stellen, damit du in regelmäßigen Zeitintervallen zu einerUnterbrechung deiner Tätigkeiten aufgefordert wirst. Hierzu istnatürlich eine gewisse Selbstdisziplin erforderlich, die du ganzalleine an den Tag legen musst. Ich möchte mich nach der Veröf-fentlichung dieses Buches nicht mit einer Beschwerdewelle kon-frontiert sehen, die von erbosten Partnern oder vernachlässigtenFreunden über mich hereinbricht. Sagt also nicht, ich hätte euchnicht mit den Risiken vertraut gemacht.

Page 18: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungXVI

Was ratsam istDa es sich beim Arduino-Board um eine Experimentierplatine han-delt, an der wir allerlei Bauteile bzw. Kabel anschließen können,und der Mensch nun einmal nicht unfehlbar ist, rate ich zur erhöh-ten Aufmerksamkeit. Das Board wird über die USB-Schnittstelle di-rekt mit dem PC verbunden. Im schlimmsten Fall kann dasbedeuten, dass bei einer Unachtsamkeit, z.B. bei einem Kurz-schluss auf dem Board, dein PC, speziell die USB-Schnittstelle, da-runter leidet und das Mainboard beschädigt wird. Du kannst demvorbeugen, indem du einen USB-HUB zwischen Computer undArduino-Board schaltest. Du bekommst diese HUBs mit 4 Portsteilweise schon für unter 10 €. Diese Investition zahlt sich auf jedenFall aus, ich benutze selbst diese Konstellation der Anordnung.

Abbildung 3Das Arduino-Mikrocontroller-Boardam besten über einen HUB mit dem

PC verbinden

Der zweite wichtige Punkt ist die Tatsache, dass das Arduino-Boardauf der Unterseite recht viele Kontakte aufweist, was in der Naturder Sache liegt. Es handelt sich dabei um Lötpunkte, über die dieBauteile auf dieser Seite des Boards fixiert und miteinander verbun-den werden. Das heißt, sie sind leitfähig und extrem anfällig füretwaige nicht beabsichtigte Verbindungen untereinander. Imschlimmsten Fall – und sei dir sicher, dass dieser Fall nach Murphyeintreten wird – erzeugst du einen Kurzschluss. Ich spreche ausErfahrung und habe mir auf diese Weise schon so einiges »zer-

Page 19: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Was ratsam ist --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XVII

schossen«. Lerne also aus den Fehlern anderer und mach es besser.Natürlich darfst du Fehler machen, denn sie tragen sogar am meis-ten zum Lernerfolg bei. Aber es müssen ja nicht immer gleich dieschlimmsten Missgeschicke passieren und die Bauteile einer Kern-schmelze zugeführt werden.

Abbildung 4Das Uno-Arduino-Mikrocontroller-Board von der Rückseite

Wenn du das Board auf eine metallene Unterlage oder auf eineunsaubere Tischplatte legen würdest, auf der sich blanke Kabel-reste befinden, wäre der Kurzschluss so sicher wie das Amen in derKirche und der Ärger gewaltig. Leg eine gewisse Sorgfalt an denTag, damit es nicht so weit kommt, dann hast du sicherlich vielFreude an der Materie.

An dieser Stelle möchte ich schon mit dem ersten Tipp um die Eckekommen. Vielleicht sind dir die vier Bohrungen mit einem Durch-messer von 3mm in der Platine des Arduino-Boards aufgefallen. Siebefinden sich nicht zur besseren Belüftung des Boards an diesenStellen, sondern haben einen anderen Zweck. Damit das Boardnicht mit der Lötseite direkt auf der Arbeitsunterlage liegt und mitleitenden Materialien in Berührung kommt, kannst du dort soge-nannte Gummipuffer bzw. Abstandshalter für Leiterplatten anbrin-gen. Sie gewährleisten einen Sicherheitsabstand zur Unterlage undkönnen dadurch einen Kurzschluss verhindern. Ich rate auch mitGummipuffer zur Vorsicht! Elektronische Schaltungen, insbeson-dere integrierte Schaltkreise wie z.B. der Mikroprozessor, reagieren

Page 20: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungXVIII

sehr empfindlich auf elektrostatische Entladungen (ESD). Beim Lau-fen über einen Teppich mit dem entsprechenden Schuhwerk kanndurch diese Reibung der Körper aufgeladen werden, so dass beiBerührung mit elektronischen Bauteilen kurzzeitig ein sehr hoherStrom fließen kann. Das führt in der Regel zur Zerstörung des Bau-teils. Bevor du dich also deinem Mikrocontroller-Board näherst,solltest du sicherstellen, dass du nicht geladen bist. Ein kurzer Griffan ein blankes Heizungsrohr kann diese Energie ableiten. Sei alsovorsichtig.

Die schönsten Pläne ...... hauen selten so hin, wie man sie sich vorgenommen hat. In diezweite Auflage meines Arduino-Buches sollte eigentlich ein Kapitelzum jüngsten Arduino-Produkt, dem Arduino TRE (http://arduino.cc/en/Main/ArduinoBoardTre), erscheinen. Das für den Frühjahr2014 angekündigte Board ist jedoch leider zum Zeitpunkt der Fer-tigstellung dieser Neuauflage (April 2014) noch nicht erschienen.

Nach dem Abwägen, was am besten für meine Leserinnen undLeser ist, habe ich mich entschlossen, die Buchveröffentlichung indem von mir gemeinsam mit dem O'Reilly Verlag geplantenZeitrahmen vorzunehmen, ohne auf das Erscheinen des ArduinoTRE zu warten.

Sobald das neue Board erschienen ist und ich ausreichend Zeit fürTests hatte, werde ich meine Erfahrungen in einem ausführlichenText zusammenfassen. Diesen Text werde ich dir zum kostenlosenDownload auf meiner Webseite http://www.erik-bartmann.de/sowie auf der entsprechenden Seite des O'Reilly Verlages zur Verfü-gung stellen. Schau also bitte einige Wochen nach dem Erscheinendes Arduino TRE auf meine Webseite, wenn du dich ausführlichüber das neue Board informieren möchtest!

Was nicht fehlen darfIch komme nicht umhin, einige Worte über Familie, Freunde undliebgewonnene Menschen zu verlieren. Du kannst diesen Passuseinfach überspringen. Die Arbeit an meinem ersten Buch über dieProgrammiersprache Processing beim O’Reilly-Verlag – höre ich dajemanden sagen: »Jetzt macht er auch noch Werbung für sein erstesBuch …« – hat dazu geführt, dass ich mich einerseits gut und ande-

Page 21: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Was nicht fehlen darf ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XIX

rerseits nicht so gut fühle. Gut ist, dass ich es geschafft habe, mei-nen Lebenswunsch, ein Buch über Programmierung zu schreiben,noch vor meinem Ableben verwirklichen konnte. Nicht so gut wardie Tatsache, dass ich mich für einen längeren Zeitraum von meinerFamilie distanzieren musste. Sie hat es aber verstanden und michab und an mit Nahrung versorgt, so dass ich keine allzu großenkörperlichen wie seelischen Schäden davon trug.

Und was soll ich sagen … kurz nach der Veröffentlichung habe ichmeinem Lektor Volker Bombien von meiner Vorliebe für den Mik-rocontroller Arduino erzählt, und schon konnte ich mich nichtmehr aus der Sache herauswinden. Er hatte mich wieder amHaken, und dafür bin ich ihm sehr dankbar. Mein Interesse anElektronik, das ich in jungen Jahren hatte und das lange Zeit aufEis lag, trat wieder hervor, und dann hat es mich wirklich gepackt.Von dem, was heutzutage alles machbar ist, haben wir vor 30 Jah-ren nur geträumt. Ich würde mich riesig freuen, könnte dieserFunke der Begeisterung für die Thematik auf den einen oder ande-ren Leser überspringen. Mit der Arduino-Plattform und ein wenigGrundwissen über Elektronik steht uns Tür und Tor weit offen fürDinge, die wir schon immer machen wollten. Der Dank gilt auchmeiner Familie, die bestimmt im Stillen stöhnte: »Nein, jetzt ziehter sich schon wieder für längere Zeit zurück. Ob das vielleicht anuns liegt?« Schließlich einen großen Dank in Richtung des Fach-gutachters fribbe aka Holger Lübkert (http://macherzin.net), dermir schon bei meinem Raspberry-Pi-Buch mit Rat und Tat zurSeite stand. Ebenso gilt mein Dank Herrn Andreas Riedenauer vonder Firma Ineltek, der sich ebenfalls meines Manuskriptes ange-nommen hat und sein Fachwissen einfließen ließ. Wenn ich imSchreibfieber bin und mein Augenmerk lediglich auf der techni-schen Ebene liegt, kann es hier und da zu Textpassagen kommen,die ich im Nachhinein selbst nicht mehr verstehe. Wie sollte da erstein Leser den Durchblick wahren? Gut, dass ich auf die Erfahrungeiner Korrekturleserin zugreifen konnte, die selbst Autorin undFachlektorin ist. Frau Dr. Dorothée Leidig hat mein Manuskript indie Mangel genommen, so dass daraus ein lesbares Buch entstan-den ist. Vielen Dank für die Hilfe! Es sind also viele Personen imHintergrund tätig, ähnlich den Souffleusen in einer Theaterauffüh-rung. Man bekommt sie nie zu Gesicht, doch ihr Wirken machtsich an der Qualität des Stückes bemerkbar. Man kann und willnicht auf sie verzichten!

Page 22: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungXX

Vielen Dank für die großzügige UnterstützungEin so umfangreiches Projekt wie das Schreiben eines Buches mitdiesem Umfang und einem solch breiten Thema ist ohne eine ent-sprechende Unterstützung von außen kaum zu realisieren. In mei-ner Einleitung habe ich bereits die Menschen erwähnt, die michkontinuierlich bei meinem Schaffensprozess begleitet haben undnoch begleiten. Daneben bin ich folgenden Personen bzw. Firmenzu Dank verpflichtet:

PCE Deutschland GmbH

Mein Dank gilt Ludger Droste und Julian Gebhardt der Firma PCEDeutschland GmbH, die mir das Oszilloskope PCE-DSO5202B zurVerfügung gestellt haben. Die Internetseite ist unter http://www.warensortiment.de/ zu finden.

EXP-Tech

Vielen Dank an Herrn Yuan Wang von EXP-Tech, der mich mitden Boards Arduino Yún, pcduino und iteaduino PLUS versorgt hat.Seine Internetseite ist unter www.exp-tech.de/ zu finden.

Fritzing

Ein herzliches Dankeschön an Stefan Hermann von Fritzing, dermir das Arduino Fritzing-Creator Kit zur Begutachtung überlassenhat. Die Internetseite von Fritzing ist unter http://fritzing.org/ zufinden.

Abacom

Auf der Suche nach einer Software zur Erstellung der im Buch ver-wendeten Schaltpläne bin ich auf die Firma Abacom gestoßen. AufNachfrage hat man mir den Schaltplan-Designer sPlan 7.0 zur Ver-fügung gestellt. Ich habe noch keinen Designer dieser Art kennen-gelernt, mit dem ich schneller und einfacher meine Schaltpläneerstellt hätte. Die Bedienung ist derart einfach und intuitiv, dass esmir sehr viel Spaß bereitet hat, damit zu arbeiten. Einen herzlichenDank dafür. Nähere Informationen findest du unter der Internet-adresse http://www.abacom-online.de/

Page 23: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Was nicht fehlen darf ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- XXI

Watterott electronic GmbH

Vielen Dank an Herrn Watterott, der mir den Arduino Due zur Ver-fügung gestellt hat. Die URL zu seiner Internetseite lautet www.watterott.com/.

Jörg Neumann IT-Service

Ebenso einen herzlichen Dank an Jörg Neumann, der mich mitdiverser Hardware unterstützt, hat wenn es um die Kommunika-tion zwischen Arduino und Raspberry Pi ging. Seine Internetseiteist unter www.raspiprojekt.de/ zu finden.

Trenz Electronic

Dankeschön an Herrn Trenz, der mir das sagenhafte EEBoard zurVerfügung gestellt hat. Seine Internetseite ist unter www.trenz-electronic.de/ zu finden.

Ing.-Büro Friedrich

Herzlichen Dank an den Produktmanager Herrn Markus Friedrich,der mir die CAD-Software Target 3001! für den Leiterplattenent-wurf zur kommerziellen Nutzung zur Verfügung gestellt hat. DieURL für diese Software lautet www.target3001.de.

National Instruments

Vielen Dank an Frau Eva Heigl von der Firma National Instru-ments, die mir erlaubt hat, das Programm NI Multisim in der Ver-sion 10 für mein Buchprojekt zu verwenden. Emit seiner Hilfe wares mir möglich, von einigen Schaltungssimulationen Screenshots zuerstellen und im Buch zu verwenden. Die URL für diese Softwarelautet www.ni.com/multisim/d.

KOMPUTER.DE

Auch vielen Dank an Herrn Bauer von komputer.de, der mir für dasBluetooth-Kapitel ein Stackable Bluetooth-Shield v2.1 zur Verfü-gung gestellt hat. Die URL zu seinem Online-Shop lautet www.komputer.de.

ITead-Studio

Ein herzlicher Dank geht auch an Alex von der Firma ITead-Studio.Ich bin gleich mit drei Shields (2x Bluetooth + SD-Card Shield) ver-wöhnt worden, die ich für meine Projekte verwenden konnte. DieURL zur entsprechenden Internetseite lautet http://iteadstudio.com.

Page 24: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- EinleitungXXII

Ach ja, bevor ich’s vergesse. Ich möchte dir an dieser Stelle deinenWegbegleiter durchs Buch vorstellen. Er stellt die Fragen, die sonstvielleicht niemand zu stellen wagte. Sein Name ist Ardus.

Klar, Ardus, machen wir!

Ich überlasse euch nun eurem Schicksal und ziehe mich erst einmaldiskret zurück.

Eine Menge Spaß und viel Erfolg beim Physical Computing mit dei-nem Arduino-Board wünscht dir

Ich bin ganz schön aufgeregt. Was da alles auf uns zukommt! Aberwir werden das Kind – ähm – das Arduino-Board schon schaukeln,nicht wahr!?

Page 25: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

FirstHier Mini IVZ eingeben!

Abstand untere Tabellenlinie zu Textanfang 1,8 cm-> also: manuell auf den Arbeitsseiten ziehen!!!

Erstellen auf denArbeitsseiten(siehe Muster)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1

Kapitel 1 1Was ist ein Mikrocontroller

Falls du es nicht erwarten kannst, deinen Arduino anzuschließenund das erste Experiment zu beginnen, kannst du dieses Kapitelgetrost überspringen und vielleicht später hierhin zurückkommen.Das macht absolut nichts aus. In diesem ersten Kapitel wollen wiruns den Mikrocontroller-Grundlagen zuwenden. Diese integrier-ten Schaltkreise (IC = Integrated Circuit) – so werden komplexeSchaltungen bezeichnet – sind auf kleinstem Raum auf Halblei-terchips untergebracht. Was in den Anfängen der Elektronik nochmit unzähligen Bauteilen wie Transistoren, Widerständen oderKondensatoren platzraubend auf mehr oder weniger großen Plati-nen verlötet wurde, ist inzwischen ganz unscheinbar geworden undfindet Platz in kleinen schwarzen Plastikgehäusen mit einerbestimmten Anzahl von Pins. So werden die Anschlüsse genannt,die aus den ICs herausragen, um mit ihnen zu kommunizieren. Imfolgenden Bild siehst du den ATmega328-Mikrocontroller, derauch auf dem Arduino-Board verbaut wurde.

Abbildung 1-1Der ATmega328-Mikrocontroller (Quelle: Atmel)

Er ist in seinen Ausmaßen wirklich recht bescheiden, doch es steckteine ganze Menge Rechenpower in ihm. Eigentlich müsstest du

Page 26: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Kapitel 1: Was ist ein Mikrocontroller2

lediglich diesen Controller auf eine Platine löten, mit Spannungversorgen und dann könntest du mit ihm arbeiten. Es fehlen natür-lich noch ein paar Komponenten wie z.B. Spannungsstabilisatorenund Anschlüsse zur Programmierung – doch dazu später mehr. Erist aber in dieser Form schon (fast) einsatzbereit.

Wozu kann man ihn verwenden?Vielleicht stellst du dir jetzt die berechtigte Frage, wozu so ein Mi-krocontroller denn gut ist und was man mit ihm alles anstellenkann? Das ist eine ganze Menge, die Einsatzgebiete sind unbegrenztund werden nur von deiner Kreativität eingeschränkt. In folgendenBereichen spielen Mikrocontroller eine entscheidende Rolle. DieseListe kratzt natürlich lediglich an der Oberfläche und gibt dir einGefühl für diverse Einsatzgebiete.

• Überwachungsfunktionen in kritischen Umgebungen wie z.B.Brutkästen (Temperatur, Feuchtigkeit, Herzfrequenz und Blut-druck des Frühchens etc.)

• Heizungssteuerung (Kontrolle von Außen- bzw. Innentempera-tur zur optimalen Beheizung von Räumlichkeiten)

• Herzschrittmacher (Überwachung der Herzfrequenz und ggf.Stimulierung des Herzens)

• Haushaltsgeräte (z.B. Programmsteuerung in modernen Wasch-maschinen oder Geschirrspülern)

• Hobbyelektronik (MP3-Player, Handys, Fotoapparate etc.)

• Robotik (z.B. Steuerung von Industrierobotern zur Montage vonKraftfahrzeugteilen)

Diese Liste kann schier endlos fortgeführt werden, doch wir kön-nen eines beobachten: Mikrocontroller verarbeiten Einflüsse überSensoren von außen, verarbeiten sie intern mit Hilfe eines Pro-gramms und schicken Steuerbefehle nach draußen. Sie zeigen alsoeine gewisse Eigenintelligenz, die natürlich vom implementiertenProgramm abhängt. Ein Mikrocontroller kann Mess-, Steuer- undRegelfunktionen übernehmen. Schauen wir uns doch die Funktioneines Regelkreises einmal genauer an, der einen geschlossenen Pro-zessablauf mit einer Störgröße darstellt. Diese Störgröße wird übereinen Sensor an den Mikrocontroller übermittelt, der dann entspre-chend seiner Programmierung reagiert.

Page 27: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Allgemeiner Aufbau --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3

Stell dir folgendes Szenario vor:

Wir befinden uns mitten in einer Heizungssteuerung, die die Tem-peratur in unserem Arbeitszimmer reguliert. Der Sensor sagt zumMikrocontroller: »Du, es ist ziemlich warm hier im Arbeitszimmer!«Der Mikrokontroller seinerseits regiert darauf mit der Regelung derHeizung. Die Heizung führt weniger Energie in Form von Wärmein den Raum. Der Sensor merkt dies und teilt dem Mikrocontrollermit: »Jetzt ist die Temperatur so, wie sie angefordert wurde. 20 GradCelsius sind ok.« Im Laufe der Zeit kommt kalte Luft von draußenherein. Der Sensor schlägt Alarm und teilt dem Mikrocontrollermit: »Hey, es wird etwas frisch hier und mein Mensch fängt ein wenigan zu frieren. Unternimm was!« Der Mikrocontroller regelt dieTemperatur entsprechend nach oben. Du siehst, dass das ein Ping-Pong-Spiel ist. Eben ein Regelkreis, der auf äußere Störeinflüsse wieTemperaturschwankungen reagiert. Das Beispiel darfst du natür-lich nicht allzu wörtlich nehmen, denn ein Temperatursensor kann– je nach Typ – einen vorherrschenden Temperaturwert z.B. ineinen Widerstandswert umwandeln, was wiederum zur Folge hat,dass eine bestimmte Spannung an einem analogen Eingang anliegtund der Mikrocontroller diesen Wert aufgrund seiner Programmie-rung in irgendeiner Weise interpretiert.

Allgemeiner AufbauKommen wir zum allgemeinen Aufbau eines Mikrocontrollers, umdie einzelnen Komponenten innerhalb des Chips zu zeigen.

Ein guter Einwand, doch ich habe noch nicht die ganze Wahrheitüber unseren Mikrocontroller erzählt. Wenn wir es genau nehmen– und das tun wir –, dann ist unser kleiner Freund hier ein kom-pletter Computer auf kleinstem Raum mit all der Peripherie, die duvielleicht von deinem PC her kennst. Als da wären:

• Zentrale Recheneinheit (CPU)

• Arbeitsspeicher

• Datenspeicher

Stopp, stopp! Ich habe zu Beginn eine Frage. Du hast gesagt, dass wirmit dem Mikrocontroller eigentlich schon arbeiten können. Wo legter denn sein Programm ab oder wo speichert er seine Daten? Du hastsicherlich vergessen, die Speicherbausteine zu erwähnen, die nochangeschlossen werden müssen.

Page 28: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Kapitel 1: Was ist ein Mikrocontroller4

• Taktgeber

• Ein- bzw. Ausgabeports

Ein Mikrocontroller kann grob in drei Hauptbereiche unterteiltwerden:

• Zentrale Recheneinheit (CPU)

• Speicher (ROM + RAM)

• Ein- bzw. Ausgabeports

Den Taktgeber, also den Oszillator zur Triggerung der Zentralein-heit, habe ich in dieser Differenzierung außen vor gelassen. Duerkennst die Übereinstimmung zu den Peripherieelementen desPCs. Der Unterschied liegt jedoch darin, dass alle drei Bereiche desMikrocontrollers ein integraler Bestandteil desselben sind. Siebefinden sich in ein und demselben Gehäuse und machen die Sachedeswegen so einfach und kompakt. Werfen wir einen Blick auf dasvereinfachte Blockschaltbild unseres Mikrocontrollers:

Abbildung 1-2Das Blockschaltbild eines

Mikrocontrollers

Was bedeuten die einzelnen Blöcke in diesem Schaltbild jedochund was ist ihre genaue Aufgabe, fragst du dich jetzt – richtig? Wirschauen uns das mal an.

Page 29: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

Allgemeiner Aufbau --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 5

Die Zentrale Recheneinheit (CPU)Das Arbeitstier in einem Mikrocontroller ist die zentrale Rechen-einheit, auch kurz CPU (Central Processing Unit) genannt. DieHauptfunktion besteht in der Dekodierung und Ausführung vonBefehlen. Sie kann Speicher adressieren, Ein- bzw. Ausgänge ver-walten und auf Interrupts reagieren. Ein Interrupt ist eine Unterbre-chungsanforderung (IRQ = Interrupt Request) an die CPU, um dengerade laufenden Rechenzyklus zu unterbrechen und auf einbestimmtes Ereignis reagieren zu können. Interrupts sind einewichtige Funktionalität, auf die wir noch zu sprechen kommen.

Der DatenbusDen Datenbus können wir uns im wahrsten Sinn des Wortes alseinen Bus vorstellen, der die Daten von einem Block zum nächstentransportiert. Die CPU fordert z.B. Daten aus dem Speicher an, dieauf den Bus gelegt werden und der CPU unmittelbar zur weiterenVerarbeitung zur Verfügung stehen. Liegt das Ergebnis der Berech-nung vor, wird es wieder auf den Bus transferiert und an einen Aus-gangsport übermittelt, der vielleicht den Motor eines Robotersansteuert, um ein bestimmtes Ziel anzufahren. Es handelt sich beidieser Bus-Struktur um eine Datenautobahn, die gemeinsam vonallen genutzt wird, die daran angeschlossen sind.

Abbildung 1-3Auf der Datenautobahn: »Nächster Halt: Speicher!«

SpeicherbereicheIn einem Mikrocontroller werden in der Regel zwei Speicherberei-che unterschieden.

• Programmspeicher

• Datenspeicher

Page 30: e Arduinodownload.e-bookshelf.de/download/0002/6864/41/L-G-0002686441... · Beijing · Cambridge · Farnham · Köln · Sebastopol · Tokyo Die elektronische Welt mit Arduino entdecken

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Kapitel 1: Was ist ein Mikrocontroller6

Der Programmspeicher dient zur Aufnahme des Programms, dasdie CPU abarbeiten soll, wohingegen der Datenspeicher zur Ver-waltung von temporär anfallenden Rechenergebnissen genutztwird.

Das ist vollkommen korrekt, und deshalb ist der Programmspei-cher in einem Mikrocontroller ein ganz besonderer. Ein Mikrocon-troller hat von Haus aus natürlich keine Festplatte, doch kann ersein Programm nach der Trennung von der Versorgungsspannungim Gedächtnis behalten. Wir haben es mit einer besonderen Artvon Speicher zu tun. Er nennt sich Flash-Speicher und ist ein nichtflüchtiger Speicher. Seine Bits und Bytes flüchten nicht nach demAbschalten und stehen uns auch weiterhin zur Verfügung. Du hastdiese Speicherform schon unzählige Male bei deinem PC genutzt.Das BIOS ist in einem Flash-EEPROM untergebracht und kann beiBedarf mit neuen Daten überschrieben werden, wenn eine neueVersion vom Hersteller bereitgestellt wurde. Man sagt auch: »DasBIOS wird neu geflashed.«

Im Gegensatz dazu haben wir natürlich noch den Datenspeicher imsogenannten SRAM. Das ist ein flüchtiger Speicherbereich, der dieDaten, die zur Laufzeit des Programms anfallen, nach dem Aus-schalten verliert. Das ist nicht weiter schlimm, denn diese Datenwerden nur benötigt, wenn das Programm ausgeführt wird. Ist derMikrocontroller stromlos, muss er auch nichts berechnen. DieserSpeicher hat aber einen entscheidenden Vorteil gegenüber unseremFlash-Speicher: Er ermöglicht einen schnelleren Zugriff.

Die Ein- bzw. AusgabeportsDie Ein- bzw. Ausgabeports sind der Draht des Mikrocontrollerszur Außenwelt. Sie sind quasi die Schnittstelle, an der die Periphe-rie angeschlossen werden kann. Unter Peripherie kann eigentlichalles verstanden werden, was sinnvoll mit der Schnittstelle verbun-den werden kann. Das können z.B. folgende elektronischen oderelektrischen Komponenten sein:

• LED (Leuchtdiode)

• Taster

Da scheint es aber ein Problem zu geben. Wenn ich meinen PC aus-schalte, sind alle Programme weg, die sich im Speicher befundenhaben, und ich muss sie erst wieder von meiner Festplatte laden, ummit ihnen arbeiten zu können.