Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Vom Lämpchenschalter zum Roboter · 65 spannende aufeinander aufbauende Projekte zum Hand anlegen · Ihnen wird alles mitgegeben um am Ende eigene Projekte zu verwirklichen · Ihr Eintritt in die Mikrocontrollerprogrammierung und die Familie der Arduino In "Arduino-Workshops" erfahren Sie, wie diese Add-ons funktionieren und wie man sie einsetzt. Sie starten mit einem Überblick über das Arduino-System und gehen dann rasch zu den verschiedenen elektronischen Komponenten und Konzepten über. Zahlreiche Beispielprojekte vertiefen das Gelernte Schritt für Schritt und helfen Ihnen, dieses Wissen anzuwenden. Je tiefer Sie in die Materie eindringen, desto raffinierter und anspruchsvoller werden die Projekte. Unter den 65 Projekten des Buches finden sich nützliche Dinge wie: - ein digitales Thermometer mit LCD-Anzeige - ein GPS-Logger, der Daten Ihrer Reise für Google Maps aufzeichnet - ein handliches Testgerät zum Messen von Batteriespannungen - eine Tastatursperre, die nur mit Geheimcode aufgehoben werden kann Außerdem lernen Sie, Spielzeug und Spiele zu entwickeln, beispielsweise: - eine elektronische Version des klassischen sechsseitigen Würfels - ein binäres Quiz, das Ihre Fähigkeiten zur Umwandlung von Zahlen testet - ein Fahrzeug mit Fernbedienung und Kollisionserkennung "Arduino-Workshops" führt Sie in die Welt der Mikroelektronik ein und lehrt Sie die Tricks und Design-Prinzipien eines erfahrenen Profis.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 415
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
John Boxall ist seit über 26 Jahren in den Bereichen Elektronikdesign, Vertrieb und E-Commerce tätig. In seiner Freizeit schreibt er Arduino-Tutorials und veröffentlicht regelmäßig Reviews zu Arduino-Projekten und -Zubehör bei www.tronixstuff.com.
Copyright und Urheberrechte:
Die durch die dpunkt.verlag GmbH vertriebenen digitalen Inhalte sind urheberrechtlich geschützt. Der Nutzer verpflichtet sich, die Urheberrechte anzuerkennen und einzuhalten. Es werden keine Urheber-, Nutzungs- und sonstigen Schutzrechte an den Inhalten auf den Nutzer übertragen. Der Nutzer ist nur berechtigt, den abgerufenen Inhalt zu eigenen Zwecken zu nutzen. Er ist nicht berechtigt, den Inhalt im Internet, in Intranets, in Extranets oder sonst wie Dritten zur Verwertung zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und eine gewerbliche Vervielfältigung der Inhalte wird ausdrücklich ausgeschlossen. Der Nutzer darf Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte im abgerufenen Inhalt nicht entfernen.
Eine praktische Einführungmit 65 Projekten
2., aktualisierte Auflage
John Boxall
John Boxall
Lektorat: Thomas Rennich
Projektkoordinierung: Anja Weimer
Übersetzung&Satz: G&U Language & Publishing Services GmbH, Flensburg, www.GundU.com
Copy-Editing: Alexander Reischert, www.aluan.de
Herstellung: Stefanie Weidner, Frank Heidt
Umschlaggestaltung: Helmut Kraus, www.exclam.de, nach Vorlage von No Starch Press Inc.
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
ISBN:
978-3-86490-918-4
978-3-96910-788-1
ePub
978-3-96910-789-8
mobi
978-3-96910-790-4
2., aktualisierte Auflage 2022
Translation Copyright für die deutschsprachige Ausgabe © 2022 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Copyright © 2021 by John Boxall. Title of English-language original: Arduino Workshop: A Hands-On Introduction with 65 Projects, 2nd Edition, ISBN 9781718500587, published by No Starch Press Inc. 245 8th Street, San Francisco, California United States 94103. The German-language edition Copyright © 2022 by dpunkt.verlag under license by No Starch Press Inc. All rights reserved.
Hinweis: Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.
Schreiben Sie uns:
Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag noch Übersetzer können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
5 4 3 2 1 0
Für die beiden Menschen, die stets an mich geglaubt haben:meine Mutter und meine liebste Kathleen
Danksagung
Kapitel 1: Einführung
Kapitel 2: Ein genauerer Blick auf den Arduino und die IDE
Kapitel 3: Erste Schritte
Kapitel 4: Grundbausteine
Kapitel 5: Funktionen
Kapitel 6: Zahlen, Variablen und arithmetische Operationen
Kapitel 7: Den Arduino erweitern
Kapitel 8: Numerische LED-Anzeigen und Matrizen
Kapitel 9: Flüssigkristallanzeigen
Kapitel 10: Ihre eigenen Arduino-Bibliotheken erstellen
Kapitel 11: Numerische Tastenfelder
Kapitel 12: Benutzereingaben über einen Touchscreen
Kapitel 13: Gestatten, Familie Arduino!
Kapitel 14: Motoren und Bewegung
Kapitel 15: GPS für den Arduino
Kapitel 16: Drahtlose Datenübertragung
Kapitel 17: Infrarot-Fernbedienungen
Kapitel 18: RFID-Transponder lesen
Kapitel 19: Datenbusse
Kapitel 20: Echtzeituhren
Kapitel 21: Das Internet
Kapitel 22: Mobilfunkkommunikation
Index
DANKSAGUNG
1
EINFÜHRUNG
Unendliche Möglichkeiten
Die Masse macht‘s
Teile und Zubehör
Benötigte Software
macOS
Windows 10
Ubuntu Linux
Sicherheit
Ausblick
2
EIN GENAUERER BLICK AUF DEN ARDUINO UND DIE IDE
Der Arduino
Die IDE
Der Befehlsbereich
Der Textbereich
Der Meldungsbereich
Ein erster Sketch in der IDE
Kommentare
Die Einrichtungsfunktion
Die Hardware steuern
Die Schleifenfunktion
Den Sketch überprüfen
Den Sketch hochladen und ausführen
Den Sketch bearbeiten
Ausblick
3
ERSTE SCHRITTE
Projekte planen
Elektrizität
Stromstärke
Spannung
Leistung
Elektronische Bauteile
Widerstände
Leuchtdioden (LEDs)
Steckplatinen
Projekt Nr. 1: LED-La-Ola
Der Algorithmus
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch ausführen
Verwenden von Variablen
Projekt Nr. 2: Wiederholungen mit for-Schleifen
Die Helligkeit der LEDs durch Pulsbreitenmodulation ändern
Projekt Nr. 3: PBM-Beispiel
Weitere elektronische Bauteile
Transistoren
Gleichrichterdioden
Relais
Schaltungen mit höherer Spannung
Ausblick
4
GRUNDBAUSTEINE
Schaltpläne
Symbole für die Bauteile
Leitungen in Schaltplänen
Schaltpläne analysieren
Kondensatoren
Die Kapazität von Kondensatoren
Kapazitätswerte ablesen
Arten von Kondensatoren
Digitale Eingänge
Projekt Nr. 4: Beispiel für digitale Eingänge
Der Algorithmus
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch verstehen
Konstanten mit #define erstellen
Digitale Eingangspins messen
Entscheidungen mit if
Mehr Entscheidungsmöglichkeiten mit if-else
Boolesche Variablen
Logische Vergleichsoperatoren
Zwei und mehr Vergleiche
Projekt Nr. 5: Eine Verkehrsampel
Das Ziel
Der Algorithmus
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch ausführen
Analoge und digitale Signale
Projekt Nr. 6: Ein Testgerät für Einzelzellenbatterien
Das Ziel
Der Algorithmus
Die Hardware
Der Schaltplan
Der Sketch
Rechnen mit dem Arduino
Fließkommavariablen
Vergleichsoperatoren für Berechnungen
Die Genauigkeit der Analogmessung durch eine Bezugsspannung verbessern
Externe Bezugsspannung
Interne Bezugsspannung
Regelbare Widerstände
Piezoelektrische Summer
Das Schaltplansymbol
Projekt Nr. 7: Einen Piezosummer ausprobieren
Projekt Nr. 8: Ein Thermometer mit Ampelanzeige
Das Ziel
Die Hardware
Der Schaltplan
Der Sketch
Ausblick
5
FUNKTIONEN
Projekt Nr. 9: Eine Funktion zur Wiederholung einer Aktion erstellen
Projekt Nr. 10: Eine Funktion mit einstellbarem Blinkvorgang erstellen
Funktionen zur Rückgabe von Werten
Projekt Nr. 11: Ein Thermometer mit Blinkcodeanzeige
Die Hardware
Der Schaltplan
Der Sketch
Daten vom Arduino im seriellen Monitor anzeigen
Der serielle Monitor
Projekt Nr. 12: Die Temperatur im seriellen Monitor anzeigen
Debugging im seriellen Monitor
Entscheidungen mit while-Anweisungen
while
do-while
Daten vom seriellen Monitor an den Arduino senden
Projekt Nr. 13: Eine Zahl mit 2 multiplizieren
long-Variablen
Projekt Nr. 14: long-Variablen verwenden
Ausblick
6
ZAHLEN, VARIABLEN UND ARITHMETISCHE OPERATIONEN
Zufallszahlen generieren
Zufallszahlen aus dem Umgebungsstrom generieren
Projekt Nr. 15: Einen elektronischen Würfel erstellen
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch ändern
Schnellkurs in Binärzahlen
Binärzahlen
Bytevariablen
Erweitern der digitalen Ausgänge mit Schieberegistern
Projekt Nr. 16: Eine Binärzahlenanzeige aus LEDs bauen
Die Hardware
Der Schaltplan
Der Sketch
Projekt Nr. 17: Ein Binärzahlenquiz konstruieren
Der Algorithmus
Der Sketch
Arrays
Arrays definieren
Auf Werte in Arrays verweisen
In Arrays lesen und schreiben
Siebensegmentanzeigen
Die LEDs steuern
Projekt Nr. 18: Eine einstellige Anzeige konstruieren
Die Hardware
Der Schaltplan
Der Sketch
Zweistellige Zahlen anzeigen
Projekt Nr. 19: Zwei Siebensegmentanzeigen steuern
Die Hardware
Der Schaltplan
Modulo
Projekt Nr. 20: Ein Digitalthermometer konstruieren
Die Hardware
Der Sketch
Ausblick
7
DEN ARDUINO ERWEITERN
Shields
ProtoShield
Projekt 21: Ein individuelles Shield erstellen
Die Hardware
Der Schaltplan
Das Layout des ProtoShields
Das Design
Die Bauteile festlöten
Testen des ProtoShields
Sketche durch Bibliotheken erweitern
Eine Arduino-Bibliothek als ZIP-Datei herunterladen
Eine Arduino-Bibliothek mit dem Library Manager importieren
SD-Speicherkarten
Das Kartenmodul anschließen
Ihre SD-Karte testen
Projekt 22: Daten auf die Speicherkarte schreiben
Der Sketch
Projekt Nr. 23: Ein Gerät zur Temperaturaufzeichnung konstruieren
Die Hardware
Der Sketch
Zeitmessung mit millis() und micros()
Projekt Nr. 31: Eine Stoppuhr konstruieren
Die Hardware
Der Schaltplan
Der Sketch
Interrupts
Interrupt-Modi
Interrupts einrichten
Interrupts aktivieren und deaktivieren
Projekt Nr. 25: Interrupts verwenden
Der Sketch
Ausblick
8
NUMERISCHE LED-ANZEIGEN UND MATRIZEN
Numerische LED-Anzeigen
Die Bibliothek installieren
Projekt Nr. 26: Digitale Stoppuhr
Projekt Nr. 27: LED-Matrix-Module verwenden
Installieren der Bibliothek
Die Display-Schriftart bearbeiten
Ausblick
9
FLÜSSIGKRISTALLANZEIGEN
LCD-Module
Ein LCD in einem Sketch verwenden
Text anzeigen
Variablen und Zahlen anzeigen
Projekt Nr. 28: Eigene Zeichen definieren
LCD-Grafikmodule
Das LCD-Grafikmodul anschließen
Das LCD verwenden
Die Anzeige steuern
Projekt Nr. 29: Textfunktionen in Aktion
Der Sketch
Den Sketch ausführen
Komplexere Anzeigeeffekte mit Grafikfunktionen erstellen
Projekt Nr. 30: Die Grafikfunktionen in Aktion
Der Sketch
Projekt Nr. 31: Eine Temperaturverlaufskurve aufzeichnen
Der Algorithmus
Die Hardware
Der Sketch
Den Sketch ausführen
Den Sketch ändern
Ausblick
10
IHRE EIGENEN ARDUINO-BIBLIOTHEKEN ERSTELLEN
Ihre erste Arduino-Bibliothek erstellen
Aufbau einer Arduino-Bibliothek
Die Header-Datei
Die Quelldatei
Die Datei KEYWORDS.TXT
Ihre neue Arduino-Bibliothek installieren
Erstellen einer ZIP-Datei mit Windows 7 und höher
Erstellen einer ZIP-Datei mit macOS oder später
Ihre neue Bibliothek installieren
Eine Bibliothek erstellen, die Werte annimmt, um eine Funktion auszuführen
Eine Bibliothek erstellen, die Sensorwerte verarbeitet und anzeigt
Ausblick
11
NUMERISCHE TASTENFELDER
Numerische Tastenfelder verwenden
Ein Tastenfeld anschließen
Programme für das Tastenfeld schreiben
Den Sketch testen
Entscheidungen mit switch-case
Projekt Nr. 32: Ein Schloss mit Tastenfeld konstruieren
Der Sketch
Funktionsweise
Den Sketch testen
Ausblick
12
BENUTZEREINGABEN ÜBER EINEN TOUCHSCREEN
Touchscreens
Den Touchscreen anschließen
Projekt Nr. 33: Bereiche auf dem Touchscreen ansprechen
Die Hardware
Der Sketch
Den Sketch testen
Den Touchscreen kalibrieren
Projekt Nr. 34: Einen Ein/Aus-Schalter mit zwei Zonen entwerfen
Der Sketch
Funktionsweise
Den Sketch testen
Die Funktion map()
Projekt Nr. 35: Einen Schalter mit drei Berührungszonen entwerfen
Die Touchscreen-Karte
Der Sketch
Den Sketch verstehen
Ausblick
13
GESTATTEN, FAMILIE ARDUINO!
Projekt Nr. 36: Einen eigenen Steckplatinen-Arduino bauen
Die Hardware
Der Schaltplan
Den Sketch ausführen
Die zahlreichen verschiedenen Arduino-Platinen
Arduino Uno
Freetronics Eleven
Der Adafruit Pro Trinket
Der Arduino Nano
Der Arduino LilyPad
Der Arduino Mega 2560
Der Freetronics EtherMega
Der Arduino Due
Ausblick
14
MOTOREN UND BEWEGUNG
Kleine Bewegungen mithilfe von Stellmotoren
Stellmotoren auswählen
Einen Stellmotor anschließen
Den Stellmotor in Bewegung setzen
Projekt Nr. 37: Ein Zeigerthermometer bauen
Die Hardware
Der Schaltplan
Der Sketch
E-Motoren
Einen Motor auswählen
Der Darlington-Transistor TIP120
Projekt Nr. 38: Den Motor steuern
Die Hardware
Der Schaltplan
Der Sketch
Kleine Schrittmotoren
Projekt Nr. 39: Ein Roboterfahrzeug bauen und steuern
Die Hardware
Der Schaltplan
Das Motor-Shield anschließen
Der Sketch
Anschließen weiterer Hardware
Kollisionserkennung
Projekt Nr. 40: Kollisionen mithilfe eines Mikroschalters erkennen
Der Schaltplan
Der Sketch
Infrarotsensoren zur Abstandsmessung
Verkabelung
Den IR-Abstandssensor testen
Projekt Nr. 41: Kollisionen mithilfe eines IR-Abstandssensors verhindern
Der Sketch
Den Sketch modifizieren und weitere Sensoren anschließen
Ultraschallsensoren
Den Ultraschallsensor anschließen
Den Ultraschallsensor testen
Projekt Nr. 42: Kollisionen mithilfe eines Ultraschall-Abstandssensors verhindern
Der Sketch
Ausblick
15
GPS FÜR DEN ARDUINO
Was ist GPS?
Den GPS-Shield testen
Projekt Nr. 43: Einen einfachen GPS-Empfänger bauen
Die Hardware
Der Sketch
Den Sketch ausführen
Projekt Nr. 44: Eine genaue GPS-gestützte Uhr konstruieren
Die Hardware
Der Sketch
Projekt Nr. 45: Den Bewegungsverlauf eines Objekts aufzeichnen
Die Hardware
Der Sketch
Den Sketch ausführen
Ausblick
16
DRAHTLOSE DATENÜBERTRAGUNG
Preiswerte Module für die drahtlose Datenübertragung
Projekt Nr. 46: Eine drahtlose Fernbedienung konstruieren
Die Hardware des Senders
Der Schaltplan des Senders
Die Hardware des Empfängers
Der Schaltplan des Empfängers
Der Sketch des Senders
Der Sketch des Empfängers
LoRa-Funkdatenmodule für größere Reichweite und höhere Geschwindigkeit
Projekt Nr. 47: Fernsteuern über LoRa Wireless
Die Hardware des Senders
Der Schaltplan des Senders
Die Hardware des Empfängers
Der Schaltplan des Empfängers
Der Sketch des Senders
Der Sketch des Empfängers
Projekt Nr. 48: Fernsteuern über LoRa mit Bestätigung
Die Hardware des Senders
Der Schaltplan des Senders
Der Sketch des Senders
Der Sketch des Empfängers
Projekt Nr. 49: Übertragung von Sensordaten über eine drahtlose LoRa-Verbindung
Die Hardware des Senders
Die Hardware des Empfängers
Der Schaltplan des Empfängers
Der Sketch des Senders
Der Sketch des Empfängers
Ausblick
17
INFRAROT-FERNBEDIENUNGEN
Was ist Infrarot?
Vorbereitung für die Infrarotübertragung
Der IR-Empfänger
Die Fernbedienung
Der Testsketch
Den Sketch testen
Projekt Nr. 50: Den Arduino fernsteuern
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch erweitern
Projekt Nr. 51: Ein Raupenfahrzeug fernsteuern
Die Hardware
Der Sketch
Ausblick
18
RFID-TRANSPONDER LESEN
Das Innenleben von RFID-Transpondern
Die Hardware testen
Der Schaltplan
Die Schaltung prüfen
Der Test-Sketch
Anzeigen der ID-Nummer der RFID-Transponder
Projekt Nr. 52: Ein einfaches RFID-Steuerungssystem konstruieren
Der Sketch
Funktionsweise
Daten im eingebauten EEPROM des Arduino speichern
Lesen und Schreiben im EEPROM
Projekt Nr. 53: Ein RFID-Steuerungssystem konstruieren, das sich die letzte Aktion merkt
Der Sketch
Funktionsweise
Ausblick
19
DATENBUSSE
Der I2C-Bus
Projekt Nr. 54: Einen externen EEPROM verwenden
Die Hardware
Der Schaltplan
Der Sketch
Das Ergebnis
Projekt Nr. 55: Einen IC zur Porterweiterung verwenden
Die Hardware
Der Schaltplan
Der Sketch
Der SPI-Bus
Die Anschlüsse
Den SPI-Bus nutzen
Daten an ein SPI-Gerät senden
Projekt Nr. 56: Ein Digitalpotenziometer verwenden
Die Hardware
Der Schaltplan
Der Sketch
Ausblick
20
ECHTZEITUHREN
Der Anschluss des RTC-Moduls
Projekt Nr. 57: Datum und Uhrzeit mit einem RTC-Modul einstellen und anzeigen
Die Hardware
Der Sketch
Funktionsweise
Projekt Nr. 58: Eine einfache Digitaluhr bauen
Die Hardware
Der Sketch
Funktionsweise
Projekt Nr. 59: Eine Stechuhr konstruieren
Die Hardware
Der Sketch
Funktionsweise
Ausblick
21
DAS INTERNET
Erforderliches Material
Projekt Nr. 60: Eine Fernüberwachungsstation konstruieren
Die Hardware
Der Sketch
Fehlersuche
Funktionsweise
Projekt Nr. 61: Einen Arduino-Tweeter konstruieren
Die Hardware
Der Sketch
Den Arduino vom Web aus steuern
Projekt Nr. 62: Eine Fernsteuerung für den Arduino einrichten
Die Hardware
Der Sketch
Den Arduino fernsteuern
Ausblick
22
MOBILFUNKKOMMUNIKATION
Die Hardware
Hardware-Konfiguration und -Test
Projekt Nr. 63: Bau eines Arduino-Wählers
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch verstehen
Projekt Nr. 64: Bau eines Arduino SMS-Senders
Der Sketch
Den Sketch verstehen
Projekt Nr. 65: Eine SMS-Fernbedienung bauen
Die Hardware
Der Schaltplan
Der Sketch
Den Sketch verstehen
Ausblick
INDEX
An erster Stelle ein großes Dankeschön an das Arduino-Team: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino und David Mellis. Ohne eure Vorstellungskraft, eure Ideen und harte Arbeit wäre all dies nicht möglich.
Vielen Dank auch an meinen Fachgutachter Marc Alexander für seine Beiträge, Fachkenntnisse, Vorschläge, Unterstützung, Ideen und die langen Gespräche – und für seine Zähigkeit, ein so umfangreiches Projekt durchzustehen.
Ich möchte auch den folgenden Organisationen für die Bereitstellung von Bildern und für ihre Ermutigung danken: Adafruit Industries, Agilent Technologies, Gravitech, Freetronics, oomlout, Seeed Studio, Sharp Corporation und SparkFun. An Freetronics geht dabei noch ein zusätzliches Dankeschön für die hervorragenden Hardwareprodukte. Außerdem möchte ich bei all jenen danken, die viel Zeit in die Entwicklung der Arduino-Bibliotheken gesteckt und uns allen damit das Leben erleichtert haben.
Hut ab vor dem Team von Fritzing und ein Dankeschön für das wunderbare Open-Source-Programm zur Konstruktion von Schaltplänen, das ich in diesem Buch benutzt habe.
Außerdem möchte ich (ohne besondere Reihenfolge) den folgenden Personen danken, die mir Ermutigung, Anregung und Unterstützung geboten haben: Iraphne Childs, Limor Fried, Jonathan Oxer, Philip Lindsay, Nicole Kilah, Ken Shirriff, Nathan Kennedy, David Jones und Nathan Seidle.
Abschließend geht mein Dank noch an alle Mitarbeiter von No Starch Press, vor allem an Sondra Silverhawk, die mir dieses Buch vorschlug, an Serena Young für die engagierte Bearbeitung des Textes und an Bill Pollock für seine Unterstützung und Anleitung sowie dafür, dass er mich manchmal davon überzeugen konnte, dass es noch bessere Möglichkeiten gibt, um etwas zu erklären.
Haben Sie sich beim Anblick eines technischen Geräts – etwa bei einem ferngesteuerten Bootsmodell, einer Liftsteuerung, einem Verkaufsautomaten oder einem elektronischen Spielzeug – jemals gefragt, wie es funktioniert? Haben Sie jemals den Wunsch verspürt, einen eigenen Roboter, einen elektronischen Signalgeber für eine Modelleisenbahn oder ein System zu bauen, um Wetterdaten aufzuzeichnen und zu analysieren?
Die Arduino-Platine (die Sie in Abb. 1–1 sehen) bietet Ihnen Gelegenheit, einige Geheimnisse der Elektronik auf praktische Weise zu erforschen. Das ursprünglich von Massimo Banzi und David Cuartielles erfundene System Arduino stellt eine günstige Möglichkeit dar, um interaktive Projekte wie ferngesteuerte Roboter, GPS-Ortungssysteme und elektronische Spiele zu konstruieren.
Seit der Einführung im Jahr 2005 ist das Arduino-Projekt exponentiell zu einem blühenden Geschäft gewachsen. Unterstützt wird es durch eine Community von Personen, die den gemeinsamen Wunsch haben, Neues zu erschaffen. Einzelpersonen und Gruppen, von Interessengruppen über Vereine und lokale Hackergemeinschaften bis zu pädagogischen Einrichtungen, zeigen Interesse am Experimentieren mit Arduino.
Abb. 1–1Die Arduino-Platine
Um einen Eindruck von der Vielfalt der weltweiten Arduino-Projekte zu bekommen, suchen Sie einfach im Internet. Dort finden Sie eine unglaubliche Anzahl von Projekten, Blogs, Erfahrungsberichten und Ideen, die zeigen, was mit dem Arduino alles möglich ist.
Ein kurzer Blick in dieses Buch wird Ihnen zeigen, dass Sie den Arduino für etwas so Simples wie das Blinken eines kleinen Lämpchens oder etwas so Kompliziertes wie die Interaktion mit einem Mobiltelefon verwenden können – und viele verschiedene Dinge dazwischen.
Sehen Sie sich zum Beispiel das Wi-Fi Weather Display von Becky Stern an, von dem in Abbildung 1–2 verschiedene Beispiele gezeigt werden. Es verwendet ein Arduino-kompatibles Board mit einer Wi-Fi-Schnittstelle, um die lokale Wettervorhersage zu empfangen. Es zeigt dann die Höchsttemperatur des Tages an und lässt ein farbiges Dreieck aufleuchten, um die Wettervorhersage für den Tag anzuzeigen.
Abb. 1–1Verschiedene Beispiele für die Darstellung von Wettervorhersagen
Dank der einfachen Zugriffsmöglichkeiten auf verschiedene internetbasierte Informationsdienste können Sie damit auch andere Daten als das Wetter anzeigen. Weitere Informationen finden Sie unter https://www.instructables.com/id/WiFi-Weather-Display-With-ESP8266/.
Wie wäre es, einen klassischen Computer aus der Vergangenheit zu nachzubauen? Dank der Leistung des internen Prozessors des Arduino können Sie Computer aus vergangenen Zeiten emulieren. Ein Beispiel dafür ist der KIM Uno von Oscar Vermeulen (Abbildung 1–3), der den KIM-1 Computer von 1976 emuliert. Besuchen Sie https://en.wikipedia.org/wiki/KIM-1, um mehr zu erfahren.
Abb. 1–1Ein Arduino-gesteuerter KIM-1-Emulator
Wenn Sie dieses Projekt bauen, verstehen Sie, wie die ersten Mikroprozessoren funktionierten, und das gibt Ihnen die Grundlage, um die Computer von heute zu verstehen. Sie können den Kim Uno sehr günstig nachbauen, sodass dieses Projekt ideal ist, um es mit anderen technisch Interessierten zu teilen. Weitere Informationen finden Sie unter https://obsolescence.wixsite.com/obsolescence/kim-uno-summary-c1uuh/.
Und dann ist da noch Michalis Vasilakis, der auch Spaß daran hat, seine eigenen Werkzeuge mit geringem Budget zu bauen. Ein großartiges Beispiel ist sein Arduino Mini CNC-Plotter. Bei diesem Projekt werden ein Arduino, Bauteile aus alten CD-Laufwerken und andere preiswerte Teile verwendet, um ein CNC-Gerät (Computer Numerical Control) zu bauen, das präzise auf einer ebenen Fläche zeichnen kann (siehe Abbildung 1–4). Weitere Informationen finden Sie unter http://www.ardumotive.com/new-cnc-plotter.html.
Abb. 1–1Der Arduino Mini CNC-Plotter
Dies sind nur ein paar beliebige Beispiele dafür, was mit einem Arduino alles möglich ist. Sie können Ihre eigenen einfachen Projekte ohne große Schwierigkeiten erstellen - und nachdem Sie dieses Buch durchgearbeitet haben, werden auch komplexere Projekte für Sie in greifbarer Nähe sein.
Wenn Sie sich eher für soziale Kontakte interessieren und gerne in einer Gruppe lernen, suchen Sie im Internet nach einem lokalen Hacker-Club oder einer Gruppe von Enthusiasten, um zu sehen, was die Leute so machen und um Arduino-Gruppen zu finden. Mitglieder von Arduino-Gruppen können z. B. die Welt von Arduino aus der Perspektive eines Künstlers erklären oder gemeinsam an einem kleinen Arduino-kompatiblen Board arbeiten. Diese Gruppen können eine Menge Spaß machen, Sie mit interessanten Leuten zusammenbringen und Sie können Ihr Arduino-Wissen mit anderen teilen.
HINWEIS
Sie können die Skizzendateien auch auf der Website des Buches herunterladen und auch alle Updates: https://nostarch.com/arduino-workshop-2nd-edition/.
Wie jedes andere elektronische Gerät ist auch der Arduino bei vielen Händlern erhältlich, die eine Vielzahl von Geräten und Zubehör anbieten. Achten Sie beim Einkaufen darauf, dass Sie den Original-Arduino oder ein anderes hochwertiges Modell kaufen.
Andernfalls laufen Sie Gefahr, fehlerhafte oder schlecht funktionierende Ware zu erhalten. Warum sollten Sie Ihr Projekt mit einem minderwertigen Board riskieren, das Sie auf lange Sicht mehr kosten könnte? Eine Liste der autorisierten Arduino-Händler finden Sie unter http://arduino.cc/en/Main/Buy/.
Hier folgt eine Liste aktueller Lieferanten (in alphabetischer Reihenfolge), die ich Ihnen für den Kauf von Arduino-bezogenen Teilen und Zubehör empfehle:
Adafruit Industries
(
http://www.adafruit.com/
)
Arduino Store USA
(
https://store.arduino.cc/usa/
)
PMD Way
(
http://pmdway.com/
)
SparkFun Electronics
(
https://sparkfun.com/
)
Sie können eine Liste der in diesem Buch verwendeten Teile herunterladen und auch alle Updates auf der Website zum Buch finden: https://nostarch.com/arduino-workshop-2nd-edition/. Alle benötigten Teile sind bei den oben genannten Händlern sowie bei anderen Anbietern, die Sie vielleicht schon kennen, leicht erhältlich.
Aber gehen Sie noch nicht einkaufen. Nehmen Sie sich die Zeit, die ersten Kapitel zu lesen, um eine Vorstellung davon zu bekommen, was Sie benötigen, damit Sie kein Geld für den Kauf unnötiger Dinge verschwenden.
Sie sollten in der Lage sein, Ihren Arduino mit so gut wie jedem Computer zu programmieren. Zunächst müssen Sie eine Software installieren, die als integrierte Entwicklungsumgebung (IDE) bezeichnet wird. Um diese Software auszuführen, sollte Ihr Computer über eine Internetverbindung verfügen und eines der folgenden Betriebssysteme haben:
macOS 10.14 64-bit, oder höher
Windows 10 Home 32- oder 64-Bit oder höher
Linux 32- oder 64-Bit (Ubuntu oder ähnlich)
Die IDE wird seit 2005 weiterentwickelt und ist derzeit auf dem Stand von Version 2.x (die genaue Nummer kann sich ändern, aber die Anweisungen in diesem Buch sollten immer noch gelten). Im Vergleich zu Version 1.x verfügt Version 2.x über einige Funktionen, die das Schreiben und Bearbeiten von Sketchen erleichtern, darunter die interaktive Autovervollständigung, eine verbesserte Navigation durch Sketche und benutzerfreundlichere Board- und Bibliotheksmanager. Außerdem können Sie mit einem Live-Debugger Ihren Arduino-Sketch interaktiv starten und stoppen, wenn Sie ihn mit bestimmten Arduino-Boards verwenden. Wenn Sie jedoch neu in der Welt von Arduino sind, brauchen Sie sich um diese Funktionen keine Sorgen zu machen. Denken Sie einfach daran, dass das Arduino-Team und die Community ständig an Verbesserungen arbeiten.
Jetzt ist ein guter Zeitpunkt, um die IDE herunterzuladen und zu installieren. Gehen Sie also zu der Seite, die zu Ihrem Betriebssystem passt, und folgen Sie den Anweisungen. Vergewissern Sie sich, dass Sie auch das passende USB-Kabel für Ihren Arduino haben oder mitkaufen. Auch wenn Sie Ihr Arduino-Board noch nicht haben, können Sie die IDE herunterladen und ausprobieren.
In diesem Abschnitt finden Sie eine Anleitung zum Herunterladen und Konfigurieren der Arduino IDE unter macOS.
1. Besuchen Sie die Software-Download-Seite
(
https://www.arduino.cc/en/software/
)
und laden Sie die neueste verfügbare Version der IDE für Ihr Betriebssystem herunter.
2. Doppelklicken Sie auf die
Arduino.dmg
-Datei in Ihrem Download-Ordner. Wenn sich das Installationsfenster öffnet, ziehen Sie das Arduino-Symbol in den Ordner
Programme
.
3. Öffnen Sie die IDE, wie in
Abbildung 1–5
gezeigt.
Abb. 1–1Die IDE unter macOS
4. Jetzt konfigurieren Sie die IDE für das Arduino Uno Board. Klicken Sie auf das obere Symbol in der linken Seitenleiste der IDE, um den Board-Manager zu öffnen. Suchen Sie die Option, die den Arduino Uno enthält und klicken Sie auf
Installieren
.
5. Erweitern Sie das Dropdown-Menü am oberen Rand der IDE, das
No Board Selected
lautet, und wählen Sie
Select Other Board & Port
. Wählen Sie dann den Arduino Uno aus der Liste der Boards aus.
Möglicherweise werden Sie aufgefordert, die Command Line Developer Tools von Apple zu installieren.
Jetzt sind Ihre Hardware und Software bereit, für die nächsten Schritte. Fahren Sie nun fort mit «Sicherheit».
In diesem Abschnitt finden Sie eine Anleitung zum Herunterladen und Konfigurieren der IDE unter Windows.
Besuchen Sie die Software-Download-Seite
(
http://arduino.cc/en/software/
)
und laden Sie die neueste verfügbare Version der IDE für Ihr Betriebssystem herunter.
Ihre Browser-Software fordert Sie möglicherweise auf, die heruntergeladene Datei zu speichern oder auszuführen. Klicken Sie auf Ausführen, damit die Installation automatisch beginnt, sobald der Download abgeschlossen ist. Andernfalls starten Sie die
Arduino.exe
-Datei in Ihrem Download-Ordner, um die IDE zu installieren. Wenn Sie fertig sind, starten Sie die IDE.
Konfigurieren Sie nun die IDE für das Arduino Uno-Board. Klicken Sie auf das obere Symbol in der linken Seitenleiste der IDE, um den Board-Manager zu öffnen. Suchen Sie die Option, die den Arduino Uno enthält und klicken Sie auf
Installieren
.
Erweitern Sie das Dropdown-Menü am oberen Rand der IDE, das
No Board Selected
lautet, und wählen Sie
Select Other Board & Port
. Wählen Sie dann den Arduino Uno aus der Liste der Boards aus.
Nun, da Ihre Arduino IDE eingerichtet ist, können Sie mit »Sicherheit« fortfahren.
Wenn Sie mit Ubuntu Linux arbeiten, finden Sie hier eine Anleitung zum Herunterladen und Einrichten der Arduino IDE.
Besuchen Sie die Software-Download-Seite
(
http://arduino.cc/en/software/
)
und laden Sie die neueste verfügbare Version der IDE für Ihr Betriebssystem herunter.
Wenn Sie dazu aufgefordert werden, wählen Sie Datei speichern und klicken Sie auf OK.
Suchen Sie die Arduino .zip-Datei im Archiv-Manager und extrahieren Sie sie, indem Sie sie auf dem Desktop speichern.
Navigieren Sie in einem Terminalfenster zu dem extrahierten Ordner und geben Sie
./arduino-ide
ein, um die IDE zu starten.
Jetzt können Sie die IDE konfigurieren. Verbinden Sie Ihren Arduino über das USB-Kabel mit Ihrem PC.
Wählen Sie
Tools->Port
in der IDE und wählen Sie den Port /
dev
/
ttyACMx
, wobei x eine einzelne Ziffer ist (es sollte nur einen Port mit einem solchen Namen geben).
Wie bei jedem anderen Hobby oder Handwerk sind Sie für Ihre eigene Sicherheit und die Ihrer Umgebung verantwortlich. Im weiteren Verlauf dieses Buches beschreibe ich Arbeiten mit einfachen Werkzeugen, batteriebetriebenen elektrischen Geräten, scharfen Messern und manchmal auch Lötkolben. Basteln Sie bei der Arbeit an Ihren Projekten niemals an der Stromversorgung herum, sondern überlassen Sie so etwas einem ausgebildeten Elektriker. Denken Sie daran, dass Kontakt mit dem Netzstrom tödlich sein kann.
Sie haben einen Weg vor sich, der sehr interessant ist und viel Spaß bereiten kann. Dabei werden Sie Dinge bauen, die Sie niemals für möglich gehalten haben. In diesem Buch finden Sie 65 Arduino-Projekte, von sehr einfachen bis zu ziemlich komplizierten. Alle sind darauf ausgelegt, Ihnen etwas beizubringen und etwas Nützliches zu konstruieren. Fangen wir also an!
In diesem Kapitel sehen wir uns die Arduino-Platine sowie die IDE genauer an. Letztere dient dazu, sogenannte Sketche (der Arduino-Begriff für ein Programm) zu erstellen und auf den Arduino hochzuladen. Sie lernen den grundlegenden Aufbau von Sketchen und einige einfache Funktionen kennen, die Sie darin verwenden können. Außerdem werden Sie einen ersten Sketch schreiben und hochladen.
Was genau ist ein Arduino? Laut der Arduino-Website (http://www.arduino.cc/) handelt es sich dabei um …
[…] eine Open-Source-Plattform auf der Grundlage einer flexiblen, leicht zu verwendenden Hardware und Software. Sie ist für alle Personen gedacht, die ein Interesse daran haben, interaktive Objekte oder Umgebungen zu gestalten.
Einfach ausgedrückt, ist der Arduino ein winziges Computersystem, das Sie mit Anweisungen programmieren können, sodass es auf verschiedene Arten von Eingaben reagiert und verschiedene Arten von Ausgaben hervorruft. Das aktuelle Arduino-Modell, der Uno, ist kleiner als eine Handfläche, wie Sie in Abbildung 2–1 sehen.
Abb. 2–2Der Arduino Uno ist ziemlich klein.
Für Uneingeweihte mag der Arduino nicht sehr beeindruckend aussehen, allerdings können Sie damit Geräte bauen, die mit der Umgebung in Wechselwirkung treten. Sie können eine fast unbegrenzte Palette von Eingabe- und Ausgabegeräten wie Sensoren, Indikatoren, Anzeigen, Motoren usw. verwenden und genau die Art von Wechselwirkung programmieren, die Sie für ein funktionierendes Gerät benötigen. Beispielsweise haben Künstler Installationen mit Mustern aus Blinklichtern geschaffen, die auf die Bewegungen von Passanten reagieren. Highschool-Schüler haben autonome Roboter gebaut, die offenes Feuer erkennen und löschen können. Geografen haben Systeme konstruiert, die Temperatur und Feuchtigkeit überwachen und die Messwerte als Textnachricht ans Büro schicken. Wenn Sie im Internet suchen, werden Sie fast endlos viele weitere Beispiele finden.
Als Erstes wollen wir uns die Hardware des Arduino Uno (also den »physischen Teil«) genauer ansehen. Machen Sie sich keine Sorgen, wenn Sie manche Einzelheiten noch nicht genau verstehen, denn wir werden uns in späteren Kapiteln ausführlicher damit beschäftigen.
Beginnen wir also mit einem kurzen Rundgang um den Uno. An der linken Seite der Platine fallen gleich die beiden Anschlüsse aus Abbildung 2–2 ins Auge.
Abb. 2–2Der USB- und der Stromanschluss
Links sehen Sie den USB-Anschluss (Universal Serial Bus), über den Sie die Platine mit Ihrem Computer verbinden können. Das dient drei verschiedenen Zwecken: Um die Platine mit Strom zu versorgen, um Ihre Anweisungen auf den Arduino hochzuladen und um Daten zum Computer zu senden und von ihm zu lesen. Rechts liegt der Stromanschluss. Darüber können Sie den Arduino über einen Standardadapter mit der Steckdose verbinden (die Spannung ist natürlich runtergeregelt auf 5 Volt).
Unten rechts finden Sie das Herz der Platine: den Mikrocontroller aus Abbildung 2–3.
Abb. 2–2Der Mikrocontroller
Dieser Mikrocontroller ist nicht nur das Herz, sondern auch das Gehirn des Arduino. Es handelt sich um einen winzigen Computer mit einem Prozessor zum Ausführen von Anweisungen, verschiedenen Arten von Arbeitsspeichern, um die Anweisungen von Sketchen festzuhalten, und verschiedenen Möglichkeiten zum Senden und Empfangen von Daten. Knapp unterhalb des Mikrocontrollers finden Sie zwei Reihen kleiner Anschlussbuchsen (siehe Abb. 2–4).
Abb. 2–2Strom- und Analoganschlüsse
Die linke Reihe bietet Möglichkeiten zum Stromanschluss und für die Verbindung mit einem externen Reset-Schalter. Die rechte umfasst sechs analoge Eingänge, die zur Messung von elektrischen Signalen mit unterschiedlicher Spannung dienen. Außerdem können die Kontakte A4 und A5 verwendet werden, um Daten an andere Geräte zu senden und von ihnen zu empfangen.
An der oberen Kante der Platine befinden sich zwei weitere Anschlussreihen, die Sie in Abbildung 2–5 sehen.
Abb. 2–2Die Kontakte für den digitalen Eingang und Ausgang
Die von 0 bis 13 durchnummerierten Kontakte (Pins) sind digitale Ein-/ Ausgänge (I/O). Darüber können Sie erkennen, ob ein elektrisches Signal anliegt, oder ein solches Signal auf Befehl erzeugen. Die Pins 0 und 1 bilden auch den seriellen Port, der dazu dient, Signale an andere Geräte zu senden oder von ihnen zu empfangen, beispielsweise an einen/von einem Computer über USB. Die mit einer Tilde (~) beschrifteten Kontakte sind auch in der Lage, ein variables elektrisches Signal abzugeben, was für Beleuchtungseffekte und die Steuerung von Elektromotoren praktisch ist.
Des Weiteren gibt es die sehr nützlichen Leuchtdioden (Light Emitting Diodes, LEDs). Diese winzigen Geräte leuchten auf, wenn Strom durch sie hindurchfließt. Der Arduino verfügt über vier LEDs: Die eine mit der Bezeichnung ON liegt ganz rechts und gibt an, ob die Platine Strom hat, die drei anderen sind zu einer Gruppe zusammengefasst (siehe Abb. 2–6).
Die LEDs TX und RX leuchten, wenn Daten über den seriellen Port oder den USB-Anschluss zwischen dem Arduino und den angeschlossenen Geräten übertragen werden. Die LED L ist für Ihre eigenen Zwecke vorgesehen. (Sie ist mit dem digitalen E/A-Kontakt 13 verbunden.) Das kleine, schwarze, viereckige Bauteil links neben den LEDs ist ein winziger Mikrocontroller, der die USB-Schnittstelle steuert, über die der Arduino Daten an einen Computer senden und von ihm empfangen kann. Darum müssen Sie sich normalerweise aber nicht kümmern.
Abb. 2–2Die LEDs auf der Platine
Schließlich gibt es noch den Reset-Schalter aus Abbildung 2–7.
Wie bei einem normalen Computer kann auch auf dem Arduino manchmal etwas schiefgehen. Wenn alle anderen Maßnahmen versagen, haben Sie noch die Möglichkeit, das System zurückzusetzen und den Arduino neu zu starten. Dazu dient der einfache Reset-Schalter auf der Platine (siehe Abb. 2–7).
Einer der großen Vorteile des Arduino-Systems ist die leichte Erweiterbarkeit. Es ist ganz einfach möglich, weitere Hardwarefunktionen hinzuzufügen. Auf die beiden Anschlussreihen an den Kanten des Arduino können Sie einen Shield aufstecken, eine weitere Platine mit Kontaktstiften, die in die Buchsen der Anschlüsse am Arduino passen. Der Shield aus Abbildung 2–8 beispielsweise enthält eine Ethernet-Schnittstelle, mit deren Hilfe der Arduino mit Netzwerken und dem Internet kommunizieren kann. Außerdem enthält er viel Platz für eigene Schaltungen.
Abb. 2–2Der Reset-Schalter
Abb. 2–2Arduino-Shield mit Ethernet-Schnittstelle
Wie Sie sehen, verfügt auch der Ethernet-Shield über die Anschlussreihen, sodass Sie weitere Shields darauf stapeln können. In Abbildung 2–9 wurde beispielsweise ein Shield mit einer großen numerischen Anzeige, einem Temperatursensor, einem zusätzlichen Datenspeicher und einer großen LED aufgesteckt.
Abb. 2–2Shield mit numerischer Anzeige und Temperatursensor
Sie müssen beachten, welche Shields welche Ein- und Ausgänge nutzen, damit es nicht zu Konflikten kommt. Außerdem ist es möglich, ganz leere Shields zu kaufen, auf denen Sie Ihre eigenen Schaltungen aufbauen. Mehr darüber erfahren Sie in Kapitel 7.
Im ersten Kapitel haben Sie die integrierte Entwicklungsumgebung (IDE) auf Ihrem Computer eingerichtet und diese für Ihren Arduino konfiguriert. Nun werfen Sie einen genaueren Blick auf die IDE und schreiben selbst ein einfaches Programm – auch bekannt als Arduino-Sketch.
Wie Abbildung 2–10 zeigt, sieht die Arduino-IDE wie ein einfaches Textverarbeitungsprogramm aus. Sie besteht aus drei Hauptbereichen: dem Befehls-, dem Text- und dem Meldungsbereich.
Abb. 2–2Die Arduino-IDE
Der Befehlsbereich, den Sie oben in Abbildung 2–10 sehen, enthält die Titelleiste, das Menü und die Symbole. Die Titelleiste zeigt den Dateinamen des jeweiligen Sketches (Blink) sowie die Version der IDE an (Arduino 2.0.0-beta.4). Darunter finden Sie eine Reihe von Menüelementen (File, Edit, Sketch, Tools und Help) und Symbole, die im Folgenden beschrieben werden.
Wie bei Textverarbeitungsprogrammen und Editoren können Sie auf die einzelnen Menüelemente klicken, um sich die verfügbaren Optionen anzusehen.
File
Enthält die Optionen zum Speichern, Laden und Drucken von Sketchen. Außerdem finden Sie hier eine umfassende Sammlung von Beispielsketchen, die Sie öffnen können, und das Untermenü
Preferences
mit Voreinstellungen.
Edit
Enthält die üblichen Befehle zum Kopieren, Einfügen und Suchen, die Sie auch in jeder Textverarbeitung finden.
Sketch
Enthält Funktionen zum Überprüfen der Sketche vor dem Hochladen auf die Platine sowie Optionen für Sketchordner und den Import.
Tools
Enthält verschiedene Funktionen sowie Befehle zur Auswahl des Platinentyps und des USB-Anschlusses.
Help
Enthält Links zu verschiedenen Themen und nennt die Version der IDE.
Unter der Menüleiste finden Sie sechs Symbole. Wenn Sie mit dem Mauszeiger darüberfahren, werden ihre Namen angezeigt. Von links nach rechts haben wir folgende Symbole:
Verify
Klicken Sie hierauf, um zu prüfen, ob der Arduino-Sketch gültig ist oder irgendwelche Programmierfehler enthält.
Upload
Hiermit wird der Sketch überprüft und auf die Arduino-Platine hochgeladen.
New
Öffnet einen neuen, leeren Sketch in einem neuen Fenster.
Debug
Wird bei komplexeren Arduino-Boards für Echtzeit-Debugging benutzt.
Open
Öffnet einen gespeicherten Sketch.
Save
Speichert den geöffneten Sketch. Hat der Sketch noch keinen Namen, werden Sie dazu aufgefordert, einen anzugeben.
Serial Monitor
Öffnet ein neues Fenster zum Übertragen von Daten zwischen Arduino und IDE.
Den Textbereich sehen Sie in der Mitte von Abbildung 2–10. Hier schreiben Sie Ihre Sketche. Der Name des aktuellen Sketches wird auf dem Reiter oben links im Textbereich angegeben. (Der Standardname besteht aus dem aktuellen Datum.) Den Inhalt des Sketches geben Sie hier wie in einer Textverarbeitung ein.
Den Meldungsbereich sehen Sie unten in Abbildung 2–10. Meldungen der IDE werden auf der schwarzen Fläche angezeigt. Dabei kann es sich um Mitteilungen über die Überprüfung von Sketchen, über Statusmeldungen usw. handeln.
Unten rechts im Meldungsbereich werden der Platinentyp Ihres Arduino sowie der verwendete USB-Anschluss angezeigt – hier Arduino Duemilanove w/ATmega328 on COM6.
Ein Arduino-Sketch ist ein Satz von Anweisungen, die Sie zusammenstellen, um eine bestimmte Aufgabe zu erledigen; mit anderen Worten: ein Programm. In diesem Abschnitt erstellen Sie einen einfachen Sketch, der dafür sorgt, dass eine LED des Arduino (siehe Abb. 2–11) wiederholt blinkt, indem er sie in Abständen von einer Sekunde ein- und ausschaltet. Außerdem laden Sie den Sketch auf die Platine hoch.
Abb. 2–2Die mit L gekennzeichnete LED auf der Arduino-Platine
HINWEIS
Die einzelnen Befehle in dem hier vorgestellten Beispielsketch müssen Sie noch nicht genau verstehen. Wie wollen Ihnen zunächst nur zeigen, wie einfach es ist, den Arduino etwas tun zu lassen, um Ihr Interesse für die komplizierteren Dinge zu wecken.
Als Erstes schließen Sie den Arduino über das USB-Kabel an den Computer an. Öffnen Sie die IDE, wählen Sie das Board aus (in diesem Fall Arduino Uno) und dann den richtigen USB-Anschluss im Menü. Dadurch wird für eine korrekte Verbindung mit dem Arduino gesorgt.
Abb. 2–2Das Arduino Uno Board auswählen
Als Erstes fügen Sie einen Kommentar ein, in dem Sie festhalten, wozu der Sketch dient. Kommentare sind Hinweise von beliebiger Länge, die sich an den Leser des Sketches richten. Damit können Sie Anmerkungen für sich selbst und für andere hinterlegen, Anleitung geben und auf verschiedene Einzelheiten hinweisen. Wenn Sie Ihren Arduino programmieren (also Sketche schreiben), sollten Sie stets Kommentare einfügen, um deutlich zu machen, was Sie tun. Das kann sich als sehr hilfreich erweisen, wenn Sie sich später erneut mit dem Sketch befassen.
Um einen einzeiligen Kommentar hinzuzufügen, geben Sie zwei Schrägstriche ein und schreiben den Kommentar dann dahinter:
// Blink-LED-Sketch von Mary Smith, erstellt am 07.01.21
Die beiden Schrägstriche weisen die IDE an, den darauf folgenden Text beim Überprüfen des Sketches zu ignorieren. (Wie bereits erwähnt, untersucht die IDE bei diesem Vorgang, ob alles korrekt und fehlerfrei geschrieben ist.)
Soll ein Kommentar mehrere Zeilen umfassen, müssen Sie ihn in der ersten dieser Zeilen mit /* einleiten und in der letzten mit */ abschließen:
/*
Arduino-Blink-LED-Sketch
von Mary Smith, erstellt am 07.01.21
*/
Wie die beiden Schrägstriche, die einen einzeiligen Kommentar einleiten, weisen auch die Zeichenfolgen /* und */ die IDE an, den Text dazwischen zu ignorieren.
Geben Sie mit einer dieser beiden Methoden in einem Kommentar den Zweck des Sketches ein und speichern Sie das Programm über File > Save as. Geben Sie einen kurzen Namen für den Sketch ein (z. B. blinky) und klicken Sie auf OK.
Die Standard-Dateinamenerweiterung für Arduino-Sketche ist .ino, was von der IDE automatisch hinzugefügt wird. Der vollständige Name in unserem Beispiel lautet also blinky.ino und sollte im Sketchbook angezeigt werden.
Der nächste Schritt beim Schreiben eines Sketches besteht immer darin, die Funktion void setup() hinzuzufügen. Sie enthält eine Reihe von Anweisungen, die der Arduino einmalig ausführt, wenn er zurückgesetzt oder eingeschaltet wird. Um diese Einrichtungsfunktion zu erstellen, fügen Sie hinter dem Kommentar folgende Zeilen in den Sketch ein:
void setup()
{
}
Unser Programm soll die Benutzer-LED auf dem Arduino blinken lassen, die mit dem digitalen Pin 13 verbunden ist. Ein solcher Pin kann entweder ein elektrisches Signal erkennen oder selbst ein solches hervorrufen. In diesem Objekt erzeugen wir ein elektrisches Signal, das die LED zum Leuchten bringt. Das mag sich jetzt etwas kompliziert anhören, aber Sie werden in den kommenden Kapiteln noch Genaueres über die digitalen Pins erfahren. Zunächst einmal fahren Sie einfach damit fort, den Sketch zu schreiben.
Geben Sie zwischen die geschweiften Klammern { und } Folgendes ein:
pinMode(13, OUTPUT); // Legt den digitalen Pin 13 als Ausgang fest
Die Nummer 13 gibt den Pin an, den Sie ansprechen wollen. Diesen Kontakt setzen Sie auf OUTPUT, das heißt, Sie legen ihn als Ausgang fest, an dem Sie ein elektrisches Signal generieren (ausgeben). Wenn Sie dagegen ein eingehendes elektrisches Signal erkennen wollen, müssen Sie INPUT verwenden. Beachten Sie, dass die Funktion pinMode mit einem Semikolon abgeschlossen wird. Das gilt für alle Funktionen in Arduino-Sketchen.
Speichern Sie den Sketch erneut, damit Sie die hinzugefügten Teile nicht verlieren.
Da wir die LED wiederholt blinken lassen wollen, müssen wir eine Schleifenfunktion (loop) erstellen, damit der Arduino eine Anweisung immer und immer wieder ausführt, bis der Strom abgeschaltet oder die Reset-Taste betätigt wird.
Geben Sie den fett gedruckten Code ein, der im folgenden Listing hinter dem Abschnitt von void setup() steht, um eine leere Schleifenfunktion zu erstellen. Achten Sie darauf, dass der neue Abschnitt mit einer schließenden geschweiften Klammer (}) endet, und speichern Sie den Sketch.
/*
Arduino Blink LED Sketch
by Mary Smith, created 09/09/12
*/
void setup()
{
pinMode(13, OUTPUT); // Legt den digitalen Pin 13 als Ausgang fest
}
void loop()
{
// Hierhin kommt der Code für die Schleife
}
WARNUNG
Die Arduino-IDE führt keine automatische Zwischenspeicherung Ihrer Sketche durch, weshalb Sie regelmäßig speichern sollten!
Als Nächstes geben Sie in void loop() die Funktionen ein, die der Arduino ausführen soll.
Schreiben Sie den folgenden Code zwischen die geschweiften Klammern der loop-Funktion und klicken Sie dann auf Verify, um sicherzustellen, dass Sie dabei keinen Fehler gemacht haben.
digitalWrite(13, HIGH); // Schaltet den digitalen Pin 13 ein
delay(1000); // Wartet eine Sekunde lang
digitalWrite(13, LOW); // Schaltet den digitalen Pin 13 aus
delay(1000); // Wartet eine Sekunde lang
Das wollen wir uns im Einzelnen ansehen. Die Funktion digitalWrite() legt die Spannung fest, die an einem digitalen Pin ausgegeben wird, in diesem Fall Pin 13 für die LED. Der zweite Parameter dieser Funktion lautet HIGH, wodurch eine »hohe« Spannung ausgegeben wird. Der Strom fließt von dem Pin zur LED und schaltet diese ein. (Wenn Sie den Parameter auf LOW setzen, wird der Stromfluss zur LED unterbrochen.)
Nachdem die LED eingeschaltet ist, leuchtet sie eine Sekunde lang, was durch delay(1000) erreicht wird. Die Funktion delay() sorgt dafür, dass in dem angegebenen Zeitraum (in unserem Fall also 1000 Millisekunden oder eine Sekunde) nichts geschieht.
Danach wird die Spannung an der LED mit digitalWrite(13, LOW); wieder ausgeschaltet. Abermals warten wir mit delay(1000) eine Sekunde lang. In diesem Zeitraum bleibt die LED ausgeschaltet.
Der vollständige Sketch sieht wie folgt aus:
/*
Arduino Blink LED Sketch
by Mary Smith, created 09/09/12
*/
void setup()
{
pinMode(13, OUTPUT); // Legt den digitalen Pin 13 als Ausgang fest
}
void loop()
{
digitalWrite(13, HIGH); // Schaltet den digitalen Pin 13 ein
delay(1000); // Wartet eine Sekunde lang
digitalWrite(13, LOW); // Schaltet den digitalen Pin 13 aus
delay(1000); // Wartet eine Sekunde lang
}
Bevor Sie weiterarbeiten, speichern Sie den Sketch!
Bei der Überprüfung wird untersucht, ob der Sketch auf eine Weise geschrieben ist, die der Arduino verstehen kann. Dazu klicken Sie in der IDE auf Verify und warten einen Augenblick. Nach der Überprüfung erscheint im Meldungsbereich eine Mitteilung wie in Abbildung 2–13.
Abb. 2–2Der Sketch wurde überprüft.
Die Meldung »Done compiling« (Kompilierung erfolgt) besagt, dass der Sketch in Ordnung ist und auf den Arduino hochgeladen werden kann. Außerdem wird angezeigt, wie viel Arbeitsspeicher er belegt (hier 924 Byte) und wie viel auf dem Arduino insgesamt zur Verfügung steht (32.256 Byte).
Was aber, wenn der Sketch nicht korrekt ist? Nehmen wir beispielsweise an, Sie haben das Semikolon am Ende der zweiten delay(1000)-Funktion vergessen. Wenn Sie auf Verify klicken und irgendetwas in Ihrem Sketch nicht stimmt, wird eine Fehlermeldung wie die in Abbildung 2–14 ausgegeben.
Abb. 2–2Ein Überprüfungsfehler im Meldungsbereich
Die Meldung gibt an, dass der Fehler in der Funktion void loop steckt. Außerdem wird angezeigt, dass der Fehler selbst ein fehlendes Semikolon ist mit der Ausgabe error: expected ';' before '}' token. Die IDE markiert zudem die Position des Fehlers oder eine Stelle gleich dahinter. Dadurch können Sie den Fehler schnell finden und beheben.
Wenn Sie sich vergewissert haben, dass der Sketch korrekt ist, speichern Sie ihn. Stellen Sie sicher, dass der Arduino angeschlossen ist, und klicken Sie in der IDE auf Upload. Möglicherweise überprüft die IDE den Sketch erneut, lädt ihn dann aber auf den Arduino hoch. Während dieses Vorgangs blinken die LEDs TX und RX auf der Platine (siehe Abb. 2–6), um anzuzeigen, dass Informationen zwischen dem Arduino und dem Computer übertragen werden.
Jetzt schlägt die Stunde der Wahrheit: Der Arduino sollte damit beginnen, den Sketch auszuführen. Wenn alles richtig funktioniert, sollte die LED im Sekundentakt blinken.
Herzlichen Glückwunsch! Sie kennen jetzt die Grundlagen, um Arduino-Sketche erstellen, überprüfen und hochladen zu können.
Nachdem Sie den Sketch ausgeführt haben, können Sie ihn abwandeln, indem Sie beispielsweise die Verzögerung zum Ein- und Ausschalten der LED ändern. Da die IDE ähnlich funktioniert wie eine Textverarbeitung, können Sie den gespeicherten Sketch einfach öffnen, die Werte anpassen, den Sketch wieder speichern und erneut auf den Arduino hochladen. Um beispielsweise den Blinkrhythmus zu beschleunigen, ändern Sie die beiden delay-Funktionen auf einen Wert von 250, sodass die LED im Viertelsekundentakt aufleuchtet und erlischt.
delay(250); // Wartet eine Viertelsekunde lang
Laden Sie den Sketch erneut hoch. Die LED sollte jetzt schneller blinken und jeweils eine Viertelsekunde lang ein- und ausgeschaltet sein.
Mit Ihren neuen Kenntnissen darüber, wie Sie Arduino-Sketche schreiben, bearbeiten, speichern und hochladen, sind Sie nun bereit, in den nächsten Kapiteln zu lernen, wie Sie weitere Funktionen einsetzen, Ihre Projekte sauber gestalten, einfache elektronische Schaltkreise konstruieren usw.
In diesem Kapitel lernen Sie Folgendes:
Grundlagen einer sauberen Projektgestaltung
Grundlagen der Elektrizitätslehre
Funktion von Widerständen, Leuchtdioden, Transistoren, Gleichrichterdioden und Relais
Verwendung von Steckplatinen für die Konstruktion von Schaltungen
Verwendung von Integervariablen,
for
-Schleifen und digitalen Ausgängen für verschiedene Arten von LED-Effekten
Als Nächstes werden Sie Ihren Arduino zum Leben erwecken. Dabei geht es um mehr als nur um die Platine als solche. Sie werden lernen, wie Sie Ihre Projekte planen, um Ihre Vorstellungen in die Realität umzusetzen. Anschließend erhalten Sie eine Einführung in die Elektrizitätslehre. Elektrischer Strom ist die Grundlage für alles, was wir in diesem Buch tun, weshalb es wichtig ist, für Ihre eigenen Projekte ein solides Verständnis der Grundlagen mitzubringen. Außerdem sehen wir uns die verschiedenen Bauteile an, die dabei helfen, Projekte in der Praxis zu gestalten. Am Ende werfen wir einen Blick auf einige neue Funktionen, die Bausteine für Arduino-Sketche bilden.
Wenn Sie damit beginnen, eigene Projekte zu entwickeln, sind Sie vielleicht versucht, den Sketch sofort zu schreiben, gleich nachdem Ihnen die Idee dafür gekommen ist. Es ist jedoch sinnvoll, zunächst einige Vorbereitungen zu treffen. Schließlich kann der Arduino keine Gedanken lesen, sondern benötigt genaue Anweisungen. Wenn Sie winzige Details übersehen, kann es sein, dass der Arduino zwar trotzdem in der Lage ist, die Anweisungen auszuführen, allerdings werden dann die Ergebnisse nicht Ihren Erwartungen entsprechen.
Unabhängig davon, ob Sie ein einfaches Projekt erstellen, das nur ein Lämpchen blinken lässt, oder ob Sie ein automatisches Signal für eine Modelleisenbahn konstruieren, ist ein ausführlicher Plan für den Erfolg unverzichtbar. Gehen Sie bei der Umsetzung von Arduino-Projekten stets nach folgenden grundlegenden Schritten vor:
Legen Sie das Ziel fest.
Bestimmen Sie, was Sie erreichen wollen.
Schreiben Sie den Algorithmus.
Ein
Algorithmus
ist eine Reihe von Anweisungen, die beschreiben, wie das Projekt ausgeführt werden soll. Führen Sie in dem Algorithmus die Schritte auf, die notwendig sind, um das Ziel des Projekts zu erreichen.
Wählen Sie die Hardware aus.
Ermitteln Sie, wie Sie diese Hardware an den Arduino anschließen.
Schreiben Sie den Sketch.
Erstellen Sie eine erste Version des Programms, das dem Arduino sagt, was er tun soll.
Stellen Sie alle Verbindungen her.
Schließen Sie die Hardware, die Schaltungen und alle weiteren erforderlichen Elemente an die Arduino-Platine an.
Testen Sie das Projekt und beheben Sie Fehler.
Funktioniert es? Suchen Sie in dieser Phase nach Fehlern und ihren Ursachen, ob im Sketch, in der Hardware oder im Algorithmus.
Je mehr Zeit Sie auf die Planung des Projekts aufwenden, umso leichter fallen Test und Fehlerbehebung.
HINWEIS
Selbst bei gut geplanten Projekten tritt manchmal eine Krankheit auf, die als »Feature Creep« bezeichnet wird, also als »schleichender Funktionszuwachs«. Das passiert, wenn jemand eine neue Funktion einfällt, die er einem Projekt noch hinzufügen möchte, und deshalb versucht, neue Elemente in eine bereits vorhandene Konstruktion hineinzuzwängen. Wenn Sie ein Design abwandeln müssen, dann versuchen Sie nicht, ihm irgendwelche zusätzlichen Elemente unterzuschieben oder Änderungen in letzter Minute vorzunehmen, sondern beginnen Sie neu, indem Sie das Ziel neu definieren.
Da Sie in Ihren Arduino-Projekten elektronische Schaltungen bauen werden, wollen wir uns zunächst mit der Elektrizität beschäftigen. Einfach ausgedrückt, ist Elektrizität oder elektrischer Strom eine Form von Energie, die wir nutzen und in Wärme, Licht, Bewegung und Kraft umsetzen können. Elektrischer Strom hat drei Haupteigenschaften, die bei unseren Projekten zum Tragen kommen: Stromstärke, Spannung und Leistung.
Elektrischer Strom fließt (definitionsgemäß) vom positiven Pol einer Stromquelle, etwa einer Batterie, durch den Stromkreis zum negativen Pol. Hierbei handelt es sich um Gleichstrom. Daneben gibt es noch Wechselstrom, den wir in diesem Buch aber nicht behandeln. In manchen Stromkreisen wird der negative Pol als Masse oder Erdung bezeichnet (GND für ground). Die Stromstärke wird in Ampere (A) gemessen, dabei entspricht 1 A in etwa dem Fluss von 6,2415 × 1018 Elektronen durch einen einzigen Punkt innerhalb einer Sekunde. Kleinere Stromstärken werden mitunter in Milliampere (mA) angegeben, wobei 1000 mA einer Stromstärke von 1 A entsprechen.
Die Spannung ist die Differenz zwischen der potenziellen Energie am positiven und negativen Ende des Stromkreises. Gemessen wird sie in Volt. Je höher die Spannung, desto schneller bewegt sich der Strom durch den Stromkreis.
Die Leistung ist ein Maé für die Rate, mit der ein elektrisches Gerät Energie einer Form in die andere umwandelt. Gemessen wird sie in Watt (W). So leuchtet beispielsweise eine 100-Watt-Birne heller als eine 60-Watt-Birne, da sie mehr elektrische Energie in Licht umwandelt.
Zwischen Spannung, Stromstärke und Leistung gibt es eine einfache mathematische Beziehung:
Nachdem Sie jetzt die Grundlagen der Elektrizitätslehre kennen, wollen wir uns ansehen, wie sich dies auf die verschiedenen elektronischen Bauteile und Geräte auswirkt. Elektronische Bauteile sind Einzelteile, die den elektrischen Strom in einem Stromkreis so steuern, wie wir es für unsere Projekte brauchen. So wie die verschiedenen Bauteile in einem Auto zusammenwirken, um Treibstoff, Kraft und Bewegung bereitzustellen, sodass wir fahren können, steuern die elektrischen Bauteile zusammen den Strom und machen ihn für unsere Geräte nutzbar.
Besondere Elemente werde ich in diesem Buch immer dort beschreiben, wo sie zum Einsatz kommen. In den folgenden Abschnitten dagegen lernen Sie die grundlegenden Bauteile kennen.
Mehrere Bauteile, etwa die LEDs des Arduino, benötigen nur eine geringe Stromstärke, gewöhnlich um 10 mA. Wird die Platine mit einer zu hohen Stromstärke beschickt, wandelt sie den Überschuss in Wärme um, was sie letztendlich zerstören kann. Um die Stromstärke zu verringern, die an solchen Bauteilen anliegt, können wir zwischen der Spannungsquelle und der Komponente einen Widerstand platzieren. Im normalen Kupferdraht kann der Strom frei fließen, doch in einem Widerstand wird die Bewegung verlangsamt. Ein Teil des Stroms wird in Wärme umgewandelt. Wie groß dieser Anteil ist, hängt vom Widerstandswert ab. Abbildung 3–1 zeigt typische Widerstände.
Abb. 3–3Typische Widerstände
Widerstände sind sehr klein, weshalb auf diesen der Widerstandswert gewöhnlich nicht in Form von Zahlen abgedruckt ist. Sie können den Widerstandswert mithilfe eines Multimeters messen, aber auch direkt von dem Bauteil ablesen. Oft wird der Wert in Form einer Folge von farbigen Ringen angegeben, die von links nach rechts die folgende Bedeutung haben:
Erster Ring:
gibt die erste Stelle des Widerstandswerts an.
Zweiter Ring:
gibt die zweite Stelle des Widerstandswerts an.
Dritter Ring:
gibt den Multiplikator in Vielfachen von 10 (bei Vier-Ring-Widerständen) oder die dritte Stelle des Widerstandswerts an.
Vierter Ring:
gibt den Multiplikator in Vielfachen von 10 für Fünf-Ring-Widerstände an.
Fünfter Ring:
gibt die Toleranz (Genauigkeit) an.
Tabelle 3–1