
Arduino - Praxiseinstieg
von: Thomas Brühlmann
mitp Verlags GmbH & Co. KG, 2019
ISBN: 9783747500552
Sprache: Deutsch
688 Seiten, Download: 52289 KB
Format: PDF, auch als Online-Lesen
Titel | 1 | ||
Inhaltsverzeichnis | 6 | ||
Kapitel 1 – Einleitung | 14 | ||
1.1 Aufbau des Buches | 15 | ||
1.2 Downloads und weiterführende Informationen | 17 | ||
1.3 Weitere Quellen | 17 | ||
1.4 Danksagung | 18 | ||
Kapitel 2 – Arduino-Plattform | 20 | ||
2.1 Am Anfang war der König | 20 | ||
2.2 Be a Maker | 21 | ||
2.3 Arduino-Plattform | 24 | ||
2.4 Hardware | 24 | ||
2.4.1 Arduino Uno/Genuino Uno | 26 | ||
2.5 Software | 29 | ||
2.6 Installation der Software | 30 | ||
2.6.1 Installation des USB-Treibers unter Windows 7 und Windows 10 | 31 | ||
2.6.2 Installation des USB-Treibers unter Windows XP | 32 | ||
2.6.3 Installation des USB-Treibers unter Mac OS X | 34 | ||
2.6.4 Installation des USB-Treibers unter Linux | 34 | ||
2.7 Get Connected | 34 | ||
2.7.1 Verbindungskabel | 35 | ||
2.7.2 Verbindung und »Blink« | 35 | ||
2.7.3 Projekt Blink | 39 | ||
2.8 Arduino-Entwicklungsumgebung | 40 | ||
2.8.1 Voreinstellungen | 40 | ||
2.8.2 Aufbau Entwicklungsumgebung | 42 | ||
2.8.3 Menü- und Symbolleiste | 42 | ||
2.8.4 Editor | 45 | ||
2.8.5 Ausgabefenster | 45 | ||
2.9 Arduino-Boards | 47 | ||
2.9.1 Arduino Leonardo | 47 | ||
2.9.2 Arduino Due | 47 | ||
2.9.3 Arduino Yun | 48 | ||
2.9.4 Arduino Mega 2560 | 49 | ||
2.9.5 Arduino Nano | 50 | ||
2.9.6 Arduino Mini | 50 | ||
2.9.7 Arduino LilyPad | 52 | ||
2.10 Arduino-kompatible Boards | 52 | ||
Kapitel 3 – Startschuss | 54 | ||
3.1 Das Arduino-Board | 55 | ||
3.1.1 Stromlaufplan | 55 | ||
3.1.2 Microcontroller – Das Gehirn | 57 | ||
3.1.3 Anschlussbelegung | 57 | ||
3.1.4 Stromversorgung | 59 | ||
3.2 Steckbrett – Experimentieren ohne Löten | 60 | ||
3.2.1 Spannungsversorgung auf dem Steckbrett | 65 | ||
3.3 Spannung, Strom und Herr Ohm | 69 | ||
3.4 Widerstand & Co | 73 | ||
3.4.1 Widerstand | 75 | ||
3.4.2 Potentiometer | 75 | ||
3.4.3 Kondensator | 76 | ||
3.4.4 Diode | 77 | ||
3.4.5 Leuchtdiode | 77 | ||
3.4.6 Transistor | 79 | ||
3.4.7 Integrierte Schaltung (IC) | 80 | ||
3.4.8 Relais | 82 | ||
3.4.9 Schalter | 82 | ||
3.4.10 Taster | 83 | ||
3.5 Programmcode | 83 | ||
3.5.1 Integer, Typen und Variablen | 84 | ||
3.5.2 Struktur | 87 | ||
3.6 Testen | 89 | ||
3.6.1 Serieller Monitor | 89 | ||
3.6.2 Code-Debugging | 92 | ||
3.7 Projekt Blink | 94 | ||
3.8 Projekt Wechselblinker | 97 | ||
Kapitel 4 – Eingänge und Ausgänge | 102 | ||
4.1 Digitale Eingänge | 103 | ||
4.1.1 Pin als Eingang setzen | 103 | ||
4.1.2 Digitalen Eingang lesen | 105 | ||
4.1.3 Digitalen Eingang entprellen | 110 | ||
4.1.4 Hohe Eingangssignale | 114 | ||
4.2 Digitale Ausgänge | 115 | ||
4.2.1 Ausgang setzen und ausgeben | 116 | ||
4.2.2 Praxis-Tipp: Status eines Ausgangs lesen | 117 | ||
4.3 Analoge Welt | 118 | ||
4.3.1 Analoge Signale einlesen | 119 | ||
4.3.2 Analoge Signale ausgeben | 125 | ||
4.4 Serielle Kommunikation | 129 | ||
4.4.1 Serielle Schnittstelle (RS232) | 129 | ||
4.4.2 Schnittstellenerweiterung | 134 | ||
4.4.3 I2C/2-Wire (Two-Wire) | 136 | ||
4.5 Drahtlose Kommunikation | 149 | ||
4.5.1 433-MHz-Kommunikation | 149 | ||
4.5.2 Daten übertragen mit RFM12B Transceiver | 157 | ||
4.6 Projekt: Würfel | 173 | ||
Kapitel 5 – Sensoren | 180 | ||
5.1 Sensoren | 181 | ||
5.1.1 LDR (Fotowiderstand) | 181 | ||
5.1.2 NTC/PTC | 183 | ||
5.1.3 Integrierte Temperatursensoren | 187 | ||
5.1.4 Pt100 und Thermoelemente | 205 | ||
5.1.5 Feuchtesensoren | 218 | ||
5.1.6 Kombinierte Umweltsensoren | 222 | ||
5.1.7 Schaltersensoren | 234 | ||
5.1.8 Abstandssensoren | 235 | ||
5.1.9 Beschleunigungssensor | 236 | ||
5.1.10 Kompass | 239 | ||
5.1.11 Hall-Sensor | 246 | ||
5.2 Projekt Kompass mit Richtungsanzeige | 252 | ||
5.3 Projekt Gefrierschrankwächter | 259 | ||
5.4 Kontaktloses Fieberthermometer | 262 | ||
Kapitel 6 – Aktoren | 266 | ||
6.1 Relais | 266 | ||
6.2 Servos | 269 | ||
6.2.1 Analoge Temperaturanzeige | 275 | ||
6.2.2 Servos als Motoren für Miniroboter | 278 | ||
6.3 Motoren | 279 | ||
6.4 Hohe Lasten schalten | 286 | ||
6.5 Projekt: Roboter mit Wii-Steuerung | 290 | ||
Kapitel 7 – Anzeigen | 302 | ||
7.1 Leuchtdiode (LED) | 302 | ||
7.1.1 Konstantstromquelle mit Transistor | 303 | ||
7.1.2 Konstantstromquelle mit Spannungsregler | 304 | ||
7.1.3 Helligkeit steuern | 305 | ||
7.1.4 LED als Berührungssensor | 306 | ||
7.1.5 Jetzt wird es hell | 310 | ||
7.2 7-Segment-Anzeigen | 311 | ||
7.2.1 Port Expander über den I2C-Bus | 315 | ||
7.3 LC-Display (LCD) | 318 | ||
7.3.1 Paralleles LC-Display | 318 | ||
7.3.2 Serielle LC-Displays | 321 | ||
7.4 LC-Display Nokia 3310/5110 | 327 | ||
7.5 OLED-Display | 329 | ||
7.6 LED-Matrix | 334 | ||
7.7 Projekt Geschwindigkeitsmesser fürs Fahrrad | 335 | ||
7.8 Projekt Schrittzähler | 344 | ||
Kapitel 8 – Datenverarbeitung | 350 | ||
8.1 Daten speichern | 350 | ||
8.1.1 Daten im ATmega-Controller speichern | 350 | ||
8.1.2 Daten in externem EEPROM ablegen | 352 | ||
8.1.3 Daten auf SD-Karte speichern | 355 | ||
8.2 Daten ins Internet senden | 361 | ||
8.3 Projekt: Programmierbarer Signalgeber | 361 | ||
8.4 Sinusgenerator | 366 | ||
8.5 Projekt: Digitales Netzteil | 367 | ||
8.5.1 Hochspannungsteil | 368 | ||
8.5.2 Leistungsteil | 370 | ||
8.5.3 Ansteuerungsteil | 371 | ||
8.5.4 Spannungsversorgungen | 379 | ||
8.5.5 Aufbau des Geräts | 381 | ||
8.6 Projekt Sollwerteingabe mit Drehgeber | 397 | ||
8.6.1 Projekt-Erweiterung – Ausgabe als Analogwert | 406 | ||
Kapitel 9 – Erweiterungen | 412 | ||
9.1 Bibliotheken | 412 | ||
9.1.1 Ethernet-Bibliothek | 413 | ||
9.1.2 Wire-Bibliothek | 413 | ||
9.1.3 SoftwareSerial | 415 | ||
9.1.4 TinyGPS-Bibliothek | 417 | ||
9.1.5 NMEA | 418 | ||
9.1.6 PString-Bibliothek | 420 | ||
9.1.7 TextFinder-Bibliothek | 420 | ||
9.1.8 Matrix-Bibliothek | 420 | ||
9.1.9 LiquidCrystal-Bibliothek (LCD) | 421 | ||
9.1.10 JeeLib | 421 | ||
9.1.11 Stepper-Bibliothek | 421 | ||
9.1.12 Wii Nunchuk | 423 | ||
9.2 Hardware-Erweiterungen (Shields) | 423 | ||
9.2.1 Protoshield | 423 | ||
9.2.2 Protonly-Protoshield | 425 | ||
9.2.3 Floweronly-Protoshield | 425 | ||
9.2.4 Ethernet Shield | 426 | ||
9.2.5 Datalogger und GPS Shield | 428 | ||
9.2.6 Adafruit Motor Shield | 428 | ||
9.2.7 DFRobot Motor Shield | 428 | ||
9.2.8 Diduino-MsMot-Shield | 429 | ||
9.2.9 Keypad Shield | 429 | ||
9.2.10 Wave Shield | 429 | ||
9.2.11 SD Card Shield | 430 | ||
9.2.12 Nano Shield | 430 | ||
9.2.13 Lithium Backpack | 430 | ||
9.2.14 ITEAD Power Shield | 431 | ||
9.2.15 RFM12B Shield | 431 | ||
9.2.16 CC3000 WiFi Shield | 431 | ||
9.2.17 Schraubklemmen-Shield | 432 | ||
9.3 Hardware-Adapter | 433 | ||
9.3.1 RFM12B-Breakout-Board | 433 | ||
9.3.2 Wii-Nunchuk-Adapter | 434 | ||
Kapitel 10 – Arduino im Einsatz | 436 | ||
10.1 Verbindung zum Internet | 436 | ||
10.1.1 Netzwerkverbindung | 437 | ||
10.1.2 Arduino als Webserver | 442 | ||
10.1.3 Der Arduino als Webclient | 445 | ||
10.1.4 Eingänge und Ausgänge übers Internet steuern | 449 | ||
10.1.5 Wireless Ethernet (WiFi) | 452 | ||
10.2 ESP-Module und Arduino | 467 | ||
10.2.1 Integration in Arduino | 467 | ||
10.2.2 ESP8266 | 471 | ||
10.2.3 ESP8266-ESP12E | 472 | ||
10.2.4 Wemos D1 Mini | 472 | ||
10.2.5 WiFi-Bibliothek für ESP8266 | 476 | ||
10.3 Heute schon getwittert? | 480 | ||
10.4 Arduino mailt | 484 | ||
10.4.1 Mail direkt versenden | 484 | ||
10.4.2 Mail via PHP-Skript versenden | 486 | ||
10.5 XML einlesen | 490 | ||
10.5.1 XML lesen mit TextFinder | 491 | ||
10.5.2 Wetterdaten von OpenWeatherMap abfragen | 496 | ||
10.6 RSS einlesen | 502 | ||
10.7 You got mail | 508 | ||
10.8 Umweltdaten sammeln | 512 | ||
10.9 Projekt Wetterstation | 520 | ||
Kapitel 11 – Fehlersuche/Troubleshooting | 542 | ||
11.1 Allgemeines Vorgehen | 542 | ||
11.2 Fehler in der Schaltung | 542 | ||
11.3 Fehler im Programm | 543 | ||
11.4 Probleme mit der IDE | 543 | ||
11.5 Hallo Arduino-Board | 544 | ||
Kapitel 12 – DIY Boards und Clones | 546 | ||
12.1 Boards | 546 | ||
12.1.1 Minimalschaltung Arduino | 546 | ||
12.1.2 Bare Bone Breadboard Arduino | 548 | ||
12.1.3 Really Bare Bone Board (RBBB) | 550 | ||
12.1.4 Helvetino | 551 | ||
12.1.5 Sippino | 552 | ||
12.1.6 RFBoard | 552 | ||
12.2 Programmieradapter (USB-Wandler) | 553 | ||
12.2.1 Anschlussbelegung FTDI | 555 | ||
12.3 Programmierung über ICSP | 556 | ||
12.3.1 Der Arduino als Programmiergerät (Arduino ISP) | 558 | ||
12.4 Arduino im Miniaturformat mit ATtiny | 561 | ||
12.4.1 tinyAVR und Arduino | 562 | ||
12.4.2 Boardpakete für ATtiny | 563 | ||
12.4.3 (Blink-)Schaltung mit ATtiny | 570 | ||
12.4.4 Programmierung des ATtiny-Microcontrollers | 572 | ||
12.4.5 AVR-Programmer | 577 | ||
12.4.6 Projekt Selbstbau-Programmieradapter | 580 | ||
12.4.7 Projekt ICSP-Breakout-Board fürs Steckbrett | 582 | ||
12.4.8 Projekt Windlicht | 583 | ||
12.4.9 Prototypen-Board für ATtiny84 | 587 | ||
Kapitel 13 – Tools für Praktiker | 590 | ||
13.1 Hardware | 590 | ||
13.1.1 Steckbrett und Kabel | 590 | ||
13.1.2 Lochrasterplatinen | 591 | ||
13.1.3 Lötkolben und Lötzinn | 593 | ||
13.1.4 Zangen | 594 | ||
13.1.5 Biegelehre | 594 | ||
13.1.6 Multimeter | 595 | ||
13.1.7 Oszilloskop – Spannung sichtbar machen | 597 | ||
13.2 Software | 600 | ||
13.2.1 Schaltungsaufbau mit Fritzing | 600 | ||
13.2.2 Eagle CAD | 604 | ||
13.2.3 KiCad | 605 | ||
13.2.4 Oszilloskop mit Arduino | 606 | ||
13.3 Leiterplatten herstellen | 607 | ||
13.3.1 Datenformat Gerber | 608 | ||
13.3.2 Gerber-Daten aus Fritzing | 609 | ||
13.3.3 Gerber-Daten aus Eagle | 610 | ||
13.3.4 Gerber-Daten prüfen | 611 | ||
13.3.5 Leiterplatten von OSH Park | 612 | ||
Anhang A – Codereferenz | 614 | ||
A.1 Programmstruktur | 614 | ||
A.2 Aufbau einer Funktion | 615 | ||
A.3 Konventionen | 616 | ||
A.4 Datentypen | 619 | ||
A.5 Datentypkonvertierung | 626 | ||
A.6 Variablen & Konstanten | 626 | ||
A.6.1 Variablen | 626 | ||
A.6.2 Konstanten | 627 | ||
A.7 Kontrollstrukturen | 628 | ||
A.8 Mathematische Funktionen | 631 | ||
A.9 Zufallszahlen | 634 | ||
A.10 Arithmetik und Vergleichsfunktionen | 634 | ||
A.11 Funktionen | 636 | ||
A.11.1 Digitale Ein- und Ausgänge | 636 | ||
A.11.2 Analoge Ein- und Ausgänge | 637 | ||
A.11.3 Tonausgabe | 638 | ||
A.11.4 Interrupts | 638 | ||
A.12 Zeitfunktionen | 640 | ||
A.13 Serielle Kommunikation | 641 | ||
Anhang B – Boards | 646 | ||
B.1 Vergleich der Board-Varianten | 646 | ||
B.2 Anschlussbelegung Microcontroller | 647 | ||
Anhang C – Bezugsquellen | 650 | ||
C.1 Bezugsquellen und Lieferanten | 650 | ||
Anhang D – Listings | 652 | ||
D.1 Wii-Nunchuk-Funktionsbibliothek (Kapitel 5) | 652 | ||
D.2 Mailchecker (Kapitel 8) | 656 | ||
Anhang E – Migration zu Arduino 1.0 | 660 | ||
Anhang F – Stücklisten | 664 | ||
Stichwortverzeichnis | 670 |