E-Book, Deutsch, 887 Seiten
Reihe: Rheinwerk Computing
Kühnel Arduino
3. Auflage 2024
ISBN: 978-3-367-10281-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Das umfassende Handbuch
E-Book, Deutsch, 887 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-367-10281-5
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Die Arduino-Community stellt Makern eine ausgezeichnete Grundlage für eigene Projekte zur Verfügung. Die offene Mikrocontroller-Architektur und eine komfortable Entwicklungsumgebung machen den Arduino zum idealen Ausgangspunkt für die eigenen Bastelprojekte. Dass Sie mit dem Arduino aber noch viel mehr machen können als nur LEDs leuchten zu lassen, beweist dieses umfassende Handbuch: Von der Temperaturmessung bis zum maschinellen Lernen und der anspruchsvollen Auswertung von Daten finden Sie hier Beispiele und Erklärungen zu allen Fragen, die Elektronikbegeisterte interessieren.
Aus dem Inhalt:
Modellübersicht: Mikrocontroller für Maker
Breadboards, Löten, Stromversorgung
Entwicklungsumgebung und Programmierung
Schaltungsdesign mit Fritzing und Eagle
Sensoren: Temperatur, Feuchtigkeit, Bewegung, Ultraschall, Luftqualität u. v. m.
Displays: LED, LCD, OLED, Touchscreens
Relais, Motoren, Schaltaktoren
Speicher: EEPROM, FRAM
WLAN, Bluetooth, BLE, GSM, LoRa, LoRaWAN, LTE-M, NB-IoT
UART, SPI, I²C, 1-Wire
IoT-Anwendungen in der Cloud: WQTT, Thingspeak, Pushover, Dweet.io
Projektideen für Maker: von der Messung des Raumklimas und Radioaktivität bis zum Einsatz von Kameras
Autoren/Hrsg.
Weitere Infos & Material
0. Materialien zum Buch ... 15
0. Geleitwort ... 17
1. Arduino -- was ist das? ... 19
1.1 ... Arduino -- etwas Hintergrund ... 19
1.2 ... Open Source: Die Lizenzen des Arduino-Projekts ... 20
1.3 ... Maker und die Arduino-Community ... 23
1.4 ... Arduino Uno Rev3 -- der Standard ... 25
1.5 ... Details zum Mikrocontroller ... 30
2. Die Arduino-Hardware ... 59
2.1 ... Die Produktfamilie Arduino ... 59
2.2 ... Arduino-kompatible Boards ... 100
2.3 ... Arduino-Shields ... 141
2.4 ... Expansionsboards ... 150
3. Das Experimentierumfeld ... 155
3.1 ... Elektronische Bauteile ... 155
3.2 ... Grundlagen zur Schaltungstechnik ... 173
3.3 ... Breadboards und Zubehör ... 178
3.4 ... Qwiic, Grove und mikroBUS Connection ... 183
3.5 ... Spannungsversorgung ... 187
3.6 ... Messtechnik ... 201
3.7 ... CAD-Software ... 211
4. Arduino-Software ... 217
4.1 ... Schritte bei der Programmerstellung ... 217
4.2 ... Die Arduino-Entwicklungsumgebung ... 218
4.3 ... Die Arduino-Create-Plattform ... 223
4.4 ... Arduino Create vs. Arduino IDE ... 227
4.5 ... Programmieren in C++ ... 228
4.6 ... Den Arduino programmieren ... 258
4.7 ... Arduino-Boards in Betrieb nehmen ... 285
4.8 ... Arduino-Debugging ... 305
4.9 ... MicroPython mit Arduino ... 319
4.10 ... Grafische Programmierung mit ArduBlock ... 322
4.11 ... Simulation mit Wokwi ... 326
5. Sensoren ... 329
5.1 ... Der Thermistor als Temperatursensor ... 329
5.2 ... Der Temperatursensor TMP36 ... 332
5.3 ... Der Temperatur- und Feuchtigkeitssensor DHTxx/AM23xx ... 336
5.4 ... Der Temperatur- und Feuchtigkeitssensor Si7021 ... 342
5.5 ... Der Temperatursensor DS18B20 ... 345
5.6 ... Die barometrischen Drucksensoren BMP180, BMP280 und BME280 ... 349
5.7 ... Sensoren zur Messung der Luftqualität ... 354
5.8 ... Der Grove-Feinstaubsensor PPD42NS ... 363
5.9 ... Der Umweltsensor SEN55 ... 367
5.10 ... Der Lichtstärkesensor GY-30 (BH1750FVI) ... 368
5.11 ... Das Farbsensormodul GY-TCS3200D ... 372
5.12 ... Ultraschall-Entfernungsmessung ... 377
5.13 ... ToF-Entfernungsmessung ... 382
5.14 ... Bewegungsdetektion mit PIR-Sensoren ... 385
5.15 ... Wetterdaten ... 388
6. Eingabeelemente ... 395
6.1 ... Taster und Schalter ... 395
6.2 ... Keypads ... 397
6.3 ... Joysticks ... 404
6.4 ... Drehgeber ... 407
6.5 ... Touch-Sensoren ... 411
6.6 ... Touch-Panels ... 412
6.7 ... RFID ... 416
6.8 ... NFC ... 425
7. Anzeigeelemente ... 439
7.1 ... LEDs und RGB-LEDs ... 439
7.2 ... Sieben-Segment-Anzeigen ... 445
7.3 ... LED-Dot-Matrix-Anzeigen ... 448
7.4 ... Seriell gesteuerte RGB-LEDs ... 452
7.5 ... LCDs ... 463
7.6 ... OLED-Displays ... 480
7.7 ... ePaper ... 490
7.8 ... M5Stack-Displays ... 491
7.9 ... Touchscreens ... 492
8. Aktoren ... 533
8.1 ... Relais ... 533
8.2 ... Motoren ... 538
9. Externe Speicher ... 571
9.1 ... Internes EEPROM ... 571
9.2 ... Externes EEPROM ... 574
9.3 ... FRAM ... 577
10. Kommunikation ... 581
10.1 ... Serielles Interface UART, der interne Monitor ... 581
10.2 ... SPI ... 587
10.3 ... Der I2C-Bus ... 593
10.4 ... Der 1-Wire-Bus ... 596
10.5 ... CAN ... 602
10.6 ... Bluetooth und BLE ... 610
10.7 ... Der Arduino im Netzwerk ... 624
10.8 ... LoRa bzw. LoRaWAN ... 642
10.9 ... GSM ... 669
10.10 ... LTE ... 675
10.11 ... 3GPP LPWAN ... 680
11. Mikrocontroller-Netzwerke ... 711
11.1 ... nRF24L01-Netzwerke ... 712
11.2 ... nRF24L01-Mesh ... 735
11.3 ... Meshtastic ... 735
11.4 ... ZigBee ... 751
12. Datenformate und Kommunikationsprotokolle ... 767
12.1 ... JSON ... 767
12.2 ... MQTT ... 770
13. Projektideen für den Arduino ... 777
13.1 ... Tragbare Elektronik (Wearables) ... 777
13.2 ... Überwachung des Raumklimas ... 780
13.3 ... OpenWeatherMap: Open Data aus dem Internet ... 798
13.4 ... Pushover-Statusmeldungen ... 804
13.5 ... Überwachung von Pflanzen ... 811
13.6 ... Messung von radioaktiver Strahlung ... 816
13.7 ... M5StickC ... 824
13.8 ... Kameraanwendungen ... 829
13.9 ... Batteriebetriebener und solargepufferter IoT-Knoten ... 839
13.10 ... Low-Power-IoT-Knoten mit Display ... 847
13.11 ... Approximation nichtlinearer Sensorkennlinien ... 855
13.12 ... Maschinelles Lernen ... 859
Anhang ... 863
A.1 ... Arduino-Distributoren ... 863
A.2 ... Internationale Beschaffung ... 863
A.3 ... Technische Daten im Vergleich ... 864
A.4 ... Spezifikation von Widerständen ... 868
Index ... 873
1.4 Arduino Uno Rev3 – der Standard
Arduino Uno ist das Arduino-Board, dessen Kern der von Atmel entwickelte Mikrocontroller ATmega328P ist. Auch nach der Übernahme von Atmel durch Microchip wird dieser verbreitete Controller unverändert gefertigt. Auf dem Board ist alles vorhanden, was zur Unterstützung des Mikrocontrollers benötigt wird. Abbildung 1.2 zeigt einen Arduino Uno Rev3. Die spezielle Form des Arduino Uno Rev3, der Arduino-Uno-Formfaktor, ist praktisch standardisiert, sodass andere Boards, die sogenannten Arduino-Shields, egal von welchem Hersteller sie stammen, über die Arduino-Buchsenleisten kontaktiert werden können. Abbildung 1.2 Arduino Uno Rev3 1.4.1 Ein- und Ausgangspins
Wie Sie in Abbildung 1.2 sehen können, verfügt der Arduino Uno über 20 digitale Eingangs- bzw. Ausgangspins, sechs analoge Eingänge, einen 16-MHz-Quarz, einen USB-Anschluss, eine Netzbuchse, einen ICSP-Header für das In-Circuit Serial Programming (ICSP) und eine Reset-Taste. ICSP ist eine der verschiedenen Methoden zur Programmierung von Arduino-Boards. Normalerweise wird ein Arduino-Bootloader-Programm zum Programmieren eines Arduinos verwendet, der einen seriellen Programm-Upload ermöglicht. Wenn der Bootloader jedoch fehlt oder beschädigt ist, kann stattdessen ICSP verwendet werden. Die nach außen hin verfügbaren Anschlüsse sind den beiden Buchsenleisten (Headern) zugeordnet 1. An der linken Seite des Arduino Uno sind oben eine USB-Buchse vom Typ B (USB Jack) 2 und darunter die Buchse zur Spannungsversorgung (Power Jack) 3 angeordnet. Die Pinbelegung der nach außen führenden Buchsenleisten entnehmen Sie Abbildung 1.3. Deutlich zu sehen ist, dass jedem Anschluss mehrere Funktionen zugeordnet sind. Welche Funktion wirksam wird, bestimmt die vor dem Programmstart vorzunehmende Initialisierung. Von den insgesamt 20 digitalen I/O-Pins können sechs als PWM-Ausgang und sechs als analoger Eingang fungieren. PWM bezeichnet die Pulsweitenmodulation (Pulse Width Modulation), bei der die Information im Tastverhältnis (Duty Cycle) gemäß Abbildung 1.4 liegt. Abbildung 1.3 Pinbelegung beim Arduino Uno Rev3 Abbildung 1.4 PWM PWM-Signale lassen sich sehr gut für die Helligkeitssteuerung von LEDs oder für die Steuerung der Drehzahl von DC-Motoren verwenden. Mit analogWrite(value) steht in Abbildung 1.4 auch bereits die zugehörige Anweisung zur Ausgabe – was es damit genau auf sich hat, erfahren Sie in Abschnitt 4.6.2. 1.4.2 Serielle Schnittstellen
Die Pinbelegung zeigt drei serielle Schnittstellen, die für den Einsatz des Arduino sehr wichtig sind: Pins Bedeutung TX, RX Serielle Schnittstelle für Programm-Upload und Kommunikation (UART) SCL, SDA I2C-Bus SCK, MISO, MOSI SPI-Bus Tabelle 1.1 Arduino Uno – serielle Schnittstellen Mit diesen Kommunikationsschnittstellen werden Sie immer wieder in Kontakt kommen, denn neben den analogen und digitalen Ein-/Ausgängen stellen diese Schnittstellen Verbindungen zu anderen Komponenten oder Controllern her und ermöglichen erst den für Mikrocontroller-Anwendungen so wichtigen Datenaustausch. 1.4.3 Spannungsversorgung
Den Arduino Uno können Sie auf unterschiedlichen Wegen mit Spannung versorgen. Die Spannungsversorgung kann am einfachsten über den USB-Anschluss erfolgen, der ohnehin für den Programm-Upload benötigt wird. Bedenken Sie allerdings, dass die USB-2.0-Ports, die heute noch in vielen PCs verbaut werden, gemäß Spezifikation nur einen Strom von maximal 500 mA liefern. Der USB-Anschluss kann also den Strombedarf in vielen Fällen nicht decken. Spannungsversorgung über USB Die Spannungsversorgung über den USB-Anschluss eines Rechners kann nicht immer zuverlässig die benötigte Spannung bereitstellen. Zum Ausprobieren ist es ein guter Anfang, aber wenn Sie den Arduino mit Zusatzschaltungen erweitern, brauchen Sie ein richtiges Netzteil. Bei der Spannungsversorgung über den Power Jack (Hohlstecker) sollte das eingesetzte Steckernetzteil eine Gleichspannung zwischen 7 und 12 V liefern. Die Stromaufnahme des Arduino Uno hängt stark von den angeschlossenen Lasten ab und kann ohne diese nicht zuverlässig angegeben werden. Ein Steckernetzteil, das in der Lage ist, einen Strom von 1 A zu liefern, ist aber erst einmal ein sicherer Anfang. Reichelt bietet ein solches Netzteil unter der Bezeichnung HNP 12-120L6 für unter 10 € an (https://cdn-reichelt.de/documents/datenblatt/D400/HNP12.pdf). Die Spannungszuführung kann aber auch über den Anschluss VIN erfolgen. Wenn Sie den Arduino Uno über ein USB-Kabel mit einem Computer verbinden und die Spannungsversorgung über ein Netzteil oder einen Akku vornehmen, dann sind Sie bereits für das Abenteuer Arduino gerüstet. 1.4.4 Mikrocontroller ATmega328P
Der Mikrocontroller ATmega328P ist in einem klassischen DIL-Gehäuse (Dual-in-Line) auf dem Board gesockelt und kann daher ersetzt werden, wenn wirklich einmal alles schiefgegangen ist. Für einen Austausch 1:1 müssen Sie einen ATmega328P mit programmiertem Bootloader verwenden. Den bekommen Sie für 5,40 € bei Reichelt. Der ATmega328P ohne Bootloader kostet bei Reichelt nur 3,33 €: https://www.reichelt.de/arduino-atmega328-mit-arduino-bootloader-ard-atmega-328-p230602.html https://www.reichelt.de/8-bit-atmega-avr-mikrocontroller-32-kb-20-mhz-pdip-28-atmega-328p-pu-p119685.html Wie Sie später noch sehen werden, gibt es auch einen Arduino Uno mit einem ATmega328P im SMD-Gehäuse. Da ist ein Wechsel aber nicht so einfach. 1.4.5 Warum eigentlich die Bezeichnung »Uno«?
Nachdem Sie einen ersten Eindruck von der Hardware des Arduino Uno gewinnen konnten und ich auch schon angedeutet habe, dass es weitere Arduinos gibt, möchte ich noch kurz etwas zur Namensgebung schreiben. Vor dem Arduino Uno gab es bereits andere Arduinos. Mit dem Uno (»uno« bedeutet auf Italienisch »eins«) wurde die Bereitstellung der Arduino-Entwicklungsumgebung 1.0 (Arduino IDE 1.0) markiert. Arduino Uno und die Version 1.0 der Arduino IDE sind also die Referenzversionen von Arduino, die im Laufe der Jahre zu neueren Versionen weiterentwickelt wurden. Heute existiert eine breite Palette von Arduino-Boards, von denen ich Ihnen wegen ihrer unterschiedlichen Ausstattungsmerkmale und Performance noch einige vorstellen werde. Die jetzt als Legacy Arduino bezeichnete Arduino IDE liegt in Version 1.8 für alle gängigen Betriebssysteme vor. Der Arduino Uno bleibt damit immer noch die Hardware-Basis des Arduino-Universums und ist mit dem ATmega328P eine ausgezeichnete Ausgangsbasis für die Umsetzung von Programmideen in laufende Mikrocontroller-Anwendungen. Wenn Sie bei der Arbeit mit dem Arduino Uno eine gewisse Sicherheit gewonnen haben, dann ist der Schritt hin zu komplexeren Arduinos wesentlich einfacher. Keine Angst beim Umgang mit dem Arduino Uno! Der Arduino Uno ist ein robustes Board, weshalb Sie keine Angst beim Ausprobieren von Neuem und...