Arduino-Workshops - John Boxall - E-Book

Arduino-Workshops E-Book

John Boxall

0,0

Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 415

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



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.

ARDUINO-WORKSHOPS

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:

Print

978-3-86490-918-4

PDF

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

Inhalt

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

Inhaltsverzeichnis

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

Danksagung

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.

1

Einführung

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.

Unendliche Möglichkeiten

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.

Die Masse macht‘s

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/.

Teile und Zubehör

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.

Benötigte Software

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.

macOS

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».

Windows 10

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.

Ubuntu Linux

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).

Sicherheit

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.

Ausblick

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!

2

Ein genauerer Blick auf den Arduino und die IDE

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.

Der Arduino

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.

Die IDE

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

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.

Das Menü

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.

Die Symbole

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.

Der Textbereich

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.

Der Meldungsbereich

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 erster Sketch in der IDE

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

Kommentare

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.

Die Einrichtungsfunktion

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()

{

}

Die Hardware steuern

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.

Die Schleifenfunktion

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!

Den Sketch überprüfen

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.

Den Sketch hochladen und ausführen

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.

Den Sketch bearbeiten

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.

Ausblick

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.

3

Erste Schritte

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.

Projekte planen

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.

Elektrizität

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.

Stromstärke

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.

Spannung

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.

Leistung

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:

Elektronische Bauteile

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.

Widerstände

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

Elektrischer Widerstand
Den Widerstandswert ablesen

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