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.
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.
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.
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.
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 6
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 M
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.
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.
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.
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.
TURN ON YOUR CREATIVITY FRANZIS ARDUINO MIKROCONTROLLERGRUNDLAGEN 65148 Arduino Lernpaket_03.indd 10 06.10.
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.
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.
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.
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.
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.
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.
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.
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.
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.
TURN ON YOUR CREATIVITY FRANZIS ARDUINO ÜBERSICHT ÜBER DIE ARDUINOBOARDS 65148 Arduino Lernpaket_03.indd 20 06.10.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.