ESP32 C3 Super Mini - Drehgeber
Erfahren Sie, wie Sie einen Drehgeber mit Ihrem ESP32 C3 Super Mini verwenden, um Drehrichtung und Position zu erkennen. Dieses einsteigerfreundliche Tutorial behandelt alles von der Verdrahtung bis zur Programmierung mit Interrupt-basierten Techniken.
In dieser Anleitung lernen Sie:
- Was Drehgeber sind und wie sie sich von Potentiometern unterscheiden
- Wie Inkrementalgeber funktionieren und Drehungen erkennen
- Wie Sie einen Drehgeber mit dem ESP32 C3 Super Mini verdrahten
- Wie Sie den ESP32 C3 Super Mini programmieren, um Richtung und Position des Drehgebers zu lesen
- Wie Sie Interrupts für ein effizienteres Auslesen des Drehgebers verwenden
- Praxisnahe Anwendungen für Drehgeber-Projekte

Erforderliche Hardware
| 1 | × | ESP32 C3 Super Mini | |
| 1 | × | USB-Kabel Typ-A zu Typ-C (für USB-A PC) | |
| 1 | × | USB-Kabel Typ-C zu Typ-C (für USB-C PC) | |
| 1 | × | Drehgeber | |
| 1 | × | Breadboard | |
| 1 | × | Verbindungskabel |
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Rotary Encoder
Ein Drehgeber ist ein Positionssensor, der Drehbewegungen in elektrische Signale umwandelt, um Richtung und Umfang der Drehung zu bestimmen.
Die wichtigsten Arten von Drehgebern:
- Inkrementalgeber: Verwendet Impulssignale, um relative Positionsänderungen zu messen - perfekt zum Verfolgen von Drehungen
- Absolutwertgeber: Liefert eindeutige Positionscodes, die die Positionsdaten auch bei Stromausfall behalten
Warum Drehgeber ideal für Einsteiger sind:
- Einfach zu verwenden mit nur wenigen Pins
- Liefern sowohl die Drehrichtung als auch die Erkennung von Tastendrücken
- Können ohne mechanische Begrenzung endlos gedreht werden
- Funktionieren hervorragend mit Interrupts für effiziente ESP32 C3 Super Mini Projekte
Dieses Tutorial konzentriert sich auf inkrementelle Drehgeber, den häufigsten Typ für Arduino- und ESP32-Projekte.
Pinbelegung des Drehgeber-Moduls

Das Drehgeber-Modul hat 5 Pins, die Sie mit Ihrem ESP32 C3 Super Mini verbinden:
- CLK-Pin (Ausgang A): Primärer Impulsausgang, der die Drehung signalisiert - gibt pro Rastklick einen vollständigen Zyklus (LOW → HIGH → LOW) aus
- DT-Pin (Ausgang B): Sekundärer Impulsausgang, der CLK um 90 Grad nacheilt, um die Drehrichtung (im oder gegen den Uhrzeigersinn) zu bestimmen
- SW-Pin: Anschluss des Drucktasters - normalerweise offen, liest HIGH, wenn nicht gedrückt, und LOW, wenn gedrückt (benötigt einen Pull-up-Widerstand)
- VCC-Pin (+): Anschluss der Stromversorgung - mit 3,3V oder 5V verbinden
- GND-Pin: Masseanschluss - mit GND (0V) verbinden
Drehgeber vs. Potentiometer
Sie könnten den Drehgeber mit einem Potentiometer verwechseln, aber sie dienen unterschiedlichen Zwecken.
Die wichtigsten Unterschiede:
- Drehbereich: Drehgeber drehen sich endlos um 360°, während Potentiometer eine begrenzte Drehung haben (typischerweise 270°)
- Ausgabetyp: Drehgeber geben digitale Impulse aus, während Potentiometer eine analoge Spannung ausgeben
- Positionsverfolgung: Drehgeber verfolgen die relative Bewegung (wie weit gedreht wurde), während Potentiometer die absolute Position erfassen
- Beste Verwendung: Drehgeber eignen sich hervorragend zum Verfolgen von Drehumfang und -richtung; Potentiometer sind besser, wenn Sie exakte Positionswerte benötigen
- Modernes Design: Drehgeber sind die digitale Weiterentwicklung von Potentiometern mit erweiterten Fähigkeiten
Wie ein Drehgeber funktioniert

Interner Mechanismus:
- Eine geschlitzte Scheibe im Inneren ist mit Pin C (gemeinsame Masse) verbunden
- Die Pins A und B stellen beim Drehen des Knopfes Kontakt mit der gemeinsamen Masse her
- Die Reihenfolge des Kontakts zwischen A und B bestimmt die Drehrichtung
- Dadurch entstehen zwei Impulssignale, die um 90 Grad phasenverschoben sind (Quadratur-Kodierung)
Erkennung der Drehrichtung:
- Drehung im Uhrzeigersinn: Pin A berührt die Masse vor Pin B
- Drehung gegen den Uhrzeigersinn: Pin B berührt die Masse vor Pin A
- Durch Überwachen des Zustands von Pin B, wenn sich Pin A ändert, bestimmt der ESP32 C3 Super Mini die Drehrichtung

Logik der Richtungserkennung:
Wenn Pin A von LOW auf HIGH wechselt:
- Wenn Pin B HIGH ist: Knopf wurde gegen den Uhrzeigersinn gedreht
- Wenn Pin B LOW ist: Knopf wurde im Uhrzeigersinn gedreht
※ Notiz:
Die Pins A und B sind mit den Pins CLK und DT verbunden. Je nach Hersteller kann die Reihenfolge abweichen. Der folgende Code wurde mit DIYables-Drehgebern getestet.
Wie man einen Drehgeber programmiert
Grundlegender Ablauf beim Auslesen des Drehgebers mit dem ESP32 C3 Super Mini:
- Der ESP32 liest fortlaufend das Signal vom CLK-Pin
- Wenn der CLK-Zustand von LOW auf HIGH wechselt, liest der ESP32 sofort den Zustand des DT-Pins
- Wenn der DT-Pin HIGH ist: Drehung gegen den Uhrzeigersinn erkannt → Zähler um 1 erhöhen
- Wenn der DT-Pin LOW ist: Drehung im Uhrzeigersinn erkannt → Zähler um 1 verringern
- Diese Methode erfasst sowohl die Richtung als auch den gesamten Drehumfang
Verdrahtungsdiagramm
Dieses Diagramm zeigt, wie Sie den Drehgeber mit Ihrem ESP32 C3 Super Mini Board verbinden.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Verbindungstabelle:
| Drehgeber-Pin | ESP32 C3 Super Mini Pin |
|---|---|
| CLK | D7 |
| DT | D6 |
| SW | D5 |
| VCC | 3,3V |
| GND | GND |
ESP32 C3 Super Mini Code – Drehgeber
Dieser ESP32 C3 Super Mini Code zeigt die grundlegende Funktionsweise eines Drehgebers:
Was dieser Code macht:
- Erkennt die Drehrichtung (im oder gegen den Uhrzeigersinn)
- Zählt Drehklicks, indem die Rastungen verfolgt werden
- Erhöht den Zähler bei Drehung im Uhrzeigersinn
- Verringert den Zähler bei Drehung gegen den Uhrzeigersinn
- Erkennt Tastendrücke am Knopf des Drehgebers
Hinweis: Dieser Code verwendet die ezButton-Bibliothek, um das Entprellen des Tasters zu vereinfachen und Tastendrücke zuverlässig zu erkennen.
Schnelle Schritte
- Neu beim ESP32 C3 Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Mini, um Ihre Entwicklungsumgebung einzurichten.
- Bibliothek installieren: Fügen Sie die ezButton-Bibliothek über den Bibliotheksverwalter der Arduino IDE hinzu
- Code öffnen: Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein
- Hochladen: Klicken Sie auf die Schaltfläche Upload, um den Code auf Ihren ESP32 C3 Super Mini zu übertragen
- Drehung testen: Drehen Sie den Knopf des Drehgebers einige Klicks im Uhrzeigersinn und dann gegen den Uhrzeigersinn
- Taster testen: Drücken Sie den Knopf des Drehgebers nach unten
- Ergebnisse ansehen: Öffnen Sie den seriellen Monitor (115200 Baud), um Drehrichtung und Zählerstand zu sehen
- Profi-Tipp: Jeder "Klick", den Sie beim Drehen spüren, wird Rastung genannt - der Drehgeber gibt pro Rastung einen vollständigen Impuls aus
Ausgabe im seriellen Monitor:
Code-Erklärung
Lesen Sie die ausführlichen zeilenweisen Kommentare im obigen Code, um zu verstehen, wie jeder Abschnitt funktioniert.
ESP32 C3 Super Mini Code – Drehgeber mit Interrupt
Die Polling-Methode im vorherigen Code prüft ständig die Pin-Zustände, was Rechenleistung des ESP32 C3 Super Mini verschwendet und bei langsamer Codeausführung Drehschritte verpassen kann.
Warum Interrupts für Drehgeber verwenden:
- Beseitigt das ständige Polling - schont die Ressourcen des ESP32
- Verpasst keine Impulse des Drehgebers, auch während anderer Aufgaben
- Effizienter und zuverlässiger für reale Projekte
- Ermöglicht dem ESP32 C3 Super Mini effektives Multitasking
Der folgende Code verwendet Hardware-Interrupts, um Richtung und Position des Drehgebers effizient zu lesen:
Wenn Sie den Knopf drehen, zeigt der serielle Monitor dieselben Drehinformationen wie im vorherigen Beispiel an, jedoch mit verbesserter Leistung.
※ Notiz:
- Ein Interrupt reicht aus: Viele Tutorials verwenden zwei Interrupts für einen Drehgeber, aber das verschwendet Ressourcen - ein einzelner Interrupt funktioniert einwandfrei
- Schlüsselwort volatile verwenden: Deklarieren Sie globale Variablen, die in Interrupts verwendet werden, immer als volatile, um unerwartetes Verhalten zu vermeiden
- Interrupts einfach halten: Minimieren Sie den Code in Interrupt-Funktionen - vermeiden Sie Serial.print() oder Serial.println() in Interrupts
- Schnelle Ausführung: Interrupt-Code sollte für beste Leistung so schnell wie möglich ausgeführt werden
ESP32 C3 Super Mini Drehgeber-Anwendungen
Drehgeber eröffnen viele spannende Projektmöglichkeiten für Ihren ESP32 C3 Super Mini.
Beliebte Projektideen mit Drehgebern:
- Die Position eines Servomotors mit dem Drehgeber präzise steuern
- Die LED-Helligkeit durch Drehen des Knopfes stufenlos einstellen
- Die Drehzahl eines Schrittmotors für Robotikprojekte regeln
- Eine digitale Lautstärkeregelung für Audiosysteme erstellen
- Ein Menü-Navigationssystem für OLED-Displays bauen
- Ein intelligentes Thermostat mit Temperatureinstellung per Drehknopf entwerfen
- Eine per Drehknopf gesteuerte Farbauswahl für RGB-LEDs bauen
Video Tutorial
Sehen Sie sich das folgende Video an, um eine visuelle Schritt-für-Schritt-Anleitung zu diesem Projekt zu erhalten.
Fordern Sie sich selbst heraus
Testen Sie Ihre Fähigkeiten, indem Sie dieses ESP32 C3 Super Mini Drehgeber-Projekt erweitern.
Probieren Sie diese Herausforderungen aus:
- Einfach: Fügen Sie eine LED hinzu, die blinkt, wenn der Taster des Drehgebers gedrückt wird
- Einfach: Zeigen Sie den Zählerwert auf einer 7-Segment-Anzeige statt im seriellen Monitor an
- Mittel: Steuern Sie mit dem Drehgeber den Winkel eines Servomotors (Zähler auf 0-180 Grad abbilden)
- Mittel: Erstellen Sie einen per Drehknopf gesteuerten LED-Dimmer mit PWM
- Fortgeschritten: Bauen Sie ein Menüsystem auf einem LCD mit Navigation und Auswahl per Drehgeber