Inhaltsverzeichnis
Programmbeispiele
Programmbeispiele werden von Espressif etwas verschachtelt im Espressif-Ordner mitgeliefert. Diese befinden sich im get-started Ordner.
C:\Espressif\frameworks\esp-idf-v5.5\examples
Die ESP-IDF stellt unter C:\Espressif\frameworks\esp-idf-v5.5\examples\get-started verschiedene Beispielprojekte bereit, darunter das Blink-Beispiel. Beim Öffnen des Projekts und der .c-Dateien im main-Ordner wird deutlich, dass der Code zwar technisch korrekt ist, für Einsteiger jedoch wenig selbsterklärend wirkt und zusätzliche Schritte wie das Anschließen einer LED voraussetzt. Das Projekt eignet sich daher vor allem zum Überprüfen der Installation. Für ein klareres Einstiegsszenario wird das Blink-Projekt lediglich als Vorlage verwendet und der ursprüngliche Code durch eine vereinfachte eigene Variante ersetzt.
/*
Blinkende LED
*/
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
#define LED1 2 // LED an Pin 2 anschließen.
void Blink() // LED blinkt jede Sekunde
{
gpio_set_level(LED1, 1);
vTaskDelay(500 / portTICK_PERIOD_MS);
gpio_set_level(LED1, 0);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
void app_main(void) // Hier startet das Programm
{
gpio_set_direction(LED1, GPIO_MODE_OUTPUT); // Pin 2 als Ausgang definieren
while(1)
{
Blink();
}
}
Beispielcode – einfache blinkende LED
Nächster Schritt: Neues Projekt erstellen und das Beispielprogramm auf den ESP32 flashen.
Projekt erstellen
Zunächst erstellen wir unter C:\ einen Projekt Ordner, in dem wir unsere neu erstellten Projekte ablegen können. Ich nenne ihn hier C:\esp_projekte.

Abb. 2 – Projektordner
Der einfachste und schnellste Weg ein Projekt zu erstellen ist, ein bestehendes Projekt zu verwenden. Das machen wir, in dem wird den gesamten Ordner blink aus dem get-started–Ordner (siehe oben) in unseren neuen esp_projekte-Ordner kopieren.
Abb. 3 – Projekt einfügen
Jetzt können wir das Projekt schon bauen und flashen. Aber vorher möchten wir noch gerne das vorhandene Projekt von Espressif gegen unser einfacheres Projekt ersetzen. Dazu öffnen wir den Ordner blink und den darin enthaltenen Ordner main. Dort ist eine Datei mit der Endung .c. In diesem Beispiel heißt sie blink_example_main.c.
Diesen öffnen wir einfach per Doppelklick im Editor unseres Vertrauens. Ich verwende Notepad++, es geht aber auch mit dem Standard Editor der in Windows integriert ist.
Den gesamten Inhalt der Textdatei löschen, z.B. mit strg+A und dann entf. Dann unseren vereinfachten Beispielcode von oben in die Datei kopieren, speichern und schließen. Bitte beachtet, dass ihr alles gelöscht und auch vollständig kopiert habt, mit allen #includes.

Abb. 5 – Copy to Clipboard
Verwendet dazu am besten das Copy-to-clipboard Button oben rechts in der Abbildung, da dann der Code schön formattiert in die Datei kopiert wird. Was dann folgendermaßen aussehen sollte.
Ihr seht schon, wie schön der Code in Notepad++ hervorgehoben wird (Syntax-Highlightning). Es loht sich dieses kostenlose tool herunter zu laden.
Projekt bauen
Zum Bauen und flashen des Projektes öffnen wir jetzt die installierte ESP-IDF in der Kommandozeile. Bei der Installation wurde die ESP-IDF 5.5 CMD auf dem Desktop abgelegt. Wenn nicht, gebt ihr einfach ESP in die Suche ein und dann solltet ihr das schon angezeigt bekommen.
Folgendes Fenster erscheint, welches wir bereits bei der Installation des ESP-IDF kennengelernt haben:

Abb. 8 – ESP-IDF erfolgreich ausgeführt
An dieser Stelle macht es Sinn, ein paar grundlegende Befehle der CMD zu kennen, wie z.B.
- cd Verzeichnis wechseln
- cd.. Ein Verzeichnis/Ordner nach oben
- cd\ Zum Stammverzeichnis, hier C:\
- dir Dateien und Ordner im aktuellen Verzeichnis auflisten
Mehr benötigen wir gar nicht.
Einfach cd\ eingeben und Enter drücken, dann den Ordner in dem unser blink Projekt ist, mit cd davor eingeben und wieder Enter drücken und das gleiche für den blink Ordner, also cd blink und dann Enter. Oder einfacher, ganz am Anfang den vollständigen Pfad cd C:\esp_projects\blink ohne cd\ eingeben.
Dann erscheint folgendes:

Abb. 9 – in den Arbeitsordner wechseln
Jetzt befinden wir uns in unserem Projekte Ordner. Von hier können wir bauen und flashen. Da wir ein bereits vorhandens Projekt gewählt hatten, müssen wir das zunächst bereinigen, was ganz einfach mit dem Befehl idf.py fullclean erfolgt.
Wenn fullclean erfolgt ist, idf.py build eingeben und Enter drücken.
Das Projekt wird jetzt gebaut. Dieser Vorgang kann bei neu angelegten Projekten im ersten Durchlauf durchaus ein paar Minuten dauern, je nach Größe.
War der Build-Vorgang erfolgreich, seht ihr folgendes:

Abb. 12 – Projekt erfolgreich erstellt
Hier steht unter anderem, dass der Vorgang erfolgreich war mit dem Hinweis, dass ihr das Projekt jetzt flashen könnt.
Projekt flashen
Jetzt ist der Zeitpunkt gekommen, an dem wir das ESP32-Board an die USB-Buchse anschließen können. Zum Flashen ist es erforderlich den COM-Port zu kennen, an dem der ESP32 angeschlossen ist. Den COM-Port finden wir im Geräte-Manager, unter Anschlüsse. Wenn das Board angeschlossen und erkannt wurde, muss etwas mit CP210x stehen, da auf dem ESP32 Board ein CP2102-Chip für die Kommunikation verbaut ist.
In meinem Fall ist das ESP32 Modul an den COM5 Port angeschlossen.

Abb. 13 – ESP32 an USB Port anschließen
Wenn das Projekt erfolgreich gebaut wurde, dann können wir, wie Abb. 12 zu sehen, in unser Projekt gehen und den Befehl idf.py -p com5 flash ausführen.
Wenn euer ESP32 Board z.B. an COM3 erkannt wurde, gebt ihr idf.py -p com3 flash ein. Dann mit Enter bestätigen und das Board wird geflasht.
Das Flashen kann man ganz gut am Blinken der kleinen roten LED auf dem Board erkennen.
Jetzt sollte die LED langsam jede Sekunde blinken.
Jetzt kann man die Werte im Beispielprojekt (Abb. 6 – blink_example_main.c) verändern, und statt den 500 ms in vTaskDelay, 100 ms eintragen, speichern, bauen und flashen. Wenn die LED jetzt viel schneller blinkt, wurde alles richtig gemacht.
LED richtig anschließen und Vorwiderstand richtig dimensionieren
Wie man die LED richtig anschließt, könnt ihr im folgenden Bild gut erkennen.

Abb. 17 – Bild erstellt mit Fritzing — Teile lizenziert unter CC-BY-SA 3.0
https://fritzing.org
Der ESP32 hat, gemessen, eine Ausgangsspannung von ca. UO = 3,3 V. Eine rote LED hat eine Durchflusspannung von ca. UF = 2 V. Somit müssen am Widerstand R, UR = 1,3 V abfallen, bzw. in Wärme umgewandelt werden.
Weiße und blaue LEDs haben wesentlich höhere Durchflussspannungen, bei ca. UF = 3 V! Dann müssten wir einen wesentlich kleineren Widerstand wählen um die LEDs ausreichen hell leuchten zu lassen. Das kann zu viel zu hohen Ausgangsströmen an den Ausgangspinnen führen! Aus diesem Grund habe ich eine rote LED gewählt.
Das kurze Beinchen der LED ist meist die Kathode, also Minus. Schließt also das lange Beinchen an dem ESP32 Board am Pin 2 an.
Die IO-Pins des ESP32 können maximal 40 mA treiben. Für eine LED reichen ca. IF = 10 – 20 mA. Damit ich den ESP nicht unnötig belaste bin ich auf ca. IF = 5 mA runtergegangen.
Dafür reicht dann ein Vorwiderstand von Rvor = 220 Ohm. Die LED leuchtet mit IF = 5 mA ausreichend hell, wie man in Abb. 16 erkennen kann.
Weiterführende Links
- Installation ESP-IDF unter Windows 10/11
- Visual Studio Code und ESP-IDF Extension
- ESP32 – Das Entwicklungsboard
- ESP32 JTAG-Debugger
- FreeRTOS am ESP32 – Grundlagen, Tasks und Scheduling
- ESP-IDF Menuconfig – Überblick und wichtigste Optionen










