Cover | 1 |
Titel | 3 |
Impressum | 4 |
Inhaltsverzeichnis | 5 |
Kapitel 1: Einleitung | 13 |
1.1 3. Auflage | 13 |
1.2 Aufbau des Buches | 14 |
1.3 Mehr Informationen | 16 |
1.4 Weitere Quellen | 17 |
1.5 Danksagung | 17 |
Kapitel 2: Arduino-Plattform | 19 |
2.1 Am Anfang war der König | 19 |
2.2 Be a Maker | 20 |
2.3 Arduino-Plattform | 23 |
2.4 Hardware | 23 |
2.4.1 Arduino Uno | 25 |
2.5 Software | 28 |
2.6 Installation der Software | 29 |
2.6.1 Installation des USB-Treibers unter Windows 7 und Windows 8 | 30 |
2.6.2 Installation des USB-Treibers unter Windows XP | 31 |
2.6.3 Installation des USB-Treibers unter Mac OS X | 32 |
2.6.4 Installation des USB-Treibers unter Linux | 33 |
2.7 Get Connected | 33 |
2.7.1 Verbindungskabel | 33 |
2.7.2 Verbindung und »Blink« | 34 |
2.7.3 Projekt Blink | 37 |
2.8 Arduino-Entwicklungsumgebung | 38 |
2.8.1 Voreinstellungen | 38 |
2.8.2 Aufbau Entwicklungsumgebung | 40 |
2.8.3 Menü- und Symbolleiste | 40 |
2.8.4 Editor | 42 |
2.8.5 Ausgabefenster | 43 |
2.9 Arduino-Boards | 45 |
2.9.1 Arduino Leonardo | 45 |
2.9.2 Arduino Duemilanove | 45 |
2.9.3 Arduino Diecimila | 47 |
2.9.4 Arduino Due | 47 |
2.9.5 Arduino Yun | 47 |
2.9.6 Arduino Mega 2560 | 48 |
2.9.7 Arduino Mega ADK | 49 |
2.9.8 Arduino Nano | 50 |
2.9.9 Arduino Mini | 50 |
2.9.10 Arduino BT | 50 |
2.9.11 Arduino LilyPad | 51 |
2.9.12 Arduino Fio | 51 |
2.10 Arduino-kompatible Boards | 52 |
Kapitel 3: Startschuss | 53 |
3.1 Das Arduino-Board | 54 |
3.1.1 Stromlaufplan | 54 |
3.1.2 Mikrocontroller – Das Gehirn | 56 |
3.1.3 Anschlussbelegung | 56 |
3.1.4 Stromversorgung | 58 |
3.2 Steckbrett – Experimentieren ohne Löten | 59 |
3.2.1 Spannungsversorgung auf dem Steckbrett | 63 |
3.3 Spannung, Strom und Herr Ohm | 66 |
3.4 Widerstand & | Co. | 70 |
3.4.1 Widerstand | 71 |
3.4.2 Potentiometer | 72 |
3.4.3 Kondensator | 73 |
3.4.4 Diode | 73 |
3.4.5 Leuchtdiode | 74 |
3.4.6 Transistor | 75 |
3.4.7 Integrierte Schaltung (IC) | 76 |
3.4.8 Relais | 78 |
3.4.9 Schalter | 79 |
3.4.10 Taster | 79 |
3.5 Programmcode | 80 |
3.5.1 Integer, Typen und Variablen | 80 |
3.5.2 Struktur | 84 |
3.6 Testen | 85 |
3.6.1 Serieller Monitor | 86 |
3.6.2 Code-Debugging | 89 |
3.7 Projekt Blink | 91 |
3.8 Projekt Wechselblinker | 94 |
Kapitel 4: Eingänge und Ausgänge | 97 |
4.1 Digitale Eingänge | 98 |
4.1.1 Port als Eingang setzen | 98 |
4.1.2 Digitalen Eingang lesen | 100 |
4.1.3 Digitalen Eingang entprellen | 105 |
4.1.4 Hohe Eingangssignale | 109 |
4.2 Digitale Ausgänge | 110 |
4.2.1 Ausgang setzen und ausgeben | 111 |
4.2.2 Praxis-Tipp: Status eines Ausgangs lesen | 112 |
4.3 Analoge Welt | 113 |
4.3.1 Analoge Signale einlesen | 115 |
4.3.2 Analoge Signale ausgeben | 120 |
4.4 Serielle Kommunikation | 124 |
4.4.1 Serielle Schnittstelle (RS232) | 124 |
4.4.2 Schnittstellenerweiterung | 129 |
4.4.3 I2C/2-Wire (Two-Wire) | 131 |
4.5 Drahtlose Kommunikation | 144 |
4.5.1 433-MHz-Kommunikation | 144 |
4.5.2 Daten übertragen mit RFM12B Transceiver | 152 |
4.6 Projekt: Würfel | 167 |
Kapitel 5: Sensoren | 175 |
5.1 LDR (Fotowiderstand) | 176 |
5.2 NTC/PTC | 178 |
5.3 Integrierte Temperatursensoren | 182 |
5.4 Pt100 und Thermoelemente | 200 |
5.5 Feuchtesensoren | 213 |
5.6 Kombinierte Umweltsensoren | 217 |
5.7 Schaltersensoren | 229 |
5.8 Abstandssensoren | 230 |
5.9 Beschleunigungssensor | 231 |
5.10 Kompass | 234 |
5.11 Hall-Sensor | 237 |
5.12 Projekt Kompass mit Richtungsanzeige | 243 |
5.13 Projekt Gefrierschrankwächter | 250 |
Kapitel 6: Aktoren | 255 |
6.1 Relais | 255 |
6.2 Servos | 258 |
6.2.1 Analoge Temperaturanzeige | 264 |
6.2.2 Servos als Motoren für Miniroboter | 267 |
6.3 Motoren | 268 |
6.4 Hohe Lasten schalten | 276 |
6.5 Projekt: Roboter mit Wii-Steuerung | 279 |
Kapitel 7: Anzeigen | 291 |
7.1 Leuchtdiode (LED) | 291 |
7.1.1 Konstantstromquelle mit Transistor | 292 |
7.1.2 Konstantstromquelle mit Spannungsregler | 293 |
7.1.3 Helligkeit steuern | 293 |
7.1.4 LED als Berührungssensor | 295 |
7.1.5 Jetzt wird es hell | 299 |
7.2 7-Segment-Anzeigen | 300 |
7.2.1 Port Expander über den I2C-Bus | 304 |
7.3 LC-Display (LCD) | 307 |
7.3.1 Paralleles LC-Display | 307 |
7.3.2 Serielle LC-Displays | 310 |
7.4 LC Display Nokia 3310/5110 | 314 |
7.5 LED-Matrix | 316 |
7.6 Projekt Geschwindigkeitsmesser fürs Fahrrad | 317 |
7.7 Projekt Schrittzähler | 326 |
Kapitel 8: Datenverarbeitung | 331 |
8.1 Daten speichern | 331 |
8.1.1 Daten im ATmega-Controller speichern | 331 |
8.1.2 Daten in externem EEPROM ablegen | 333 |
8.1.3 Daten auf SD-Karte speichern | 336 |
8.2 Daten ins Internet senden | 342 |
8.3 Datenverarbeitung mit Processing | 342 |
8.3.1 Processing – Bitte antworten | 343 |
8.3.2 Arduino mit Processing steuern | 347 |
8.4 Gobetwino – Übernehmen Sie! | 350 |
8.5 Projekt: Programmierbarer Signalgeber | 352 |
8.6 Projekt: Digitales Netzteil | 358 |
8.6.1 Sollwerteingabe mit Drehgeber | 387 |
Kapitel 9: Erweiterungen | 397 |
9.1 Bibliotheken | 397 |
9.1.1 Ethernet-Bibliothek | 398 |
9.1.2 Wire-Bibliothek | 398 |
9.1.3 SoftwareSerial | 400 |
9.1.4 TinyGPS-Bibliothek | 402 |
9.1.5 NMEA | 403 |
9.1.6 PString-Bibliothek | 405 |
9.1.7 TextFinder-Bibliothek | 405 |
9.1.8 Matrix-Bibliothek | 405 |
9.1.9 LiquidCrystal-Bibliothek (LCD) | 406 |
9.1.10 JeeLib | 406 |
9.1.11 MIDI | 406 |
9.1.12 Stepper-Bibliothek | 407 |
9.1.13 Webduino | 409 |
9.1.14 Wii Nunchuk | 409 |
9.2 Hardware-Erweiterungen (Shields) | 409 |
9.2.1 Proto-Shield | 410 |
9.2.2 Protonly Proto-Shield | 411 |
9.2.3 Floweronly Proto-Shield | 412 |
9.2.4 Ethernet-Shield | 412 |
9.2.5 Datalogger und GPS Shield | 415 |
9.2.6 Adafruit Motor-Shield | 415 |
9.2.7 DFRobot Motor-Shield | 415 |
9.2.8 Diduino MsMot Shield | 416 |
9.2.9 Keypad Shield | 416 |
9.2.10 TouchShield | 416 |
9.2.11 Wave Shield | 417 |
9.2.12 SD Card Shield | 417 |
9.2.13 MIDI Shield | 418 |
9.2.14 Nano Shield | 419 |
9.2.15 Lithium Backpack | 419 |
9.2.16 ITEAD Power-Shield | 419 |
9.2.17 RFM12B Shield | 420 |
9.2.18 Xbee Shield | 420 |
9.2.19 CC3000 WiFi Shield | 421 |
9.2.20 Schraubklemmen-Shield | 421 |
9.3 Hardware-Adapter | 422 |
9.3.1 RFM12B Breakout-Board | 422 |
9.3.2 Wii-Nunchuk-Adapter | 423 |
Kapitel 10: Arduino im Einsatz | 425 |
10.1 Verbindung zum Internet | 425 |
10.1.1 Netzwerkverbindung | 426 |
10.1.2 Arduino als Webserver | 431 |
10.1.3 Der Arduino als Webclient | 434 |
10.1.4 Ethernet mit ENC28J60-Modul | 439 |
10.1.5 Eingänge und Ausgänge übers Internet steuern | 442 |
10.1.6 Wireless Ethernet (WiFi) | 445 |
10.2 Heute schon getwittert? | 470 |
10.3 Arduino mailt | 474 |
10.3.1 Mail direkt versenden | 475 |
10.3.2 Mail via PHP-Skript versenden | 477 |
10.4 XML einlesen | 481 |
10.4.1 XML lesen mit TextFinder | 482 |
10.4.2 Wetterdaten von Yahoo! Weather abfragen | 487 |
10.5 RSS einlesen | 493 |
10.6 You got mail | 500 |
10.7 Umweltdaten sammeln | 504 |
10.8 Projekt Wetterstation | 517 |
10.9 Projekt: Online-Wetterstation | 536 |
Kapitel 11: Fehlersuche/Troubleshooting | 547 |
11.1 Allgemeines Vorgehen | 547 |
11.2 Fehler in der Schaltung | 547 |
11.3 Fehler im Programm | 548 |
11.4 Probleme mit der IDE | 548 |
11.5 Hallo Arduino-Board | 549 |
Kapitel 12: DIY Boards und Clones | 551 |
12.1 Boards | 551 |
12.1.1 Minimalschaltung Arduino | 551 |
12.1.2 Bare Bone Breadboard Arduino | 553 |
12.1.3 Really Bare Bone Board (RBBB) | 554 |
12.1.4 Nanode | 555 |
12.1.5 Helvetino | 557 |
12.1.6 Sippino | 558 |
12.1.7 RFBoard | 559 |
12.2 Programmieradapter (USB-Wandler) | 559 |
12.2.1 Anschlussbelegung FTDI | 562 |
12.3 Programmierung über ICSP | 562 |
12.3.1 Der Arduino als Programmiergerät (Arduino ISP) | 564 |
12.4 Arduino im Miniaturformat mit ATtiny | 567 |
12.4.1 tinyAVR und Arduino | 568 |
12.4.2 Installation eines Zusatzpakets | 569 |
12.4.3 (Blink-)Schaltung mit ATtiny | 573 |
12.4.4 Programmierung des ATtiny-Mikrocontrollers | 576 |
12.4.5 AVR-Programmer | 581 |
12.4.6 Projekt Selbstbau-Programmieradapter | 583 |
12.4.7 Projekt ICSP-Breakout-Board fürs Steckbrett | 585 |
12.4.8 Projekt Windlicht | 586 |
12.4.9 Prototypen-Board für ATtiny84 | 590 |
Kapitel 13: Tools für Praktiker | 593 |
13.1 Hardware | 593 |
13.1.1 Steckbrett und Kabel | 593 |
13.1.2 Lochrasterplatinen | 594 |
13.1.3 Lötkolben und Lötzinn | 596 |
13.1.4 Zangen | 597 |
13.1.5 Biegelehre | 597 |
13.1.6 Multimeter | 598 |
13.1.7 Oszilloskop – Spannung sichtbar machen | 600 |
13.2 Software | 603 |
13.2.1 Schaltungsaufbau mit Fritzing | 603 |
13.2.2 Eagle CAD | 607 |
13.2.3 KiCad | 608 |
13.2.4 Oszilloskop mit Arduino | 609 |
13.3 Leiterplatten herstellen | 610 |
13.3.1 Datenformat Gerber | 611 |
13.3.2 Gerber-Daten aus Fritzing | 612 |
13.3.3 Gerber-Daten aus Eagle | 613 |
13.3.4 Gerber-Daten prüfen | 614 |
13.3.5 Leiterplatten von OSH Park | 615 |
Anhang A: Codereferenz | 617 |
A.1 Programmstruktur | 617 |
A.2 Aufbau einer Funktion | 618 |
A.3 Konventionen | 619 |
A.4 Datentypen | 622 |
A.5 Datentypkonvertierung | 629 |
A.6 Variablen & | Konstanten | 629 |
A.6.1 Variablen | 629 |
A.6.2 Konstanten | 630 |
A.7 Kontrollstrukturen | 632 |
A.8 Mathematische Funktionen | 635 |
A.9 Zufallszahlen | 637 |
A.10 Arithmetik und Vergleichsfunktionen | 638 |
A.11 Funktionen | 640 |
A.11.1 Digitale Ein- und Ausgänge | 640 |
A.11.2 Analoge Ein- und Ausgänge | 641 |
A.11.3 Tonausgabe | 642 |
A.11.4 Interrupts | 642 |
A.12 Zeitfunktionen | 643 |
A.13 Serielle Kommunikation | 644 |
Anhang B: Boards | 649 |
B.1 Vergleich der Board-Varianten | 649 |
B.2 Anschlussbelegung Mikrocontroller | 650 |
Anhang C: Bezugsquellen | 653 |
C.1 Bezugsquellen und Lieferanten | 653 |
Anhang D: Listings | 655 |
D.1 Wii-Nunchuk-Funktionsbibliothek (Kapitel 6) | 655 |
D.2 Mailchecker (Kapitel 10) | 659 |
Anhang E: Migration zu Arduino 1.0 | 665 |
Stichwortverzeichnis | 669 |