ESP32 C3 Super Mini - Potentiometer
Ein Potentiometer ist der einfachste Weg, Ihrem ESP32 C3 Super Mini Projekt einen Drehregler hinzuzufügen. Drehen Sie den Knopf, und das Board liest eine Zahl, die Sie für Lautstärke, Helligkeit, Geschwindigkeit oder jede andere Einstellung verwenden können. Es ist ein großartiges erstes Analogprojekt für Einsteiger.
In diesem Tutorial lernen Sie:
- Wie ein Potentiometer funktioniert
- Wie Sie ein Potentiometer mit dem ESP32 C3 Super Mini verdrahten
- Wie Sie den ESP32 C3 Super Mini programmieren, um den Wert des Potentiometers zu lesen
- Wie Sie diesen Wert in einen Winkel, eine Spannung oder einen Einstellwert umrechnen
- Wie Sie die häufigen Anfängerfehler bei Analog-Pins vermeiden

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Potentiometer
Ein Potentiometer (auch Drehwinkelsensor genannt) ist ein Drehknopf, der eine Einstellung ändert, zum Beispiel die Lautstärke eines Lautsprechers, die Temperatur eines Raumes oder die Helligkeit einer Lampe.
Hauptmerkmale:
- Einfach: Nur 3 Pins, keine Bibliothek erforderlich.
- Günstig: Eines der preiswertesten Bauteile, die Sie kaufen können.
- Analoger Ausgang: Liefert eine gleichmäßige Spannung, nicht nur EIN/AUS.
- Stromsparend: Verbraucht fast keinen Strom.
Technische Daten:
- Betriebsspannung: 3,3V oder 5V (verwenden Sie 3,3V mit dem ESP32 C3 Super Mini)
- Ausgang: 0V bis zur Spannung am VCC-Pin
- Drehung: 0° bis zu einem vom Hersteller festgelegten maximalen Winkel
- Übliche Werte: 10kΩ ist am gebräuchlichsten

Pinbelegung des Potentiometers
Ein Potentiometer hat normalerweise 3 Pins.
- VCC-Pin: Verbinden Sie diesen Pin mit VCC (3,3V am ESP32 C3 Super Mini)
- GND-Pin: Verbinden Sie diesen Pin mit GND (0V)
- Ausgangs-Pin: Gibt die Spannung an den analogen Eingangspin des ESP32 C3 Super Mini aus

※ Notiz:
Der GND-Pin und der VCC-Pin sind austauschbar
WARNING
Versorgen Sie das Potentiometer immer mit 3,3V, nicht mit 5V. Die GPIO-Pins des ESP32 C3 Super Mini vertragen nur 3,3V, und 5V am Ausgangs-Pin können das Board beschädigen.
Wie ein Potentiometer funktioniert
Die Welle dreht sich von 0° (am nächsten zum GND-Pin) bis zu einem maximalen Winkel (am nächsten zum VCC-Pin), der ANGLE_MAX genannt wird.
- Kurz gesagt: mehr Winkel = mehr Spannung am Ausgangs-Pin.
- Die Ausgangsspannung ist direkt proportional zur Position der Welle, von 0 bis VCC.
Die folgende Tabelle zeigt den Zusammenhang zwischen dem Winkel und der Spannung am Ausgangs-Pin:
| Winkel | Spannung |
|---|---|
| 0° | 0v |
| ANGLE_MAX° | VCC |
| Winkel° | Winkel° × VCC / ANGLE_MAX° |
※ Notiz:
Der Wert ANGLE_MAX hängt vom Hersteller ab.

ESP32 C3 Super Mini - Dreh-Potentiometer
Der analoge Eingangspin des ESP32 C3 Super Mini wandelt eine Spannung in eine Zahl um.
- Eingangsbereich: 0V bis 3,3V
- Ausgabezahl: 0 bis 4095 (dies wird ADC-Wert oder Analogwert genannt)
- Auflösung: 12 Bit, also insgesamt 4096 Stufen
- Analog-Pins auf diesem Board: Nur GPIO0 bis GPIO4. Dieses Tutorial verwendet GPIO4.
Verbinden Sie den Ausgangs-Pin des Potentiometers mit einem analogen Eingangspin des ESP32 C3 Super Mini und lesen Sie dann den Analogwert von diesem Pin.
Der Analogwert kann in einen anderen Wert umgerechnet werden. Hier sind die häufigsten Anwendungsfälle:
- In einen Winkel: wissen, wie weit der Knopf gedreht ist.
- In eine Spannung: die tatsächliche Spannung am Ausgangs-Pin sehen.
- In einen Einstellwert: Lautstärke, Temperatur, Helligkeit, Motordrehzahl und so weiter.
Umrechnungsbereich
| VON | BIS | |||
|---|---|---|---|---|
| Winkel | vom Benutzer gedreht | 0° | → | ANGLE_MAX° |
| Spannung | vom Pin des Potentiometers | 0V | → | 3,3V |
| ADC-Wert | vom ESP32 C3 Super Mini gelesen | 0 | → | 4095 |
| Einstellwert | vom ESP32 C3 Super Mini umgerechnet | VALUE_MIN | → | VALUE_MAX |
Schaltplan zwischen Potentiometer und ESP32 C3 Super Mini
Die Verdrahtung ist einfach: zwei Stromleitungen und eine Signalleitung.
- Hinweis: Verwenden Sie den 3,3V-Pin für VCC. Verwenden Sie niemals 5V.
- Hinweis: Die Signalleitung geht an GPIO4, einen analogfähigen Pin.
- Hinweis: Verwenden Sie nicht GPIO8 oder GPIO9. Das sind Strapping-Pins, die das Booten des Boards verhindern können.
- Hinweis: GPIO20 und GPIO21 sind der UART des seriellen Monitors. Lassen Sie sie frei.
| Potentiometer-Pin | ESP32 C3 Super Mini Pin |
|---|---|
| VCC | 3,3V |
| GND | GND |
| Ausgang | GPIO4 |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie man ein Potentiometer programmiert
Das Lesen eines Potentiometers erfordert nur eine Funktion und danach ein wenig Mathematik.
- Lesen Sie den Wert vom analogen Eingangspin, der mit dem Ausgangs-Pin des Potentiometers verbunden ist, mit der Funktion analogRead().
- Rechnen Sie mit der Funktion map() in den Winkel des Potentiometers um.
- Rechnen Sie in die Spannung des Potentiometers um:
- Rechnen Sie in den steuerbaren Wert um (z. B. Lautstärke einer Stereoanlage, Helligkeit, Drehzahl eines DC-Motors ...)
- Zum Beispiel die Umrechnung in die Helligkeit einer LED. Wie in diesem Tutorial erwähnt, kann die Helligkeit einer LED mit einem PWM-Wert von 0 (immer AUS) bis 255 (immer EIN) gesteuert werden. Daher können wir den Analogwert wie folgt auf die Helligkeit der LED (von AUS bis zur hellsten Stufe) abbilden:
Wenn Sie die LED von einer Nachtlicht-Stufe bis zur hellsten Stufe dimmen möchten,
※ Notiz:
Verwenden Sie immer 4095 als Obergrenze des Eingangsbereichs, nicht 1023. Der ESP32 C3 Super Mini hat einen 12-Bit-ADC. Code, der von einem älteren 10-Bit-Board kopiert wurde, verwendet oft 1023 und liefert auf diesem Board falsche Ergebnisse.
※ Notiz:
Die Funktion map() kann nur verwendet werden, um den Analogwert in einen Wert vom Typ int oder long umzurechnen. Wenn der steuerbare Wert vom Typ float ist, müssen Sie anstelle der Funktion map() die Funktion floatMap() verwenden.
Funktion floatMap():
ESP32 C3 Super Mini Code
Der folgende Code liest das Potentiometer an GPIO4 und gibt sowohl den Rohwert als auch die Spannung aus.
Was dieser Code macht:
- Startet Serial: öffnet den seriellen Monitor mit 115200 Baud.
- Stellt den ADC ein: analogSetAttenuation(ADC_11db) ermöglicht dem Pin, den vollen Bereich von 0V bis 3,3V zu lesen.
- Liest den Knopf: analogRead() liefert eine Zahl von 0 bis 4095.
- Rechnet in Volt um: floatMap() wandelt diese Zahl in eine Spannung mit Nachkommastellen um.
- Gibt einmal pro Sekunde aus: leicht zu verfolgen, während Sie den Knopf drehen.
Schnelle Schritte
- Neu beim ESP32 C3 Super Mini? Absolvieren Sie zuerst unser Tutorial Erste Schritte mit dem ESP32 C3 Super Mini, um Ihre Entwicklungsumgebung einzurichten.
- Verdrahten: Verbinden Sie das Potentiometer wie oben gezeigt mit 3,3V, GND und GPIO4.
- Board anschließen: Verbinden Sie den ESP32 C3 Super Mini mit einem USB-Typ-C-Kabel mit Ihrem Computer.
- IDE öffnen: Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Board auswählen: Stellen Sie sicher, dass ESP32 C3 Super Mini unter Werkzeuge > Board ausgewählt ist.
- Port auswählen: Wählen Sie den COM-Port Ihres Boards unter Werkzeuge > Port.
- Hochladen: Klicken Sie in der Arduino IDE auf die Schaltfläche Upload.
- Seriellen Monitor öffnen: Stellen Sie die Baudrate auf 115200 ein.
- Knopf drehen: Drehen Sie das Potentiometer langsam von einem Ende zum anderen.
- Ergebnis prüfen: Der serielle Monitor zeigt den sich ändernden Wert. Das sieht wie folgt aus:
- Profi-Tipp: Wenn der Wert nie 0 oder 4095 erreicht, prüfen Sie, ob VCC und GND fest verbunden sind. Ein lockeres Kabel ist die häufigste Ursache.
※ Notiz:
Dieses Tutorial verwendet die Funktion analogRead(), um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der mit einem Sensor oder Bauteil verbunden ist. Der ADC des ESP32 C3 Super Mini eignet sich für Projekte, die keine hohe Genauigkeit erfordern. Für Projekte mit präzisen Messungen sollten Sie jedoch Folgendes beachten:
- Der ADC des ESP32 C3 Super Mini ist nicht vollkommen genau und muss für korrekte Ergebnisse eventuell kalibriert werden. Jedes ESP32 C3 Super Mini Board kann leicht abweichen, daher ist eine Kalibrierung für jedes einzelne Board notwendig.
- Die Kalibrierung kann schwierig sein, besonders für Anfänger, und liefert nicht immer genau die gewünschten Ergebnisse.
Für Projekte mit hoher Präzision sollten Sie einen externen ADC (z. B. ADS1115) mit dem ESP32 C3 Super Mini verwenden oder ein anderes Board mit einem zuverlässigeren ADC wählen. Wenn Sie den ADC des ESP32 C3 Super Mini dennoch kalibrieren möchten, lesen Sie den ESP32 ADC Calibration Driver.
Projektideen
Sobald der Knopf funktioniert, versuchen Sie damit etwas Echtes zu steuern.
- Dimmschalter: Drehen Sie den Knopf, um die Helligkeit einer LED zu ändern.
- Lautstärkeregler: Stellen Sie die Lautstärke eines Summers oder Lautsprechers ein.
- Servo-Steuerung: Bewegen Sie einen Servomotor auf den gewählten Winkel.
- Motordrehzahl-Regler: Ändern Sie die Drehzahl eines DC-Motors oder Lüfters.
- Schwellwert-Einsteller: Stellen Sie mit dem Knopf die Alarmschwelle eines Sensors ein, ohne den Code zu bearbeiten.
- Menüauswahl: Blättern Sie durch Optionen auf einem OLED- oder LCD-Bildschirm.
Fordern Sie sich selbst heraus
Probieren Sie diese kleinen Erweiterungen aus, um mehr über analoge Eingänge am ESP32 C3 Super Mini zu lernen.
- Einfach: Geben Sie den Wert als Prozentsatz von 0% bis 100% statt als Rohwert aus.
- Einfach: Ändern Sie die Verzögerung, sodass der Wert 10 Mal pro Sekunde aktualisiert wird.
- Mittel: Bilden Sie den Wert auf einen Winkel von 0° bis 270° ab und geben Sie ihn aus.
- Mittel: Bilden Sie den Mittelwert aus 10 Messungen vor der Ausgabe, um den Wert zu stabilisieren.
- Fortgeschritten: Stellen Sie mit dem Knopf die Helligkeit einer LED an GPIO3 per PWM ein.
- Fortgeschritten: Fügen Sie ein zweites Potentiometer an GPIO2 hinzu und lesen Sie beide Knöpfe gleichzeitig.