http://sites.schaltungen.at/arduino-uno-r3/arduino-handbuchWels, am 2015-12-04BITTE nützen Sie doch rechts OBEN das Suchfeld [ ] [ Diese Site durchsuchen]DIN A3 oder DIN A4 quer ausdrucken
*******************************************************************************I** DIN A4 ausdrucken siehe
********************************************************I*
~015_b_PrennIng-a_arduino.uno.r3-arduino.handbuch (xx Seiten)_2a.pdf
Arduino Handbuch: € 34,95 Buch vorhandenx715_d_FRANZIS-x_60316-6 Arduino-Handbuch - BUCH (394 Seiten)_1a.pdf |
| | Mauswandern.ino |
| | MauswandernEsplora.ino |
| | Sensors_1_analog_temperature.ino |
| | Empfaenger.ino |
| | Sender.ino |
| | Verstaerker_Test.ino |
| | Lichtschranke.ino |
| | SendSMS.ino |
| | Sensortest.ino |
| | Wedelstab.ino |
| | kamera_ausloeser.ino |
| | LED_Lichterkette.ino |
| | Countdown.ino |
| | Stripe.ino |
| | Rotations_Monitor.ino |
| | Zeichendisplay.ino |
| | breakout.ino |
| | Wetterstation.ino |
| | Giessanlage.ino |
| | Line_Follow.ino |
| | Robot_Virtueller_Kaefig.ino |
| | analogeUhr.ino |
| | analogeUhr_2.ino |
| | MotorTest.ino |
| | Zeitraffer.ino |
| | Herzschlag.ino |
| | Herzschlag.ino |
| | miniSender.ino |
| | minisenderV2.ino |
333_d_Franzis-x_60316-4 Arduino Handbuch - Sketche_1a.zip
I Hardware 17
1 Ausgesuchte ArduinoTM-Platinen 19
1.1 Arduino Uno 19
1.2 Arduino Leonardo 22
1.3 Arduino Mega 2560 23
1.4 Arduino Esplora 25
1.5 Arduino Due 27
1.6 Arduino Robot 29
1.7 Arduino LilyPad 31
1.8 Intel Galileo 33
1.9 Arduino Yún 35
1.10 Arduino Micro 37
1.11 Arduino Fio 38
1.12 Arduino Zero 39
1.13 Weitere Platinen 41
1.13.1 Arduino Mega ADK 41
1.13.2 Arduino Ethernet 41
1.13.3 Arduino Mini 41
1.13.4 Arduino Nano 41
1.13.5 LilyPad Arduino Simple 42
1.13.6 LilyPad Arduino SimpleSnap 42
1.13.7 LilyPad Arduino USB 42
1.13.8 Arduino Pro 42
1.13.9 Arduino Pro Mini 43
1.14 Arduino-Platinen auf einen Blick 44
2 Mit Arduino-Shields erweitern 45
2.1 Proto-Shield 45
2.2 Ethernet-Shield 47
2.3 Motor-Shield 48
2.4 Wi-Fi-Shield 50
2.5 USB-Serial-Light-Adapter 52
2.6 Arduino ISP 53
II Programmierung 55
3 Arduino-Software entwickeln 57
3.1 Installation der Entwicklungsumgebung 59
3.1.1 Installation auf einem Windows-PC 59
3.1.2 Installation auf einem Apple Mac 63
3.2 Einrichten der Entwicklungsumgebung IDE 64
3.3 Erste Schritte in der C-Programmierung 67
3.3.1 Befehle und Kommentare einsetzen 68
3.3.2 In den Initialisierungsprozess einklinken 70
3.3.3 Ein Programm schreiben und installieren 71
3.3.4 Variablen als Platzhalter für Befehle nutzen 74
3.3.5 Schleifen als Kontrollinstrument einsetzen 78
3.3.6 Mit der if-Abfrage Bedingungen festlegen 81
3.3.7 Mit Funktionsaufruf Redundanzen vermeiden 85
3.3.8 String-Variablen für die Textausgabe nutzen 89
3.3.9 Felder definieren die Länge des Textfelds 91
3.3.10 Fehlerteufel mit serieller Ausgabe aufspüren 92
3.3.11 Präprozessoreinsatz vor dem Kompilieren 96
3.3.12 Weiterführende Hilfen für Entwickler 98
III Elektronik 99
4 Volt, Watt, Ampere und Ohm 101
4.1 Elektrischer Strom und Spannung 101
4.1.1 Gefährliche Potenzialunterschiede 103
4.1.2 Stromstärke elektrischer Leiter 104
4.2 Widerstand im Stromkreis 105
4.2.1 Farbcodes für Widerstände 106
4.2.2 Rechnen mit Volt, Watt, Ampere, Ohm 108
4.3 Dioden geben die Richtung an 110
4.4 Kondensatoren 111
speichern Energie
4.4.1 Experiment mit Elektrolytkondensatoren 112
4.4.2 Ausführungen und Bauformen 113
4.5 Transistoren verstärken und schalten 114
4.6 Integrierte Schaltkreise ändern alles 115
4.7 Revolution im Kleinen 118
4.8 Reihen- und Parallelschaltungen 120
4.8.1 Reihenschaltung von Widerständen 120
4.8.2 Reihenschaltung von Kondensatoren 120
4.8.3 Parallelschaltung von Kondensatoren 121
4.8.4 Parallelschaltung von Widerständen 122
4.9 Spannung gezielt reduzieren 123
4.10 Breadboard-Schaltungen 124
ohne Lötarbeit
4.10.1 Breadboard – Tipps und Tricks 125
4.11 Löten wie die Profis 125
4.11.1 Werkzeug zum Löten 126
4.11.2 Vorsichtsmaßnahmen 133
4.11.3 Erste Schritte: Verbinden zweier Kabel 134
4.11.4 Zweite Schritte: Lochrasterplatinen 136
4.11.5 Entlöten von Bauteilen 143
4.11.6 Tipps und Tricks 145
4.12 3-D-Drucker 146
4.13 Gebrauch eines Multimeters 148
4.13.1 Durchgangsmessung 148
4.13.2 Widerstandsmessung 149
4.13.3 Spannungsmessung 150
4.13.4 Strommessung 151
4.13.5 Tipps und Tricks 152
4.14 FabLabs und Hackerspaces 154
4.15 Schaltpläne lesen und begreifen 156
4.16 Datenblätter richtig lesen 157
IV 22 Projekte 159
5 ArduinoTM im Praxiseinsatz 161
5.1 Leonardo, der Kollegenschreck 161 Mauswandern.ino
5.1.1 Motivation 162 MauswandernEsplora.ino
5.1.2 Aufgabenstellung 162
5.1.3 Hintergrundwissen 163
5.1.4 Schaltplan 166
5.1.5 Source Code 166
5.1.6 Tipps und Tricks 168
5.2 Analoger Temperatursensor 169 Sensors_1_analog_temperature.ino
5.2.1 Perfektionismus 170
5.2.2 Aufgabenstellung 170
5.2.3 Hintergrundwissen 171
5.2.4 Schaltplan 174
5.2.5 Source Code 175
5.2.6 Tipps und Tricks 177
5.3 Infrarotfernbedienung 178 Sender.ino
5.3.1 TVZapPro 179 Empfaenger.ino
5.3.2 Aufgabenstellung 180 Sensortest.ino
5.3.3 Hintergrundwissen 180
5.3.4 Schaltplan 182
5.3.5 Source Code 184
5.3.6 Tipps und Tricks 188
5.4 Lichtschranke 189 Lichtschranke.ino
5.4.1 Gruben graben 190
5.4.2 Aufgabenstellung 191
5.4.3 Hintergrundwissen 191
5.4.4 Schaltplan 192
5.4.5 Source Code 194
5.4.6 Tipps und Tricks 195
5.5 SMS-Alarmanlage 196 SendSMS.ino
5.5.1 Handys im Wandel der Zeit 197
5.5.2 Aufgabenstellung 197
5.5.3 Hintergrundwissen 197
5.5.4 Schaltplan 200
5.5.5 Source Code 202
5.5.6 Tipps und Tricks 205
5.6 Wedelstab 205 Wedelstab.ino
5.6.1 WedelText Maxx 206
5.6.2 Aufgabenstellung 206
5.6.3 Hintergrundwissen 207
5.6.4 Schaltplan 210
5.6.5 Source Code 213
5.6.6 Tipps und Tricks 218
5.7 Kameraauslöser 219 kamera_ausloeser.ino
5.7.1 Die Wurzel des Übels 219 Zeitraffer.ino
5.7.2 Aufgabenstellung 220
5.7.3 Hintergrundwissen 220
5.7.4 Schaltplan 222
5.7.5 Source Code 225
5.7.6 Tipps und Tricks 226
5.8 LED-Lichterkette 227 Verstaerker_Test.ino
5.8.1 Variable Wandfarbe 228 Stripe.ino
5.8.2 Aufgabenstellung 229
5.8.3 Hintergrundwissen 229
5.8.4 Schaltplan 232
5.8.5 Source Code 234
5.8.6 Tipps und Tricks 235
5.9 Stoppuhr mit Sieben-Segment-Anzeige 236 Countdown.ino
5.9.1 Fehlende Bedarfsanalyse 236
5.9.2 Aufgabenstellung 237
5.9.3 Hintergrundwissen 237
5.9.4 Schaltplan 239
5.9.5 Source Code 241
5.9.6 Tipps und Tricks 244
5.10 Serielle LED-Lichterkette 246 LED_Lichterkette.ino
5.10.1 Kaufen Sie die neue RitterReiterTM 247
5.10.2 Aufgabenstellung 247
5.10.3 Hintergrundwissen 248
5.10.4 Schaltplan 250
5.10.5 Source Code 251
5.11 Rotationsmonitor 253 Rotations_Monitor.ino
5.11.1 Dinge, die die Welt nicht braucht 253
5.11.2 Aufgabenstellung 254
5.11.3 Hintergrundwissen 254
5.11.4 Schaltplan 257
5.11.5 Source Code 260
5.11.6 Tipps und Tricks 263
5.12 LCD-Textdisplay 264
5.12.1 Das Henne-Ei-Problem 264
5.12.2 Aufgabenstellung 265
5.12.3 Hintergrundwissen 265
5.12.4 Schaltplan 268
5.12.5 Source Code 270
5.12.6 Tipps und Tricks 273
5.13 Breakout auf TFT-Display 273 Zeichendisplay.ino
5.13.1 Notfallspiel aus dem Nichts 273
5.13.2 Aufgabenstellung 274
5.13.3 Hintergrundwissen 274
5.13.4 Schaltplan 276
5.13.5 Source Code 278
5.13.6 Tipps und Tricks 286
5.14 Wetterstation 287 Wetterstation.ino
5.14.1 Augen auf! 287
5.14.2 Aufgabenstellung 288
5.14.3 Hintergrundwissen 288
5.14.4 Schaltplan 290
5.14.5 Source Code 292
5.14.6 Tipps und Tricks 296
5.15 Automatische Gießanlage 296 Giessanlage.ino
5.15.1 Karlsruher Student konserviert Zimmerpflanzen! 297
5.15.2 Aufgabenstellung 298
5.15.3 Hintergrundwissen 299
5.15.4 Schaltplan 301
5.15.5 Source Code 303
5.15.6 Tipps und Tricks 304
5.16 Der Arduino Robot 305 Robot_Virtueller_Kaefig.ino
5.16.1 Kaufen Sie die Virtual Robo-Leash 305 Line_Follow.ino
5.16.2 Aufgabenstellung 306 MotorTest.ino
5.16.3 Hintergrundwissen 306
5.16.4 Source Code 309
5.16.5 Tipps und Tricks 311
5.17 Analoge Uhr 312 analogeUhr.ino
5.17.1 Steampunk 313 analogeUhr_2.ino
5.17.2 Aufgabenstellung 313
5.17.3 Hintergrundwissen 314
5.17.4 Schaltplan 320
5.17.5 Source Code 324
5.17.6 Tipps und Tricks 329
5.18 Der Arduino Yún 330
5.18.1 Der Kollege im Nachbarabteil 330
5.18.2 Aufgabenstellung 331
5.18.3 Hintergrundwissen 331
5.18.4 Inbetriebnahme des Arduino Yún 331
5.18.5 Source Code 342
5.18.6 Tipps und Tricks 344
5.19 Blauer Herzschlag 345 Herzschlag.ino
5.19.1 Schöne neue Welt 345
5.19.2 Aufgabenstellung 345
5.19.3 Hintergrundwissen 346
5.19.4 Schaltplan 347
5.19.5 Source Code 348
5.19.6 Tipps und Tricks 353
5.20 Mobiler Temperaturlogger 355 breakout.ino
5.20.1 Klobige Allzweckwaffe 355
5.20.2 Aufgabenstellung 355
5.20.3 Hintergrundwissen 356
5.20.4 Schaltplan 365
5.20.5 Source Code 366
5.21 Breadboard-Arduino 370
5.21.1 Meister Suns weise Worte 370
5.21.2 Aufgabenstellung 371
5.21.3 Hintergrundwissen 371
5.21.4 Schaltplan 375
5.21.5 Tipps und Tricks 378
5.22 Arduino und Windows 378 miniSender.ino
5.22.1 Schwarz-Weiß 379 minisenderV2.ino
5.22.2 Aufgabenstellung 379
5.22.3 Installation des Windows-PCs 379
Stichwortverzeichnis 397
333_d_Franzis-x_60316-4 Arduino Handbuch - Leseprobe (Inhaltsverzeichnis)_1a.pdf
Breadboard-Arduino
5.21_Ohne Inhalt_1a.zip
Breadboard-Arduino
Ganz ohne Arduino bauen wir uns einen Arduin0 Seite 370
5.21 Breadboard-Arduino™
Kommen wir zu den hohen Weihen der Arduino-Kunst: Arduino ohne Arduino.
5.21.1 Meister Suns weise Worte
Als Schüler Dujon Wu ehrfürchtig die Zelle des altehrwürdigen Mönchs Sun betrat, spürte er sogleich die meisterliche Ruhe in sich aufsteigen.
Auf dem kargen Steinboden sitzend, empfing ihn Sun mit gütigen, wachen Augen und lud ihn mit einer weichen Geste ein, sich zu ihm zu setzen und die raue Steinwand als Lehne zu verwenden
– ein Luxus, den er selbst sich nicht gönnte.
Nach einem aufmunternden Blick des alten Meisters trug der schüchterne Wu sein Anliegen vor:
»Meister, ich möchte mit meinem Arduino Due eine LED ansteuern, aber Meister Son war mit dem Resultat nicht zufrieden.
Ich soll von dir eine Lektion in Bescheidenheit lernen.
Mir ist nicht klar, warum.« Nach einigen Minuten des bedeutungsschweren Schweigens und milden Lächelns verkündete Sun seine Weisheit:
»Sohn, keinen Due du brauchst, um zu verrichten solch einfache Werke. Unterfordert selbst ein Uno wäre – und respektlos das ihm gegenüber wäre.
Auch Powermanagement du keines brauchst, wenn eine Stromversorgung von 5 V du verwendest.
Einen USB-Anschluss du nicht benötigst, wenn du hast ISP. Steckerbuchsen und Resetschalter nichts anderes sind als unnötiger Tand, wenn du nicht willst sie benutzen.
« Mit weiten Augen stottert Wu: »Aber … aber … dann bleibt ja kaum etwas übrig, gerade mal der Prozessor selbst!«
Die Falten um die blauen Augen des Meisters vertiefen sich nochmals. »Einen Schritt weiter auf dem Weg der Weisheit du nun bist – gehe und erforsche den nächsten.«
5.21.2 Aufgabenstellung
Wir lösen Wus Aufgabe und bauen einen Arduino, der nur aus dem Nötigsten besteht.
Der Prozessor ATmega328P wird über die ISP-Schnittstelle programmiert, wobei ein Arduino ISP zum Einsatz kommt.
5.21.3 Hintergrundwissen
Ein normaler Arduino lässt sich sofort nach dem Auspacken bequem und einfach über ein USB-Kabel programmieren.
Die Bereitstellung der USB-Verbindung übernimmt dabei der Bootloader, eine Software, die sich auf einem Mikrocontroller an Bord des Arduino befindet.
ISP (In-System-Programmierung)
Auf einem einzeln gekauften Mikrocontroller befindet sich noch kein Bootloader, folglich kann auch nicht per USB mit ihm kommuniziert werden.
Stattdessen kann ein ISP (In-System-Programmer) benutzt werden, um Arduino-Code zu übertragen.
In-System bedeutet dabei, dass der Mikrocontroller programmiert werden kann, während er schon in einer Schaltung verbaut ist.
Bei den in Arduinos verbauten ATmega-Chips verwendet der ISP hierbei ein Übertragungsprotokoll, das ähnlich wie SPI aufgebaut ist.
Zur Übertragung werden folgende Verbindungen zwischen ISP und dem zu programmierenden Prozessor hergestellt:
{ GND: Die Massen von ISP und Zielprozessor.
{ Vcc: Die Versorgungsspannung, die der ISP für die zu programmierende Schaltung
bereitstellt.
{ MOSI: Die Datenleitung, die Daten vom ISP zum Zielprozessor transportiert.
{ MISO: Die Datenleitung, die Daten vom Zielprozessor zum ISP transportiert.
{ SCK: Der ISP stellt auf dieser Leitung einen gemeinsamen Takt bereit, der zur Kommunikation
benötigt wird.
{ RST: Diese Leitung versetzt den Zielprozessor bei Bedarf in den Reset-Modus, in
dem dieser programmiert werden kann.
Damit man einen Mikrocontroller schnell programmieren kann, sind diese sechs Leitungen auf einer genormten Stecker-/Buchsenleiste angeordnet.
Inbetriebnahme des Arduino ISP
Bild 5.98: Die Anschlussbelegung der ISP-Stiftleiste. Der Pin mit quadratischer Lötfläche ist dabei immer der MISO-Pin.
Um den Arduino ISP zu verwenden, muss eine Arduino-Entwicklungsumgebung ab Version 1.5.7 verwendet werden.
Da auch hier leider keine Treiber beiliegen, müssen diese noch von www.arduino.cc/en/uploads/Main/ArduinoISP_WindowsDrivers.zip heruntergeladen und in einen Ordner Ihrer Wahl entpackt werden.
Dann können Sie Ihren Arduino ISP per Mikro-USB-Kabel mit dem Computer verbinden.
Nicht verzagen, wenn Sie anders als erwartet keine LEDs aufleuchten sehen – auf der Platine sind keine verbaut.
Wenn Sie jetzt den Geräte-Manager öffnen, sehen Sie ein neues Gerät namens ArduinoISP, das auf seine Treiberinstallation wartet.
Dafür müssen Sie nach einem Rechtsklick auf das Gerät den Menüpunkt Treibersoftware aktualisieren wählen.
Weisen Sie den Setup-Assistenten an, auf dem Computer nach Treibersoftware zu suchen, und wählen Sie den Ordner aus, in den Sie die heruntergeladenen Dateien entpackt haben.
Nach einer wenige Sekunden dauernden Installation ist das Gerät jetzt betriebsbereit und kann in der Arduino-Entwicklungsumgebung verwendet werden.
Bild 5.100: Auch wenn er noch nicht installiert ist, wird der Arduino ISP schon mit korrektem Namen im Geräte-Manager angezeigt.
C:\Temp\ArduinoISP_WindowsDrivers
Bild 5.101: Verwenden Sie den Treiber aus dem Internet.
Die Jumper des Arduino ISP
Auf dem Arduino ISP sind zudem zwei Lötverbindungen angebracht, die bei Bedarf mit einem Lötkolben getrennt – und wieder geschlossen – werden können. Die Lötstelle
SJVCC stellt im geschlossenen Zustand eine Versorgungsspannung von 5 V für den zu programmierenden Mikrocontroller bereit.
In dem Fall sollte dieser an keiner anderen Versorgungsspannung wie beispielsweise einer Batterie angeschlossen sein, da sonst auch dort 5 V anliegen.
Wenn die Firmware des Arduino ISP aktualisiert werden soll, kann die Lötstelle SJFAB geöffnet und der Arduino ISP mithilfe eines anderen ISP beschrieben werden.
Verwendung eines Arduino Uno als ISP
Wenn Sie einen anderen Arduino besitzen, können Sie diesen ebenfalls als ISP nutzen.
Dafür müssen Sie den Sketch ArduinoISP unter Datei/Beispiele auf den Arduino laden, der als ISP fungieren soll.
Dann müssen die ISP-Verbindungen zwischen dem Arduino Uno und dem zu programmierenden Mikrocontroller verlegt werden.
Um jetzt Quellcode auf den Mikrocontroller hochzuladen, muss unter Werkzeuge/ Board das richtige Arduino-Board ausgewählt werden, für den Prozessor ATmega328P muss beispielsweise Arduino Uno gewählt werden.
Bild 5.102: Auch ein Arduino Uno kann als Programmiergerät verwendet werden.
Nachdem unter Werkzeuge/Programmer noch Arduino as ISP selektiert wurde, kann per Menüpunkt Datei/Hochladen mit Programmer oder mit der Tastenkombination [Strg]+[Umschalt]+[U] der Quellcode hochgeladen werden.
Benötigte Bauteile
1x Arduino ISP oder Arduino Uno, Leonardo oder Mega
1x Mikrocontroller ATmega328P-PU
1x Breadboard
8x Steckbrücken / Drahtbrücken
1x grüne LED
1x Widerstand 120R
2x Kondensatoren 22pF (optional)
1x Quartzoszillator 8MHz (QM016 optional)
5.21.4 Schaltplan
Bild 5.103: Falls der ATmega328P nur mit 1 MHz betrieben werden soll, kann auf den Quarz und die zwei Kondensatoren verzichtet werden.
Da wir auf einem Breadboard keinen ISP-Anschluss zur Verfügung haben, müssen die Verbindungen zwischen ISP und Mikrocontroller mit Kabeln verlegt werden, indem jeder Pin des ISP mit dem gleichnamigen Pin des ATmega328P verbunden wird.
Zudem wird noch eine LED an Pin PB5 des Mikrocontrollers angeschlossen – dieser Pin entspricht Pin 13 in der Arduino-Entwicklungsumgebung.
Der Minuspol der LED wird wie gewohnt über einen 120R Vorwiderstand an die Masse gelegt.
Nachdem alle Kabel nochmals überprüft wurden – hierbei ist besonders darauf zu achten, dass GND und Vcc nicht vertauscht sind –, kann der Arduino ISP mit einem
Mikro-USB-Kabel mit dem Computer verbunden werden.
Bild 5.104: Die Pinbelegung des ATmega328P (innen) und die dazugehörigen Arduino-Pins (außen).
Programmierung des ATmega328P
Um einen Mikrocontroller mithilfe des Arduino ISP zu programmieren, muss dieser in der Arduino-Entwicklungsumgebung unter dem Menüpunkt Werkzeuge/Programmer ausgewählt werden.
Zudem muss unter Werkzeuge/Board der Arduino Uno ausgewählt werden, der ja ebenfalls mit einem ATmega328P bestückt ist. Um zu testen, ob alles funktioniert, kann mit Datei/Beispiele/01.
Basics der Arduino-Sketch Blink geladen werden.
Dieser kann dann unter Datei/Hochladen mit Programmer hochgeladen werden. Alternativ kann die Tastenkombination [Strg]+[Umschalt]+[U] zum Hochladen benutzt werden.
Die in der Schaltung verbaute LED sollte aufleuchten, nachdem der Code übertragen wurde.
Laut Quellcode des Beispielsketchs sollte die LED abwechselnd eine Sekunde leuchten und eine Sekunde dunkel sein – in der Schaltung leuchtet sie aber für jeweils 16 Sekunden.
Das liegt daran, dass ein frischer ATmega328P nicht mit der für den Arduino Uno typischen Taktfrequenz von 16 MHz arbeitet, sondern nur mit 1 MHz.
Die Frequenz von 1 MHz wird auch nicht mithilfe des angeschlossenen Quarzes erzeugt, sondern im Chip des Mikrocontrollers selbst.
Das hat den Vorteil, dass für einfache Projekte, die mit wenig Rechenleistung auskommen, keine weiteren externen Komponenten benötigt werden.
Damit trotzdem die Arduino-Befehle problemlos verwendet werden können, muss eine neue Board- Definition angelegt werden.
Dafür müssen Sie in der Datei hardware/arduino/avr/ boards.txt den unten stehenden Text einfügen. Den Ordner hardware finden Sie im Installationsverzeichnis von Arduino.
001 bareUno.name=ATmega328P 1MHz
002 bareUno.vid.0=0x2341
003 bareUno.pid.0=0x0043
004 bareUno.vid.1=0x2341
005 bareUno.pid.1=0x0001
006
007 bareUno.upload.tool=avrdude
008 bareUno.upload.protocol=arduino
009 bareUno.upload.maximum_size=32256
010 bareUno.upload.maximum_data_size=2048
011 bareUno.upload.speed=115200
012
013 bareUno.bootloader.tool=avrdude
014 bareUno.bootloader.low_fuses=0xFF
015 bareUno.bootloader.high_fuses=0xDE
016 bareUno.bootloader.extended_fuses=0x07
017 bareUno.bootloader.unlock_bits=0x3F
018 bareUno.bootloader.lock_bits=0x0F
019 bareUno.bootloader.file=optiboot/optiboot_atmega328.hex
020
021 bareUno.build.mcu=atmega328p
022 bareUno.build.f_cpu=1000000L
023 bareUno.build.board=AVR_UNO
024 bareUno.build.core=arduino
025 bareUno.build.variant=standard
Nach dem nächsten Neustart von Arduino erscheint jetzt unter Werkzeuge/Boards ein neuer Eintrag mit dem Namen ATmega328P 1MHz.
Wenn Sie diesen auswählen und dann das Blink-Beispiel mithilfe des ISP hochladen, geht die LED wie gewünscht jede Sekunde einmal an oder aus.
Mit einer Taktfrequenz von 1 MHz steht Ihnen natürlich nur ein Sechzehntel der Rechenleistung des Mikrocontrollers zur Verfügung, und auch einige Arduino-
Features wie beispielsweise Serial.println() funktionieren nicht. Falls Sie also den vollen Funktionsumfang nutzen wollen, müssen die sogenannten Fuse-Bits des
ATmega328P verändert werden. Mithilfe dieser Bits, die nur mit einem ISP verändert werden können, werden einige grundlegende Eigenschaften des Mikrocontrollers, wie beispielsweise die Betriebsfrequenz, festgelegt.
Die einfachste Möglichkeit, den Wert dieser Fuse-Bits zu verändern, besteht darin, einen neuen Bootloader hochzuladen.
Das geschieht einfach durch einen Klick auf den
Menüpunkt Werkzeuge/Bootloader brennen, nachdem Sie unter Werkzeuge/Boards den Arduino Uno ausgewählt haben.
Da der ATmega328P nicht ohne weitere Komponenten eine Frequenz von 16 MHz erzeugen kann, muss ein 16-MHz-Quarz zwischen die Pins 9 und 10 des Mikrocontrollers platziert werden.
Zusätzlich werden diese beiden Pins mit jeweils einem 22-pF-Kondensator an die Masse angeschlossen.
Ohne diesen Quarz kann der Mikrocontroller nicht mit einer Taktfrequenz von 16 MHz angesprochen werden, weshalb auch keine Neuprogrammierung mit einer niedrigeren Taktfrequenz möglich ist.
Das Hochladen eines Bootloaders sollte deshalb nicht unüberlegt erfolgen.
Falls der Prozessor wieder auf 1 MHz zurückgesetzt werden soll, kann das Board ATmega328P unter Werkzeuge/Board ausgewählt und der Bootloader hochgeladen werden.
Wird nach dem Upload des Bootloaders ein anderer Sketch mit dem ISP hochgeladen, wird der Bootloader mit dem neuen Sketch überschrieben – USB-Kommunikation ist dann nicht mehr möglich.
Allerdings steht zusätzlicher Speicherplatz für den Sketch zur Verfügung, der ansonsten vom Bootloader belegt werden würde.
5.21.5 Tipps und Tricks
Nachdem ich den Arduino-Uno-Bootloader hochgeladen habe, lässt sich der Mikrocontroller nicht mehr ansprechen.
Der ATmega328P wurde jetzt mithilfe seiner Fuse-Bits so eingestellt, dass er einen externen Quarzkristall zur Frequenzerzeugung benutzt.
Ohne einen angeschlossenen 16-MHz-Kristall wird keine Taktfrequenz generiert, und der Chip kann deshalb nicht mehr angesprochen werden. Wenn Sie einen Kristall und die zwei dazugehörigen
Kondensatoren angeschlossen haben, überprüfen Sie nochmals die Verbindungen. Ansonsten müssen Sie einen solchen Kristall zur Schaltung hinzufügen.
Wie kann ich Energie sparen?
Je schneller ein Prozessor arbeitet, desto mehr Energie verbraucht er.
Das kann sich negativ auf die Laufzeit auswirken, wenn man nur eine begrenzte Energiemenge mitführt, wie es bei Batterien oder Akkus der Fall ist.
Für viele Aktionen, die ein Prozessor durchführen soll, reichen niedrige Taktfrequenzen völlig aus. Beispielsweise macht es im Ergebnis kaum einen Unterschied, ob ein
Prozessor, der pro Minute einmal einen Temperatursensor abfragt, dies mit 16 MHz oder mit 1 MHz erledigt – allerdings wird die Laufzeit der Batterie dramatisch verlängert.
5.22 Arduino™ und Windows
Es gibt kaum etwas Gegensätzlicheres als Arduino und Windows.
Das eine ist eine Entwicklungsumgebung, klein, puristisch und selbst auf kleinsten Mikrocontrollern lauffähig, das andere ein Betriebssystem, GByte-schwer, Milliarden von Funktionen und lange Zeit nur auf Prozessoren der x86-Baureihe lauffähig. Wie soll das jemalszusammenpassen?
Der Intel Galileo schafft dieses Kunststück.
Er hat einen x86-Prozessor, der mit 400 MHz arbeitet und so einen Kompromiss eingeht zwischen den gehobenen Ansprüchen der Windows-Umgebung und den bescheidenen Ansprüchen der Arduino-Welt.
Der Weg zu Windows birgt zwar so manchen Stolperstein, am Ende winkt aber neben einem vollwertigen Betriebssystem auch Visual Studio als neue Entwicklungsumgebung
– sogar mit Remote Debugging.
Die Kapitel des Buches
Leonardo, der Kollegenschreck
Bauteile
1x Breadboard
2x Drahtbrücken
1x Taster
Analoger Temperatursensor
5.02_analoger_Temperatursensor_1a.zip
Dieses Projekt beschreibt, wie man einen analogen Temperatursensor ansteuert und einen Ton auf einem Lautsprecher ausgibt.
1x Widerstand 2k
1x Widerstand 100R
1x N-Kanal-MOSFET BUZ11
1x Sensor NTCLE100E3202JBO
1x Lautsprecher 8Ohm / 0,25W
Infrarotfernbedienung
5.03_Infrarot-Fernbedienung_1a.zip
Hier geht es darum, mit zwei Arduino-Schaltungen je einen Infrarot-Sender und -Empfänger aufzubauen.
1x Widerstand 100R
1x TSOP31238
1x Kondensator 4,7µF
1x IR-LED CQY99
1x Widerstand 1k Ohm
1x Widerstand 33 Ohm
1x Transistor BC549
Lichtschranke
5.04_Lichtschranke_1a.zip
Wir bauen eine Lichtschranke, die eine Kamera auslöst.
1x IR-LED CQY99
1x Widerstand 100
1x Widerstand 1M
1x Photodiode LTR-323DB
SMS Alarmanlage
5.05_SMS_Alarmanlage_1a.zip
Ein PIR Bewegungssensor löst in diesem Projekt das Versenden einer SMS aus
1x BreadBoard
3x Drahtbrücken
1x PIR-Sensor
edelstab
5.06_Wedelstab_1a.zip
Eine Schaltung mit LEDs zeigt Buchstaben und Wörter im Dunkeln an, wenn der Stab geschwenkt wird.
1x 2m Kupferlitze, isoliert
2x Schieberegister
16x LED, weiß
16x Widerstand 180Ω
1x Sensor MMA7361
1x Lochrasterplatine
1x Stiftleiste
1x 9V-Blockakku
1x Batterieclip
1x Stecker 2,1mm x 5,5mm
ameraauslöser
5.07_Kamera_Ausloeser_1a.zip
Über einen Infrarotsender wird ein Signal an einen zweiten Arduino gesendet, der dann eine Kamera auslöst.
1x Transistor BC549
1x Widerstand 820R
1x Widerstand 33R
1x Taster
1x IR-LED CQY99
LED-Lichterkette
5.08_LED_Lichterkette_1a.zip
Ein Arduino soll eine RGB-LED-Lichterkette so ansteuern, dass beliebige Farben gemischt werden können.
1x Taster
1x dickere Kabel 1,5mm2
1x N-Kanal-MOSFET BUZ11
1x Led-Lichterkette 12V
1x Netzteil 12V
Stoppuhr mit Sieben-Segment-Anzeige
5.09_Stoppuhr_1a.zip
Wir bauen mit mehreren Sieben-Segment-Anzeigen eine Stoppuhr.
1x 7-Segment-Anzeige, 4stellig
1x Widerstand 1k
1x Taster
a
Serielle LED-Lichterkette
5.10_Serielle_Lichterkette_1a.zip
Wir bauen mit mehreren Sieben-Segment-Anzeigen eine Stoppuhr.
1x Stiftleiste
1x dickere Kabel
1x LED-Stripe WS2812B
1x Netzteil 5V / 4A
1x Buchse 2,1mm x 5,5mm
Rotationsmonitor
5.11_Rotations_Monitor_1a.zip
Mit mehreren LEDs und einem Motor wird ein Monitor aufgebaut, der eine Blume anzeigt, sobald er in Bewegung kommt.
1x Blinkenlight-Shield Franzis
1x 9V-Blockakku
1x Batterieclip für 9V Transistorbatterie
1x Stecker 2,1mm x 5,5mm
1x Lüfter 12V
1x Netzteil 12V
LCD-Textdisplay
5.12_LCD_Display_1a.zip
In diesem Kapitel wird ein LCD-Textdisplay durch einen Arduino angesteuert und der Wert eines Widerstands ausgemessen.
1x Breadboard
18x Drahtbrücken
1x LCD-Display 16x2 Zeichen
1x Potentiometer 10k
1x Widerstand 100R
1x Widerstand 270R
Breakout auf TFT Display
5.13_Breakout_auf_TFT_Display_1a.zip
Hier steuern wir ein TFT-Display an und programmieren ein altbekanntes Computerspiel.
1x TFT-Diplay 240x320Pixel (ILI9341)
1x Widerstand 100R
2x Taster
Wetterstation
5.14_Wetterstation_1a.zip
Hier bauen wir uns eine Wetterstation, die mehrere Sensoren auswertet und die Ergebnisse über WLAN verteilt.
1x Sensor DHT22
1x Sensor BMP085
Automatische Gießanlage
5.15_Giessanlage_1a.zip
Hier erhöhen wir die Lebenschancen heimischer Topfpflanzen, indem wir eine Gießanlage bauen.
1x Netzteil 5V 4A
1x Buchse 2,1mm x 5,5mm
1x Wasserpumpe RS-360SH
1x N-Kanal-MOSFET BUZ11
1x Sensor LDR03
1x Widerstand 4,7kΩ
1x Diode 1N4148
1x Bodenfeuchtigkeitssensor
4m Schlauch 4mm Innendurchmesser
Der Arduino Robot
5.16_Arduino_Robot_1a.zip
Wir lernen den Arduino Robot in diesem Kapitel kennen und verweisen ihn in seine Schranken.
1x Arduino Robot
Analoge Uhr
5.17_analoge_Uhr_1a.zip
Anhand einer analogen Steampunk-Uhr sehen wir, wie man einen Schrittmotor ansteuert.
1x Schrittmotor
1x Netzteil 5V / 4A
1x Taster
1x Sensor TCRT1000
1x Widerstand 120R
1x Widerstand 10k
Der Arduino Yun
5.18_ Fehlt _1a.zip
Über eine an den Arduino Yùn angeschlossene Webcam wird in diesem Kapitel eine Zeitraffer-Aufnahme erstellt.
1x Webcam
1x microSD-Karte
Blauer Herzschlag
5.19_Lilypad_1a.zip
Anhand eines Arduino-Lilypads bauen wir eine elektronische Brosche, die wie ein Herz pulsiert.
20x LED, blau 5mm
20x Widerstand 120R
4x AA-Batterie
1x Batteriebox
1x Spannungswandler LM7805
2m Kupferlitze, isoliert
Mobiler Temperaturlogger Datenlogger
5.20_Temperaturlogger_1a.zip
In diesem Projekt bauen wir einen Temperaturlogger, der sehr wenig Strom verbraucht und seine Daten über Infrarot überträgt.
1xBreadBoard
11x Drahtbrücken
1x Sensor NTCLE100E3202
1x Atmega328P
1x Widerstand 2k
1x IR-LED CQY99
1x Widerstand 62R
1x Knopfzelle 3V CR2032
1x Knopfzellenhalter
Breadboard-Arduino
5.21_Ohne Inhalt_1a.zip
Ganz ohne Arduino bauen wir uns einen Arduino.
1x BreadBoard
8x Drahtbrücken Dm=0,64mm
1x ATmega328P
1x LED, grün 5mm
1x Widerstand 120R
1x Kondensator 22pF
1x Quartzoszillator 8MHz
2x Drahtbrücken
1x LED rot 5mm
1x Widerstand 120R
DIN A4 ausdrucken
*********************************************************
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE