Mikrocontroller-Grundlagen: Lernpfad durch die Artikelreihe mit ESP32-C6, ESP32, NodeMCU und Arduino Uno
https://bildung.social/@oerinformatik/
https://oer-informatik.de/mcu-grundlagen
Mikrocontroller, Arduino, ESP32-C6, ESP32, ESP8266, NodeMCU, Arduino Uno, Lernpfad, Artikelreihe, Übungsaufgaben
tl/dr; (ca. 10 min Lesezeit): Dieser Überblick zeigt den Weg durch die Artikelreihe über Mikrocontroller-Grundlagen: zuerst die Grundlagenartikel mit der Arduino-API und Board-Tabs für ESP32-C6, ESP32, NodeMCU und Arduino Uno, danach die Vertiefung mit Registern und Datenblatt und zuletzt die Peripherie- und Vernetzungsartikel. Tabellen nennen zu jedem Artikel Lesezeit und Übungsaufgaben [AI-Assisted]. (Zuletzt geändert am 10.11.2026)
Dieser Artikel ist der Einstieg in die Artikelreihe über Mikrocontroller-Grundlagen: Überblick / Erste Schritte / Aufbau eines Mikrocontrollers / Pinbelegung der Boards
Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.
Als Mikrocontroller-Einsteiger*in kann ich nach Durcharbeiten des Artikels…
… den Lernweg der Reihe von den Grundlagenartikeln über die Vertiefung bis zu Peripherie und Vernetzung beschreiben und für mein Vorwissen einen passenden Einstieg wählen.
… erklären, wozu die Board-Tabs in den Artikeln dienen, und den Tab für mein eigenes Board auswählen.
… die Liste der Ein- und Ausgabeelemente am Anfang eines Programms lesen und Pins für ein anderes Board anpassen.
… zwischen Grundlagenartikeln (Arduino-Funktionen) und Vertiefungsartikeln (Register und Datenblatt) unterscheiden und weiß, wo der Abschnitt „Unter der Haube“ hinführt.
… zu jedem Thema die passenden Übungsaufgaben mit einblendbaren Beispiellösungen finden.
Worum es in der Reihe geht
Ein Mikrocontroller steuert fast jedes elektronische Gerät: die Waschmaschine, den Rauchmelder, das Steuergerät im E-Bike oder den Sensor im Gewächshaus. Die Reihe zeigt, wie Du solche Controller mit der Arduino-Entwicklungsumgebung programmierst, vom ersten Blinken einer LED bis zum vernetzten Sensor, der seine Messwerte per WLAN verschickt.
Die Artikel sind in drei Ebenen aufgebaut:
- Grundlagenartikel erklären ein Thema mit den Arduino-Funktionen (
pinMode(),digitalRead(),analogRead(),millis(),attachInterrupt()…). Jeder Grundlagenartikel hat einen eigenen Artikel mit Übungsaufgaben. - Vertiefungsartikel schauen hinter die Arduino-Funktionen: Register, Bitmasken, Timer und Datenblatt, mit dem ATmega328P des Arduino Uno als Leitbeispiel und dem ESP32-C6 zum Vergleich. Die Grundlagenartikel verweisen im Abschnitt „Unter der Haube“ dorthin.
- Peripherie- und Praxisartikel zeigen einzelne Bausteine und Anwendungen: Pinbelegung, Klimasensoren, Anzeigen, WLAN und MQTT. Sie kommen ohne eigene Übungsdatei aus.
Die Grafik zeigt den Lernpfad: Die gelben Blöcke 1 bis 4 bauen aufeinander auf, die grauen Blöcke kannst Du nach Bedarf dazunehmen, sobald die Grundlagen sitzen.
Ein Programm, vier Boards
Alle Programme der Reihe laufen auf vier Boards. In den Artikeln stehen sie in Tabs nebeneinander; voreingestellt ist der ESP32-C6:
| Board | Controller | Pegel | Besonderheiten |
|---|---|---|---|
| ESP32-C6 DevKit | ESP32-C6 (RISC-V, 32 Bit) | 3,3 V | WLAN, Bluetooth LE, eingebauter USB-JTAG-Debugger, RGB-LED an GPIO8, kein DAC |
| ESP32 DevKit V4 | ESP32 (Xtensa, 32 Bit, zwei Kerne) | 3,3 V | WLAN, Bluetooth Classic und LE, DAC, Touch-Eingänge |
| NodeMCU | ESP8266 (32 Bit) | 3,3 V | WLAN, nur ein Analogeingang, wenige freie Pins |
| Arduino Uno | ATmega328P (AVR, 8 Bit) | 5 V | einfach und robust, int hat nur 16 Bit, kein WLAN |
Damit Du ein Programm schnell auf ein anderes Board bringst, beginnt jedes Programm mit der Liste der Ein- und Ausgabeelemente. Sie hält fest, welches Bauteil an welchem Pin hängt und wie es sich verhält. Die Programme der vier Tabs unterscheiden sich nur in dieser Liste:
//-------------------------------------------------------------------------------------
// Liste der Ein- und Ausgabeelemente
// Board: ESP32-C6 Dev Kit N8-M
//-------------------------------------------------------------------------------------
// Datentyp | Name der Variable | Anschlusspin | Name, Verhalten
const int BUTTON1_PIN = 1; // Button 1, active LOW, INPUT_PULLUP
const int LED1_PIN = 4; // LED 1, active HIGH (strapping pin, ok as output)Welche Pins die Reihe auf den einzelnen Boards nutzt und welche Pins Du meiden solltest, steht im Artikel Pinbelegung der Boards. Dort findest Du auch weitere Boards wie das WeMos-Board mit OLED-Anzeige und ältere ESP32-DevKits.
Die Artikel im Überblick
Die Lesezeit gilt für den Lehrartikel, die Spalte „Übungen“ nennt die Aufgaben der zugehörigen Übungsdatei nach Kompetenzstufe (S1 Grundlagen bis S4 Expertise).
Grundlagen 1: Einstieg und Pins
| Artikel | Inhalt | Lesezeit | Übungen |
|---|---|---|---|
| Erste Schritte | Entwicklungsumgebung, Treiber, Board und Port, Blink, Taster | ca. 23 min | S1: 1, S2: 1 |
| Digitale Ausgänge | LED mit Vorwiderstand, Ausgangsstrom, Lasten mit Transistor oder Relais | ca. 28 min | S1: 1, S2: 2 |
| Digitale Eingänge | Taster, Logikpegel, Pull-up/Pull-down, Entprellen | ca. 31 min | S1: 1, S2: 1, S3: 1 |
| Variablen und Datentypen | Variablen, Konstanten und Datentypen auf 8- und 32-Bit-Controllern | ca. 28 min | S1: 1, S2: 2 |
Grundlagen 2: Kontrollstrukturen und Daten
| Artikel | Inhalt | Lesezeit | Übungen |
|---|---|---|---|
| Bedingte Anweisungen | if, else, switch und logische Operatoren |
ca. 27 min | S1: 1, S2: 2 |
| Wiederholungsstrukturen | loop(), for, while, do-while, break, continue |
ca. 26 min | S1: 1, S2: 2 |
| Zeit ohne delay() | millis(), nicht blockierende Abläufe, Zustandsautomaten |
ca. 31 min | S2: 2 |
| Arrays | Pinlisten, Lauflicht, Muster, Messwertpuffer | ca. 32 min | S1: 1, S2: 2 |
| Zeichenketten | char-Arrays, String-Klasse, F()-Makro, serielle Befehle |
ca. 31 min | S1: 1, S2: 2 |
Grundlagen 3: Programme strukturieren
| Artikel | Inhalt | Lesezeit | Übungen |
|---|---|---|---|
| Eigene Funktionen | Parameter, Rückgabewert, Gültigkeitsbereich, Aufteilen in .h/.cpp |
ca. 33 min | S1: 1, S2: 2, S3: 1 |
| Debuggen | serieller Monitor und Plotter, Debug-Makros, Log-Level, Fehlerarten, Hardware-Debugger | ca. 40 min | S2: 2, S3: 1 |
| Bibliotheken | Bibliotheksverwalter, ZIP, Beispiele, Plattformunterschiede, eigene Bibliothek | ca. 33 min | S1: 1, S2: 1 |
Grundlagen 4: Analog, PWM, Interrupts und Projekt
| Artikel | Inhalt | Lesezeit | Übungen |
|---|---|---|---|
| Analoge Eingänge | Potentiometer, analogRead(), Auflösung und Referenz, Spannungsteiler, Analogtastatur |
ca. 30 min | S1: 2, S2: 2 |
| Analoge Ausgabe mit PWM | LED dimmen, Tastgrad und Frequenz, Lüfter, Lauflicht mit Überblendung | ca. 31 min | S1: 1, S2: 2 |
| Interrupts | Polling oder Interrupt, attachInterrupt(), Regeln für die ISR, Timer-Interrupts |
ca. 31 min | S2: 2 |
| Projekt Simon Says | alle Grundlagen in einem Spiel zusammenführen und nach Pflichtenheft erweitern | ca. 31 min | S2: 2, S3: 1 |
Vertiefung: Register und Datenblatt
| Artikel | Inhalt | Lesezeit | Übungen |
|---|---|---|---|
| Aufbau eines Mikrocontrollers | Bussystem, Register, Stack, Takt, Reset, Watchdog | ca. 38 min | S1: 1, S2: 3 |
| Vom Quelltext zur Firmware | Compile-Prozess, Assembler oder Hochsprache, grafische Sprachen, Simulation, Flashen | ca. 46 min | S1: 1, S3: 3 |
| Register und Bitoperationen | Ports, DDR, PORT und PIN, Bitmasken, was digitalWrite() intern tut |
ca. 37 min | S3: 2 |
| Interrupts, Timer und PWM im Datenblatt | Interruptquellen, Flags, Flanken, Timer-Modi, PWM-Register | ca. 32 min | S3: 2 |
| Sichere und vernetzte Embedded-Systeme | Funkschnittstellen, Firmware-Update, Secure Boot, SBOM, Cyber Resilience Act, Edge AI | ca. 27 min | S4: 2 |
Peripherie und Vernetzung
| Artikel | Inhalt | Lesezeit | Übungen |
|---|---|---|---|
| Pinbelegung der Boards | Standardbelegung der Reihe, Stiftleisten, Pins mit Sonderfunktion | ca. 43 min | – |
| Sensoren für das Raumklima | BME280/BMP280 per I²C und SPI, CO₂-Sensoren per UART, PWM und Analogausgang | ca. 33 min | – |
| Anzeigen | OLED-Display SSD1306 per I²C, LED-Matrix MAX7219 mit eigenem Treiber | ca. 37 min | – |
| ESP vernetzt: WLAN, OTA-Update und Webserver | WLAN-Verbindung, Zugangsdaten, Firmware per WLAN, eigener Webserver | ca. 31 min | – |
| ESP vernetzt: MQTT-Client und Logging | MQTT-Client, Messwerte veröffentlichen, Logging über WLAN | ca. 45 min | – |
| Schaltungen zeichnen mit Fritzing | Steckbrettbilder, Bauteile, die Fritzing-Bibliothek der Reihe | ca. 15 min | – |
Welcher Einstieg passt zu Dir?
- Noch nie einen Mikrocontroller programmiert: Beginne mit Erste Schritte und arbeite die Blöcke 1 bis 4 der Reihe nach durch. Am Ende führt das Projekt Simon Says alles zusammen.
- Programmieren in C oder Java schon bekannt: Die Kontrollstrukturen in Block 2 kannst Du überfliegen. Lies dort vor allem die Abschnitte zu den Board-Unterschieden (z. B. 16-Bit-
intbeim Uno) und steige bei Zeit ohne delay() richtig ein. - Elektroniker*in mit Blick auf Hardware und Datenblatt: Nach Block 1 lohnt der Seitenblick auf Aufbau eines Mikrocontrollers. Die übrigen Vertiefungsartikel passen jeweils nach dem Grundlagenartikel, der im Abschnitt „Unter der Haube“ darauf verweist.
- Ein Gerät vernetzen: Mit den Grundlagen bis Block 3 im Rücken geht es über Pinbelegung und Sensoren zu WLAN und MQTT. Vorher lohnt Sichere und vernetzte Embedded-Systeme.
Was Du brauchst
- ein Board aus der Tabelle oben mit passendem USB-Kabel (ein Datenkabel, kein reines Ladekabel),
- die Arduino-IDE 2 mit den Board-Paketen für ESP32 und ESP8266 (Einrichtung in Erste Schritte),
- ein Steckbrett, einige LEDs mit Vorwiderständen, vier Taster, ein Potentiometer und einen Piezo-Summer; welche Teile jedes Beispiel braucht, steht in seiner Liste der Ein- und Ausgabeelemente.
Die Steckbrettbilder der Reihe sind mit Fritzing gezeichnet; wie Du eigene Schaltungen damit dokumentierst, zeigt Schaltungen zeichnen mit Fritzing.
Leitfragen
- In welcher Reihenfolge arbeitest Du die Reihe durch, wenn Du noch nie einen Mikrocontroller programmiert hast?
Mit den Grundlagenartikeln: Block 1 (Erste Schritte bis Variablen und Datentypen), dann Block 2, 3 und 4 bis zum Projekt Simon Says. Vertiefung sowie Peripherie und Vernetzung kommen danach nach Bedarf dazu. siehe Abschnitt „Die Artikel im Überblick“
- Wozu dienen die Board-Tabs in den Artikeln, und welcher Tab ist voreingestellt?
Jeder Tab enthält das vollständige Programm für ein Board (ESP32-C6, ESP32 DevKit V4, NodeMCU, Arduino Uno) und erklärt, was auf diesem Board anders ist. Voreingestellt ist der ESP32-C6. siehe Abschnitt „Ein Programm, vier Boards“
- Was steht in der Liste der Ein- und Ausgabeelemente, und was änderst Du, wenn Du ein Programm auf ein anderes Board überträgst?
Die Liste nennt für jedes Bauteil den Namen der Konstanten, den Anschlusspin und das Verhalten (z. B. „active LOW, INPUT_PULLUP“). Für ein anderes Board tauschst Du nur diese Liste aus; der übrige Code bleibt gleich. siehe Abschnitt „Ein Programm, vier Boards“
- Wie unterscheiden sich Grundlagen-, Vertiefungs- und Peripherieartikel?
Grundlagenartikel arbeiten mit den Arduino-Funktionen und haben eigene Übungsaufgaben. Vertiefungsartikel zeigen, was dahinter im Register und im Datenblatt passiert (Leitbeispiel ATmega328P). Peripherie- und Praxisartikel behandeln einzelne Bausteine und die Vernetzung ohne eigene Übungsdatei. siehe Abschnitt „Worum es in der Reihe geht“
Links und weitere Informationen
zu Bussen und Schnittstellen: I²C-Bus, SPI-Bus und UART und RS-232
zu Sensoren und Aktoren: Sensoren und Aktoren
als Nachschlagewerk: Arduino-Sprachreferenz
für ESP32 und ESP32-C6: Dokumentation des Arduino-Cores von Espressif
für den ESP8266: Dokumentation des ESP8266-Arduino-Cores
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Mikrocontroller-Grundlagen: Lernpfad durch die Artikelreihe mit ESP32-C6, ESP32, NodeMCU und Arduino Uno” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/mcu-grundlagen veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/mcu/arduino-esp. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 10.11.2026.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]
