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


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.
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 Jack2 und darunter die Buchse zur Spannungsversorgung (Power Jack3 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 €:

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.