HEUTE SCHON EXPERIMENTIERT?
Egal ob Sie eine Haussteuerung oder eine LED-Leuchte mit Farbwechsel bauen möchten – mit Arduino™ gelingt es auch Quereinsteigern, die ersten Programme zu schreiben und so die eigenen Ideen zu verwirklichen. Mit diesem Lernpaket entdecken Sie die Grundlagen der Elektronik und der Arduino™-Programmierung und erfahren Schritt für Schritt, wie Sie vorgehen müssen, um Ihre Ideen in die Praxis umzusetzen. DIE BAUTEILE IM ÜBERBLICK
1 Arduino-Board UNO 1 Steckboard 2 Taster 1 Fototransistor PT331C 1 NPN-Transistor BC548C 1 Silizium-Dioden 1N4148 1 Piezo-Schallwandler 1 LED rot 1 LED grün 2 LED gelb 3 Widerstand 1,5 kΩ 1 Widerstand 4,7 kΩ 1 Widerstand 47 kΩ 1 Widerstand 10 kΩ 1 Widerstand 68 kΩ 1 Trimmwiderstand 10 kΩ PT10 1 Kondensator 1 µF 1 Isolierter Schaltdraht ca. 1m
DIESE PROJEKTE FÜHREN SIE DURCH:
Programmieren mit Schleifen Zufallszahlen generieren Ein einfaches Game Stoppuhr Spannung messen LED-Dimmer Ein- und Ausschaltverzögerung Musik mit ArduinoTM Mikrocontroller-Kerzenlicht Ausgänge überwachen Schuluhr Lüftersteuerung Dämmerungsschalter Alarmanlage Codeschloss Spannungsplotter Speicheroszilloskop Temperaturschalter Romantic Light Zeitschaltuhr Melodien komponieren State Machine Kapazitätsmesser … und viele mehr
Für Kinder unter 14 Jahren nicht geeignet!
Außerdem benötigen Sie: USB-Anschlusskabel
ISBN 978-3-645-65327-5
Arduino™ ist ein eingetragenes Markenzeichen der Arduino S.r.l und der damit verbundenen Firmen. © 2016 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, D-85540 Haar, Germany Innovationen, Irrtümer und Druckfehler vorbehalten. 2016/01
TURN ON YOUR CREATIVITY
DAS
ARDUINO
™
Dieses Lernpaket bietet alles, was Sie für Ihren Einstieg in die Programmierung benötigen: original Arduino™-Uno-Platine, Steckboard, Bauteile sowie ein 300-seitiges Handbuch und Software. So gelingen Ihre Projekte, und Arduino™ erwacht zum Leben.
DAS
DAS
TURN ON YOUR CREATIVITY
ARDUINO™ LERNPAKET
65327-5 HB_U1+U4_Layout 1 13.10.15 13:26 Seite 1
ARDUINO
™
ULLI SOMMER TURN ON YOUR CREATIVITY
DAS
FRANZIS ARDUINO
TM
LERNPAKET ORIGINAL ARDUINO UNO UND 20 WEITERE BAUTEILE FÜR 70 PROJEKTE
65148 Arduino Lernpaket_03.indd 1
06.10.2015 16:30:11
2 Bibliografische Information der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Alle in diesem Buch vorgestellten Schaltungen und Programme wurden mit der größtmöglichen Sorgfalt entwickelt, geprüft und getestet. Trotzdem können Fehler im Buch und in der Software nicht vollständig ausgeschlossen werden. Verlag und Autor haften in Fällen des Vorsatzes oder der groben Fahrlässigkeit nach den gesetzlichen Bestimmungen. Im Übrigen haften Verlag und Autor nur nach dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit oder wegen der schuldhaften Verletzung wesentlicher Vertragspflichten. Der Schadensersatzanspruch für die Verletzung wesentlicher Vertragspflichten ist auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht ein Fall der zwingenden Haftung nach dem Produkthaftungsgesetz gegeben ist. Liebe Kunden! Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt daher das CE-Zeichen. Der bestimmungsgemäße Gebrauch ist in der beiliegenden Anleitung beschrieben. Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden Regeln verantwortlich. Bauen Sie die Schaltungen deshalb genau so auf, wie es in der Anleitung beschrieben wird. Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden. Das Symbol der durchkreuzten Mülltonne bedeutet, dass dieses Produkt getrennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächstgelegene kostenlose Annahmestelle finden, sagt Ihnen Ihre kommunale Verwaltung. (c) 2016 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, 85540 Haar Lektorat: concepts4u, München Layout: bora-dtp, München art&design: www.ideehoch2.de Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Internet, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt. Die meisten Produktbeschreibungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen und sollten als solche betrachtet werden. Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller. Arduino™ ist ein eingetragenes Markenzeichen der Arduino LLC und der damit verbundenen Firmen.
65148 Arduino Lernpaket_03.indd 2
06.10.2015 16:30:34
Inhalt
3
Inhalt Vorwort
1
7
Mikrocontroller-Grundlagen
13
1 2 3 4 5
12 12 13 14 17
Messen Steuern Regeln Aufbau und Funktionsweise Programmierung von Mikrocontrollern
2
Übersicht über die Arduino-Boards
21
1 2 3 4 5 6 7
22 23 25 27 29 30 31
3
Arduino-Shields
33
1 2 3 4 5
33 35 36 38 39
Arduino Mega Arduino UNO Arduino Leonardo Arduino Ethernet ArduPilot LilyPad USB-Adapter
Arduino Protoshield Ardumoto TellyMate XBee-Funkmodule Ethernet Shield
65148 Arduino Lernpaket_03.indd 3
06.10.2015 16:30:35
4
4
Franzis Arduino Lernpaket
Bauteile im Lernpaket
41
1 2 3
41 42
4 5 6 7
5
6
7
Alle Bauteile in der Übersicht Arduino UNO Anschlüsse und LEDs des Arduino-UNOExperimentierboards Stromversorgung Reset-Taster ISP-Anschluss Sicherheitshinweise
43 47 47 47 48
Die Bauteile und ihre Funktion
50
1 2 3 4 5 6 7 8 9
50 52 53 54 58 60 60 62 63
Schaltdraht Steckbrett Taster Widerstände Fototransistor Piezo-Schallwandler (Buzzer) Leuchtdioden Diode Transistoren
Die erste Inbetriebnahme des Arduinos
67
1 2 3
67 75 76
Installation unter Windows Installation unter MacOSX Installation unter Linux
Die Arduino-Programmierung
65148 Arduino Lernpaket_03.indd 4
79
06.10.2015 16:30:35
Inhalt
5
8
Ihr erstes eigenes Programm mit Arduino o
83
1
86
9
Arduino-Programmiergrundlagen
91
1 2 3 4
91 92 98
Was haben wir gemacht?
Bits und Bytes Aufbau eines Programms Ein weiteres Arduino-Programm Jetzt geht es los mit der ArduinoProgrammierung
10 Weitere Experimente mit Arduino 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
LED-Dimmer Soft-Blinker Taster entprellen Einfache Einschaltverzögerung Einfache Ausschaltverzögerung LEDs und Arduino Große Verbraucher schalten DAC mit PWM-Ports Mit Musik geht alles besser Romantisches Mikrocontroller-Kerzenlicht Überwachung des Personalausgangs Eine Uhr mit Arduino Schuluhrprogramm Lüftersteuerung Dämmerungsschalter Alarmanlage Codeschloss Kondensatormessgerät mit Autorange-Funktion
65148 Arduino Lernpaket_03.indd 5
100
187 188 192 198 204 206 208 212 216 223 228 231 234 237 242 249 253 256 261
06.10.2015 16:30:35
6
Franzis Arduino Lernpaket
19 20 21 22 23 24 25 26
Potenziometer und Trimmer professionell auslesen State Machine Ein 6-Kanal-Voltmeter mit Arduino Spannungs-Plotter selbst programmieren Das Arduino-Speicheroszilloskop StampPlot – der Profi-Datenlogger zum Nulltarif Steuern über VB.Net Temperaturschalter
265 298 273 276 280 285 288 291
11 Das Programm Fritzing
297
12 Das Programm Processing
299
13 Anhang
303
1 2 3
Elektrische Einheiten ASCII-Tabelle Bezugsquellen
303 304 310
Warnung! Augenschutz und LEDs: Blicken Sie nicht aus geringer Entfernung direkt in eine LED, denn ein direkter Blick kann Netzhautschäden verursachen! Dies gilt besonders für helle LEDs im klaren Gehäuse sowie in besonderem Maße für Power-LEDs. Bei weißen, blauen, violetten und ultravioletten LEDs gibt die scheinbare Helligkeit einen falschen Eindruck von der tatsächlichen Gefahr für Ihre Augen. Besondere Vorsicht ist bei der Verwendung von Sammellinsen geboten. Betreiben Sie die LEDs so wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen.
65148 Arduino Lernpaket_03.indd 6
06.10.2015 16:30:35
Vorwort
7
Vorwort Bei vielen Mikrocontroller-Systemen muss man sich durch unzählige und für Anfänger schwer verständliche Datenblätter wühlen. Die Programmieroberflächen sind meist sehr kompliziert und für den Profi-Programmierer ausgelegt, der bereits jahrelange Erfahrung mit Mikrocontrollern besitzt. So wird der Zugang in die Welt der Mikrocontroller unnötig erschwert. Arduino hingegen ist eine leicht verständliche und schnell zu erlernende Open-Source-Plattform, basierend auf einem Mikrocontroller-Board mit einem Atmel-AVRController und einer einfach gehaltenen Programmierumgebung. Für die Interaktion zwischen Mensch und Mikrocontroller lassen sich diverse analoge und digitale Sensoren anschließen, die die Umwelt erfassen und die Daten an den Mikrocontroller weitergeben. Der Mikrocontroller verarbeitet die eingehenden Daten, und durch das Programm entstehen neue Ausgabedaten in analoger oder ditgitaler Form. Hierbei sind der Kreativität des Entwicklers keine Grenzen gesetzt. Egal, ob Sie eine Haussteuerung oder eine schöne LED-Leuchte mit Farbwechsel bauen möchten, mit Arduino gelingt es auch Quereinsteigern, die ersten funktionsfähigen Programme zu schreiben und so die eigenen Ideen zu verwirklichen.
65148 Arduino Lernpaket_03.indd 7
06.10.2015 16:30:35
8
Franzis Arduino Lernpaket
Das einfache Zusammenspiel aus Hard- und Software bildet die Basis für „Physical Computing“ – die Verbindung der realen Welt mit der des Mikrocontrollers, die aus Bits und Bytes besteht. Dieses Lernpaket vermittelt Ihnen die Grundlagen der Elektronik der Arduino-Programmierung und zeigt Ihnen auf verständliche Weise, wie Sie vorgehen müssen, um Ihre Ideen in die Praxis umzusetzen.
Ulli Sommer
CD zum Lernpaket Der Inhalt der CD.
Diesem Lernpaket liegt eine CD bei, die verschiedene Programme, Tools, Datenblätter und Beispiele enthält. Die CD erleichtert Ihnen das Arbeiten mit diesem Buch. Die hier abgedruckten Beispiele finden Sie natürlich auch auf der CD.
Inhalt der CD
65148 Arduino Lernpaket_03.indd 8
Arduino-Entwicklungsumgebung (IDE) Beispiel-Programmcode Diverse Tools Datenblätter Schaltpläne
06.10.2015 16:30:36
9
Vorwort
GPL (General Public License) Sie können Ihre eigenen Programme mit anderen Anwendern über das Internet austauschen. Die Beispielprogramme stehen unter der Open-SourceLizenz GPL (General Public License) zur Verfügung. Daher sind Sie berechtigt, die Programme unter den Bedingungen der GPL zu modifizieren, zu veröffentlichen und anderen Anwendern zur Verfügung zu stellen, sofern Sie Ihre eigenen Programme ebenfalls unter die GPL-Lizenz stellen.
Systemvoraussetzungen
Windows ab XP (32 oder 64 Bit) oder Linux (32 oder 64 Bit) oder Mac OS X, CD-Laufwerk Java Näheres finden Sie auf diesen Internetseiten:
Weiterführende Webseiten.
www.arduino.cc www.fritzing.org www.processing.org
Updates und Support Arduino wird ständig weiterentwickelt. Updates können kostenlos von folgender Website heruntergeladen werden: http://arduino.cc
65148 Arduino Lernpaket_03.indd 9
06.10.2015 16:30:36
TURN ON YOUR CREATIVITY
FRANZIS ARDUINO
MIKROCONTROLLERGRUNDLAGEN
65148 Arduino Lernpaket_03.indd 10
06.10.2015 16:30:37
1 Bevor wir uns näher mit dem Arduino beschäftigen, wollen wir uns zunächst einmal einen allgemeinen Überblick über die Mikrocontroller verschaffen. Mikrocontroller werden vor allem im Bereich der Automatisierungs-, der Mess-, Steuer- und Regeltechnik eingesetzt. Der Vorteil eines Mikrocontroller-Systems ist, dass es auf kleinstem Raum energieund kosteneffizient physikalische Größen misst und interpretiert, darauf aufbauend Entscheidungen trifft und Aktionen durchführt. Im Grunde ist jede Aufgabe, die Sie mit dem Arduino lösen möchten, eine MSR-Aufgabe (Messen, Steuern, Regeln).
MikrocontrollerSysteme arbeiten auf kleinstem Raum.
... DIE HAUPTAUFGABEN DES ARDUINOS: MESSEN, STEUERN, REGELN.
65148 Arduino Lernpaket_03.indd 11
06.10.2015 16:30:41
12
Franzis Arduino Lernpaket
1.1 | Messen Die Hauptaufgaben des Arduinos: Messen, Steuern, Regeln.
Unter „Messen“ versteht man ganz allgemein den Vorgang, physikalische Eingangswerte von Tastern, Schaltern, Lichtsensoren, Drucksensoren, Bewegungsmeldern, Lichtschranken, Spannungsteilern (Potis) u.v.m. zu erfassen. Sie werden dem Controller über die digitalen bzw. analogen Eingänge zugeführt. Arduino versteht Signale mit einem Spannungspegel von 0 oder 5 V bei den digitalen Eingängen. Die analogen Eingänge können 0 V bis 5 V mit einer Auflösung von (10 Bit) auswerten. Dabei entspricht 0 V (0) und 5 V (1023). Dieser Wert kann in unserer Software entsprechend interpretiert werden, um z. B. eine Batterie (1 x AA „Mignonzelle“) auf ihre Spannung zu überprüfen. Für größere Spannungen an den Eingängen, egal ob digital oder analog, benötigen wir einen Spannungsteiler, der die Eingangsspannung auf die maximale Eingangsspannung der ArduinoPorts reduziert. Dazu später mehr.
1.2 | Steuern Steuern bedeutet, auf einen Eingangswert zu reagieren.
65148 Arduino Lernpaket_03.indd 12
Unter dem Begriff „Steuern“ versteht man, auf einen Eingangswert zu reagieren. Ein einfaches Beispiel dafür ist ein Bügeleisen. Es steuert die Temperatur über einen Bimetallschalter. Ist die Bügelfläche kälter als am Bügeleisen eingestellt, so wird so lange geheizt, bis die gewünschte Temperatur erreicht ist. Fällt die Temperatur unter einen bestimmten Wert, so wird nachgeheizt, bis die Temperatur wieder stimmt. Zwischen den beiden Punkten „Heizung ein“ und „Heizung aus“ gibt es ein kleines Fenster – eine sogenannte Hysterese. Sie sorgt dafür, dass nicht zu oft
06.10.2015 16:30:45
13
1 Mikrocontroller-Grundlagen
ein- bzw. ausgeschaltet wird und dadurch die mechanischen Kontakte zu schnell verschleißen oder die Steuerung zu „nervös“ reagiert. Bei einem Mikrocontroller könnte man das Bimetall durch einen Temperatursensor ersetzen. Der Mikrocontroller würde den Wert analog oder digital über einen passenden Temperatursensor erfassen. Das Programm würde die Schwellenwerte für „ein“ bzw. „aus“ vergleichen und einen digitalen Ausgang schalten, der wiederum ein Relais oder einen Transistor ansteuert, um die Heizung je nach Bedarf ein- oder auszuschalten.
Die Hysterese.
1.3 | Regeln
Bild 1.1: Beispiel einer Ein- und Ausgabeverarbeitung anhand eines Gewächshauses.
Der Unterschied zwischen Steuern und Regeln besteht darin, dass eine Steuerung nur bestimmte Ein- und Aus-Zustände kennt. Eine Regelung hinge-
65148 Arduino Lernpaket_03.indd 13
06.10.2015 16:30:46
14
Franzis Arduino Lernpaket
gen ist stufenlos. Ein Tempomat im Auto ist z. B. eine Regelung. Diese versucht immer, die gespeicherte Geschwindigkeit zu halten. Wäre hier nur eine Steuerung verbaut, wäre die Fahrt mit Tempomat sehr unangenehm, da dieser nur „Gas geben“, „Nichts tun“ und „Bremsen“ kennen würde.
Mögliche Anwendungsgebiete des Arduinos - privat und industriell.
Das Spektrum möglicher Anwendungen von Mikrocontrollern reicht vom privaten Gebrauch (z. B. Steuerung eines Gewächshauses oder Aquariums, Hausbeleuchtung) bis zum industriellen Bereich, wo komplette Produktionsanlagen mit MikrocontrollerSystemen gesteuert, gewartet und betrieben werden können. Das Bild auf der vorangegangenen Seite zeigt eine typische Datenverarbeitung zur Steuerung der Bewässerungsanlage eines Gewächshauses. Der Mikrocontroller nimmt dabei über Sensoren Messwerte der Umgebungstemperatur und der Bodenfeuchte auf. Die Messwerte werden durch eine digitale Logik in Form eines Programms im Mikrocontroller (kurz: μC oder MC C genannt) interpretiert. So wird bestimmt, ob sich die Pumpe einschaltet oder nicht.
1.4 | Aufbau und Funktionsweise Grundbausteine von Mikrocontrollern.
65148 Arduino Lernpaket_03.indd 14
Als vollwertiger Computer im Kleinstformat weist jeder Mikrocontroller – ähnlich einem PC – grundlegende elektronische Bausteine auf, die in Abb. 1.2 näher beschrieben werden. Grundbausteine jedes Mikrocontrollers sind die CPU, der Arbeitsspeicher (RAM) sowie der Programmspeicher (FLASH) und die Peripherie.
06.10.2015 16:30:50
1 Mikrocontroller-Grundlagen
15
MC-Schema
Bild 1.2: Prinzipieller Aufbau eines Mikrocontrollers.
1.4.1 | Die CPU Die wichtigste Funktionseinheit ist die zentrale Recheneinheit, die CPU (engl.: Central Processing Unit). Sie kann als das „Gehirn“ des Mikrocontrollers verstanden werden. Dort werden die Befehle und arithmetische Operationen abgearbeitet.
65148 Arduino Lernpaket_03.indd 15
Die CPU ist das Gehirn des Mikrocontrollers.
06.10.2015 16:30:51
16
Franzis Arduino Lernpaket
1.4.2 | Arbeits- und Programmspeicher Der Arbeitsspeicher dient zur temporären Datenablage.
Arbeits- und Programmspeicher sind logisch getrennt. Das Benutzerprogramm wird dabei meist in einem nichtflüchtigen Flash-Speicher, dem Programmspeicher, abgelegt. Je nach Controllersystem kann man auf Programmspeicher von mehreren Kilo- bis Megabyte zurückgreifen. Bei einigen Systemen ist es darüber hinaus möglich, den Programmspeicher durch externe Flash-Komponenten aufzustocken. Der Arbeitsspeicher (RAM – engl. Random Access Memory) dient zur temporären Ablage von Rechen-, Mess- und Steuergrößen. Das Ziel ist, möglichst schnell auf eine begrenzte Anzahl von Daten zugreifen zu können. Der RAM-Speicher ist in der Regel deutlich kleiner als der Flash-Speicher, dafür aber um ein Vielfaches schneller. Die Werte des RAM werden zur Laufzeit erzeugt und sind, anders als beim FlashSpeicher, flüchtig. Nach einem Neustart des Controllers befinden sich im RAM keine gespeicherten Werte mehr.
1.4.3 | Peripherie Digitale Ein- und Ausgänge gehören zu den Peripheriebausteinen.
65148 Arduino Lernpaket_03.indd 16
Als „Peripherie“ bezeichnet man jene Komponenten eines Mikrocontrollers, die nicht durch CPU und Speicherbausteine abgedeckt werden. Insbesondere Komponenten, die eine Schnittstelle zur Außenwelt darstellen, wie digitale Ein- und Ausgänge (kurz: I/O für Input/Output), werden zu den Peripheriebausteinen gezählt. Die meisten Mikrocontroller-Boards, wie auch unser Arduino, bieten eine Vielzahl von Einund Ausgängen mit verschiedenen Funktionen. Dazu gehören digitale, aber auch analoge Ein- und Ausgänge (ADC und DAC).
06.10.2015 16:30:58
17
1 Mikrocontroller-Grundlagen
1.5 | Programmierung von Mikrocontrollern 1.5.1 | Was ist ein Programm? Ein Programm ist die Beschreibung eines Informationsverarbeitungsprozesses. Im Lauf eines solchen Prozesses wird aus einer Menge von variablen oder konstanten Eingangswerten eine Menge von Ausgangswerten berechnet. Die Ausgangswerte sind entweder selbst Ziel der Informationsgewinnung oder dienen mittelbar zur Reaktion auf die Eingangswerte. Neben den eigentlichen Berechnungen kann ein Programm Anweisungen zum Zugriff auf die Hardware des Computers oder zur Steuerung des Programmflusses enthalten. Ein Programm besteht aus mehreren Zeilen sogenannten Quelltextes. Dabei enthält jede Zeile eine oder mehrere Rechen- oder Steueranweisungen. Neben diesen Anweisungen bestimmt ihre Reihenfolge ganz wesentlich die eingangs beschriebene Informationsverarbeitung. Die Ausführung der den Anweisungen entsprechenden Operationen durch den Steuercomputer erfolgt sequenziell, also der Reihe nach. Eine Folge von Programmanweisungen mit einem bestimmten Ziel nennt man auch Algorithmus.
Programmanweisungen mit einem bestimmten Ziel bezeichnet man als Algorithmus.
1.5.2 | Arduino versteht C C (oder auch die Variante ANSI-C C) sind relativ einfach zu erlernende Programmiersprachen. C ist eine imperative Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 70er-Jahren an den Bell Laboratories für das Betriebssystem Unix entwickelte. Seitdem ist sie weltweit stark verbreitet. Die Anwendungsbereiche von C sind sehr verschieden. Es wird z. B. zur System- und Anwendungsprogrammierung eingesetzt. Die grundlegenden Programme aller Unix-Systeme
65148 Arduino Lernpaket_03.indd 17
Die Programmiersprache C.
06.10.2015 16:30:59
18
Franzis Arduino Lernpaket
und die Systemkerne vieler Betriebssysteme sind in C programmiert. Zahlreiche Sprachen wie C++, ObjectiveC, C#, Java, PHP P oder Perll orientieren sich an der Syntax und anderen Eigenschaften von C. Es lohnt sich also, sich mit dieser Programmiersprache zu beschäftigen, da man später auch leicht auf andere Mikrocontroller-Systeme umsteigen kann. Für fast alle Mikrocontroller existiert ein freier C-Compiler, den die Hersteller zum Download anbieten. Das C innerhalb von Arduino ist jedoch einfacher gehalten als die professionellen C-Compiler und nimmt Ihnen dadurch sehr viel Arbeit ab. Vor allem die komplizierten Hardware-Routinen bleiben Ihnen bei Arduino erspart, da sie bereits als feste Befehle in der Entwicklungsumgebung integriert sind. Zudem gibt es mittlerweile für fast jede Hardware eine Arduino-Bibliothek, die einfach eingebunden wird. Schon können Sie mit der neuen Hardware, z. B. mit einem digitalen Drucksensor, kommunizieren. Die Bausteine des Arduinos.
Die Arduino-Hardware besteht ausschließlich aus gängigen, allgemein verfügbaren Bauteilen. Daher ist es leicht, ihre Funktionsweise zu verstehen und die Schaltung an Ihre Wünsche anzupassen oder Erweiterungen vorzunehmen. Den Kern bildet ein ATmega-Controller aus Atmels weit verbreiteter 8-Bit-AVR-Familie. Hinzu kommen Schaltungsteile zur Stromversorgung und eine serielle Schnittstelle. Letztere ist bei den neueren Arduino-Versionen als USB-Interface ausgelegt. Über diesen Anschluss erfolgt der Download unserer Programme und bei Bedarf auch die Kommunikation zwischen PC und Arduino während der Programmausführung, um z. B. der Hardware Kommandos zu erteilen oder Messwerte von Arduino zu lesen. Weil Arduino-Boards so einfach und universell ausgelegt sind, werden sie häufig auch schlicht als I/OBoard bezeichnet. Das Arduino-UNO-Board stellt dem Anwender 14 digitale Ein-/Ausgänge (I/Os) zur Ver-
65148 Arduino Lernpaket_03.indd 18
06.10.2015 16:31:01
1 Mikrocontroller-Grundlagen
19
fügung, davon sind sechs als Analog-Ausgang (8 Bit PWM) zu verwenden. Weitere sechs Eingänge können analoge Signale erfassen (10 Bit ADC). Bei Bedarf stehen SPI und I2C als weitere digitale Schnittstellen zur Kommunikation bereit. Mit diesen können Sie Ihr ArduinoUNO-Board schnell und einfach mit Bausteinen erweitern, die ebenfalls diese Schnittstelle besitzen. Die Arduino-Boards gibt es mittlerweile in mehreren Varianten, und seit kurzem ist neben den klassischen 8-Bit-Arduinos eine 32-Bit-Version mit ordentlich Rechenleistung für komplexeste Aufgaben verfügbar.
Arduino-Boards gibt es mit unterschiedlichen Merkmalen.
Die original Arduino-Platinen stammen vom Hersteller Smart Projects aus Italien und sind sehr günstig über diverse Internetshops zu beziehen. Es gibt mittlerweile auch zahllose Klone und Nachbauten von anderen Anbietern, schließlich handelt es sich um Open Hardware. Ein wichtiger Unterstützer des Arduino-Projekts ist Sparkfun aus Boulder, Colorado. Die Kooperation mit dem US-Partner hat eine Reihe optimierter Arduino-Boards und Unmengen von Sensoren und Aktoren hervorgebracht. Außerdem ist mit LilyPad ein wichtiger Ableger entstanden, der das Thema Wearable Computing aufgreift. Die meisten Anwender setzen auf den von Smart Projects gefertigten Arduino UNO, der in diesem Lernpaket enthalten ist.
65148 Arduino Lernpaket_03.indd 19
Arduino UNO: der Arduino aus diesem Lernpaket.
06.10.2015 16:31:01
TURN ON YOUR CREATIVITY
FRANZIS ARDUINO ÜBERSICHT ÜBER DIE ARDUINOBOARDS
65148 Arduino Lernpaket_03.indd 20
06.10.2015 16:31:03
2 Bekannte Arduino-Varianten sind die Arduino-MegaBoards mit einem leistungsstärkeren Mikrocontroller (Atmega1280), der mehr Speicher, I/O-Pins und Funktionen bietet. Wesentlich kleiner ist der Arduino Mini, ein Board im DIP24-Format. Das ganze Modul lässt sich auf einen 24-poligen DIL-Sockel stecken. Die Version Arduino Pro Mini von Sparkfun ist nahezu identisch damit, wird aber ohne „Beinchen“ (seitliche Stifte) geliefert. Diese Module erfordern zum Programmieren einen USBAdapter, der an der Schmalseite der Module angesteckt werden kann. Das LilyPad-Board von Leah Buechley (in Zusammenarbeit mit Sparkfun) ist auch Arduino-kompatibel und verfolgt einen ganz eigenen Zweck. LilyPad und Zubehör sind darauf ausgelegt, in Kleidung eingenäht zu werden, um dort eine möglichst enge Symbiose von Technik und Künstler zu realisieren. Die charakteristische runde Form des LilyPad-Boards erregt ebenso Aufmerksamkeit wie die Farbgebung und die kreisförmige Anordnung der Kontakte. Zahlreiche kleine Peripherieplatinen (Sensoren, LEDs, Taster ...) ergänzen das LilyPad-Boards zu einem ganzen System unter dem Motto „Elektronik mit der Nähmaschine“.
Weitere ArduinoVarianten.
Das LilyPadBoard und seine Anwendung in der Funktionsbekleidung.
Tipp: Weitere Board-Versionen und Zubehörteile finden Sie auf der Arduino-Projektseite. Die Produktseiten von SparkFun Electronics finden Sie unter: http://www.sparkfun.com/categories/103
65148 Arduino Lernpaket_03.indd 21
06.10.2015 16:31:11
22
Franzis Arduino Lernpaket
2.1 | Arduino Mega
Bild 2.1: Arduino MEGA.
Die technischen Daten.
65148 Arduino Lernpaket_03.indd 22
Technische Daten:
ATmega2560 Mikrocontroller 16 MHz Takt 256 KB Flash (8 KB davon benötigt der Bootloader) 8 KB SRAM, 4 KB EEPROM 54 digitale I/O-Pins, davon 15 als PWM nutzbar Hardware-UARTs I2C-Interface, SPI 16 analoge Eingänge (10 Bit) USB-Interface, Spannungsversorgung, Bootloader etc., wie beim Arduino Duemilanove Abmessungen ca. 101 x 53 x 15 mm
06.10.2015 16:31:17
2 Eine kleine Übersicht über die Arduino-Boards
23
2.2 | Arduino UNO
Bild 2.2: Arduino UNO (SMD-Edition).
Dieses Board ist in unserem Lernpaket enthalten und ist zudem das Arduino-Standard-Board, basierend auf dem Atmel Atmega328P-Mikrocontroller. Das günstige und leistungsfähige Board dürfte wohl das meistverkaufte Mikrocontroller-Board weltweit sein. Es besitzt 14 digitale I/Os, wovon sechs als PWM-Ausgänge verwendet werden können. Es hat sechs analoge Eingänge, einen 16-MHZ-Oszillator als Taktgeber, eine USB-B-Buchse zur Programmierung und Datenausgabe, einen Reset-Taster, eine Stromversorgungsbuchse und einen ISP-Stecker zur Programmierung über einen Atmel-Programmer. Es verträgt als externe Stromversorgung nur Gleichspannung.
65148 Arduino Lernpaket_03.indd 23
Was der Arduino aus diesem Lernpaket alles kann.
06.10.2015 16:31:26
24
Franzis Arduino Lernpaket
Diese Version ist der direkte Nachfolger der ersten Arduino-Boards und behält die Arduino-Standards, die zu den Anfangszeiten gesetzt wurden, zu 100 Prozent bei. Die großen Unterschiede sind: Platine mit SMDBestückung, kein FTDI-USB-zu-UART-Brückenchip mehr, sondern ein Atmega16U2, und ein leistungsfähigerer Mikrocontroller. Die technischen Daten.
65148 Arduino Lernpaket_03.indd 24
Technische Daten:
ATmega328P 16 MHz Takt 32 KB Flash (davon 0,5 KB für Bootloader) 2 KB SRAM, 1 KB EEPROM 14 digitale I/O-Pins, davon sechs als PWM nutzbar sechs analoge Eingänge (10 Bit) On-Board-USB-Schnittstelle mit Mega 16U2 von Atmel 5 V Betriebsspannung, Speisung über USB oder über Spannungsregler (7 V bis 12 V Eingangsspannung) Abmessungen ca. 69 x 53 x 15 mm
06.10.2015 16:31:35
2 Eine kleine Übersicht über die Arduino-Boards
25
2.3 | Arduino Leonardo
Bild 2.3: Arduino Leonardo.
Das Leonardo-Board ist ein auf dem Atmega32U4 basierendes Mikrocontroller-Board. Es besitzt 20 digitale I/Os, wobei sieben als PWM-Ausgänge genutzt werden können. Programmiert wird das Board wie üblich über USB und den auf dem Atmega befindlichen Bootloader. Der Unterschied zu den anderen Boards ist, dass hier eine Mikro-USB-Buchse vorhanden ist, statt der üblichen Standard-USB-B-Buchse. Zudem befindet sich auf diesem Board kein zusätzlicher USB-Chip, der die Kommunikation zwischen PC und Mikrocontroller übernimmt. Dieser USB-Chip ist bereits im Mikrocontroller enthalten.
65148 Arduino Lernpaket_03.indd 25
Das Leonardo-Board und seine technischen Spezifikationen.
06.10.2015 16:31:36
26
Franzis Arduino Lernpaket
Dies ermöglicht zudem die Kommunikation zum PC per Maus und Tastatur (HID = engl. Human Interface Device).
Technische Daten: Die technischen Daten.
65148 Arduino Lernpaket_03.indd 26
ATmega32U4 16 MHz Takt Programmierung über USB 5-Volt-Technik 20 digitale I/Os, sieben davon können zur PWMErzeugung genutzt werden 12 analoge 10-Bit-Eingänge 32 KB FLASH (4 KB benötigt der Bootloader) 2,5 KB SRAM 1 KB EEPROM Ausgangsstrom pro I/O max. 40 mA Versorgungsspannung 7 V bis 12 V Abmessungen ca. 69 x 53 x 15 mm
06.10.2015 16:31:44
2 Eine kleine Übersicht über die Arduino-Boards
27
2.4 | Arduino Ethernet
Bild 2.4: Arduino Ethernet.
Das Arduino-Ethernet-Board basiert auf einem Atmel-Atmega328-Mikrocontroller. Es besitzt 14 I/ Os und sechs analoge Eingänge. Es weist außerdem einen 16-MHz-Oszillator, einen RJ45-Anschluss, eine Stromversorgungsbuchse, einen ICSP-(ISP)-Stecker und einen Reset-Taster auf. Zudem kann eine Powerover-Ethernet-Platine eingelötet werden.
Arduino Ethernet und wie es sich von den übrigen Arduino-Boards unterscheidet.
Der große Unterschied zwischen diesem Board und den übrigen Arduino-Boards ist, dass hier statt der USB-Buchse eine Ethernet-Buchse zur Programmierung vorhanden ist. Die Ethernet-Kommunikation übernimmt der auf dem Board befindliche Wiznet-Ethernet-Controller, der an den Atmega328
65148 Arduino Lernpaket_03.indd 27
06.10.2015 16:31:45
28
Franzis Arduino Lernpaket
angeschlossen ist. Der microSD-Card-Leser kann zum Speichern und Lesen von Daten und Internetseiten verwendet werden.
Technische Daten: Die technischen Daten.
65148 Arduino Lernpaket_03.indd 28
ATmega328 16 MHz Takt Programmierung über Ethernet RJ45 5-Volt-Technik 14 digitale I/Os, vier davon können zur PWMErzeugung genutzt werden sechs analoge 10-Bit-Eingänge 32 KB FLASH (0,5 KB benötigt der Bootloader) 2 KB SRAM 1 KB EEPROM Ausgangsstrom pro Port ± 40 mA Versorgungsspannung 7 bis 12 V Abmessungen ca. 70 x 53 x 15 mm
06.10.2015 16:31:52
29
2 Eine kleine Übersicht über die Arduino-Boards
2.5 | ArduPilot
Bild 2.5: ArduPilot – Arduino-kompatibler UAV-Controller ATmega328 (Quelle: SparkFun).
Für die Modellflieger ist der ArduPilot ein äußerst interessantes Spielzeug. Er ermöglicht das autonome Fliegen eines Modellflugzeugs.
ArduPilot für ambitionierte Modellbauflieger.
Tipp: Mehr dazu finden Sie unter: http://diydrones.com
65148 Arduino Lernpaket_03.indd 29
06.10.2015 16:31:53
30
Franzis Arduino Lernpaket
2.6 | LilyPad
Bild 2.6: LilyPad Arduino (Quelle: Elmicro).
Das LilyPad wurde für E-Textilien entwickelt, also für elektronische Kleidung. Es kann direkt in die Kleidung oder in ein Textilstück eingenäht werden. Die Verbindung zu Sensoren und Aktoren kann über leitfähige Fäden hergestellt werden. Die Schaltung lässt sich unsichtbar verstauen. Entworfen wurde das LilyPad von Leah Buechley und SparkFun Electronics.
Einsatzmöglichkeiten des LilyPad.
Das LilyPad lässt sich beispielsweise einsetzen, wenn Kleidung für Fußgänger oder Fahrradfahrer im Dunkeln leuchten und damit mehr Sicherheit bieten soll.
Die technischen Daten.
Technische Daten:
65148 Arduino Lernpaket_03.indd 30
ATmega328V und ältere ATmega168V mit 16-MHzQuarztakt Programmierung über USB-Adapter (ARDUINO/ USB) Spannungsversorgung 2,7 V bis 5,5 V 14 Digital-I/O-Pins (sechs davon als PWM nutzbar) sechs analoge 10-Bit-Eingänge Ausgangsstrom pro Digitalport 40 mA 32 KB oder 16 KB (ATmega168) FLASH (2 KB benötigt der Bootloader für sich) 1 KB (ATmega168) oder 2 KB (ATmega328) SRAM 512-(ATmega168) oder 1-KB-EEPROM
06.10.2015 16:31:57
31
2 Eine kleine Übersicht über die Arduino-Boards
2.7 | USB-Adapter
Diesen Programmieradapter gibt es in einer 3,3-Vund in einer 5-V-Ausführung.
Bild 2.7: USB-Adapter mit FTDI-Chip (Quelle: Elmicro).
Der Adapter wird zum Programmieren der Arduino-Boards ohne USB-Anschluss benötigt, z. B. des Arduino Mini. Die Pinbelegung entspricht den Original-Arduino-Spezifikationen. Der Adapter kann auch zur Kommunikation verwendet werden (virtuelle serielle Schnittstelle). Dieses Feature muss man für eigene Entwicklungen einfach haben. Es ermöglicht, einen Sketch h auf das Board zu laden, ohne die Reset-Taste zu drücken.
USB-Adapter sind mehr als technische Spielzeuge.
Es gibt eine Menge verschiedener ErweiterungsBoards, die mit den Arduino-Boards verwendet werden können. Wenn man sich im Internet umsieht, findet man fast monatlich neue Boards und nützliche Erweiterungen. Die Erweiterungs-Boards werden in der Arduino-Gemeinde Shieldss genannt und besitzen alle den gleichen Formfaktor. Das hat den Vorteil, dass man sie einfach auf die Arduino-Boards aufstecken kann. Ausgenommen sind die kleinen Units und das LilyPad.
Weitere nützliche Boards und Erweiterungen.
65148 Arduino Lernpaket_03.indd 31
06.10.2015 16:31:58
HEUTE SCHON EXPERIMENTIERT?
Egal ob Sie eine Haussteuerung oder eine LED-Leuchte mit Farbwechsel bauen möchten – mit Arduino™ gelingt es auch Quereinsteigern, die ersten Programme zu schreiben und so die eigenen Ideen zu verwirklichen. Mit diesem Lernpaket entdecken Sie die Grundlagen der Elektronik und der Arduino™-Programmierung und erfahren Schritt für Schritt, wie Sie vorgehen müssen, um Ihre Ideen in die Praxis umzusetzen. DIE BAUTEILE IM ÜBERBLICK
1 Arduino-Board UNO 1 Steckboard 2 Taster 1 Fototransistor PT331C 1 NPN-Transistor BC548C 1 Silizium-Dioden 1N4148 1 Piezo-Schallwandler 1 LED rot 1 LED grün 2 LED gelb 3 Widerstand 1,5 kΩ 1 Widerstand 4,7 kΩ 1 Widerstand 47 kΩ 1 Widerstand 10 kΩ 1 Widerstand 68 kΩ 1 Trimmwiderstand 10 kΩ PT10 1 Kondensator 1 µF 1 Isolierter Schaltdraht ca. 1m
DIESE PROJEKTE FÜHREN SIE DURCH:
Programmieren mit Schleifen Zufallszahlen generieren Ein einfaches Game Stoppuhr Spannung messen LED-Dimmer Ein- und Ausschaltverzögerung Musik mit ArduinoTM Mikrocontroller-Kerzenlicht Ausgänge überwachen Schuluhr Lüftersteuerung Dämmerungsschalter Alarmanlage Codeschloss Spannungsplotter Speicheroszilloskop Temperaturschalter Romantic Light Zeitschaltuhr Melodien komponieren State Machine Kapazitätsmesser … und viele mehr
Für Kinder unter 14 Jahren nicht geeignet!
Außerdem benötigen Sie: USB-Anschlusskabel
ISBN 978-3-645-65327-5
Arduino™ ist ein eingetragenes Markenzeichen der Arduino S.r.l und der damit verbundenen Firmen. © 2016 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, D-85540 Haar, Germany Innovationen, Irrtümer und Druckfehler vorbehalten. 2016/01
TURN ON YOUR CREATIVITY
DAS
ARDUINO
™
Dieses Lernpaket bietet alles, was Sie für Ihren Einstieg in die Programmierung benötigen: original Arduino™-Uno-Platine, Steckboard, Bauteile sowie ein 300-seitiges Handbuch und Software. So gelingen Ihre Projekte, und Arduino™ erwacht zum Leben.
DAS
DAS
TURN ON YOUR CREATIVITY
ARDUINO™ LERNPAKET
65327-5 HB_U1+U4_Layout 1 13.10.15 13:26 Seite 1
ARDUINO
™