Kühnel | Arduino | E-Book | sack.de
E-Book

E-Book, Deutsch, 887 Seiten

Reihe: Rheinwerk Computing

Kühnel Arduino

Das umfassende Handbuch
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

Kühnel Arduino jetzt bestellen!

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...


Kühnel, Claus
Dr. Claus Kühnel studierte Informationstechnik an der Technischen Universität Dresden und hat über viele Jahre Embedded Systems für die Labordiagnostik u.a. entwickelt. In diesem interdisziplinären Spannungsfeld kam er mit der Maker-Szene in Berührung. Er hat zahlreiche Artikel und Bücher zu Hard- und Software von Mikrocontrollern im In- und Ausland veröffentlicht. Von der Zeitschrift Elektronik erhielt sein Beitrag „Arduino & Co“ die Auszeichnung „Artikel des Jahres 2011“. Mit Leidenschaft gibt er sein umfangreiches und fundiertes Wissen an interessierte Leser weiter.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.