Arduino - Potentiometer
In diesem Tutorial werden wir lernen:
- Wie ein Potentiometer funktioniert.
- Wie man das Potentiometer mit dem Arduino verbindet.
- Wie man den Wert des Potentiometers ausliest und ihn in andere steuerbare Werte umwandelt.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Potentiometer
Drehpotentiometer (auch Drehwinkelsensor genannt) wird verwendet, um den Wert von etwas manuell einzustellen (z. B. die Lautstärke der Stereoanlage, die Helligkeit der Lampe, die Zoomstufe des Oszilloskops...)

Pinbelegung
Potentiometer hat normalerweise drei Anschlüsse:
- GND-Pin: muss mit GND (0 V) verbunden werden
- VCC-Pin: muss mit VCC (5 V oder 3,3 V) verbunden werden
- Ausgangspin: liefert die Spannung an den Eingangspin des Arduino

※ Notiz:
GND-Pin und VCC-Pin sind austauschbar.
Wie es funktioniert
Die Welle des Potentiometers ist von 0° (am nächsten zum GND-Pin) bis zu einem oberen Grenzwinkel (am nächsten zum VCC-Pin) drehbar, genannt ANGLE_MAX.
Die Ausgangsspannung reicht von der GND-Spannung bis zur VCC-Spannung. Die Ausgangsspannung steht in direkter Proportion zum Drehwinkel der Welle.
- Wenn der Winkel 0° ist, beträgt die Ausgangsspannung des Pins 0 V
- Wenn der Winkel ANGLE_MAX beträgt, beträgt die Ausgangsspannung des Pins die VCC-Spannung
- Wenn der Winkel zwischen 0° und ANGLE_MAX liegt, Ausgangsspannung = Winkel × VCC / ANGLE_MAX
※ Notiz:
Der ANGLE_MAX-Wert hängt von den Herstellern ab. In der Praxis kümmern wir uns normalerweise NICHT um den Wert von ANGLE_MAX, außer wenn wir den rotierten Winkel berechnen müssen (siehe Abschnitt der Anwendungsfälle).

Arduino - Drehpotentiometer
Die Pins A0 bis A5 des Arduino können als analoge Eingänge verwendet werden. Der analoge Eingangspin wandelt die Spannung (zwischen 0 V und VCC) in ganzzahlige Werte (zwischen 0 und 1023) um, die als ADC-Wert oder Analogwert bezeichnet werden.
Indem wir den Ausgangspin des Potentiometers an einen Analogeingangspin anschließen, können wir den analogen Wert am Pin lesen und ihn anschließend in einen sinnvollen Wert umwandeln.
Der vom Arduino erhaltene Wert ist weder Winkel noch Spannung. Es handelt sich um einen Ganzzahlwert, der von 0 bis 1023 reicht.
Nachdem wir den ganzzahligen Wert vom analogen Eingangspin erhalten haben, skalieren wir diesen Wert auf einen anderen Wert. Schauen wir uns die Anwendungsfälle an.
Anwendungsfälle
- Auf den Winkel des Potentiometers skalieren.
- Auf die Spannung des Potentiometers skalieren:
- Auf den steuerbaren Wert skalieren (z. B. Lautstärke der Stereoanlage, Helligkeit, Geschwindigkeit eines Gleichstrommotors...). Dies ist der am häufigsten verwendete Fall.
Bereich neu skalieren
| FROM | TO | |||
|---|---|---|---|---|
| Angle | rotated by user | 0° | → | ANGLE_MAX |
| Voltage | from potentiometer's pin | 0V | → | VCC |
| ADC value | read by Arduino | 0 | → | 1023 |
| Other value | converted by Arduino | VALUE_MIN | → | VALUE_MAX |
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie man ein Potentiometer programmiert
- Lies den Wert eines Eingangspins, der mit dem Ausgangspin des Potentiometers verbunden ist, mithilfe der Funktion analogRead().
- Skaliere neu auf den Winkel des Potentiometers, indem du die map()-Funktion verwendest.
- Auf die Spannung des Potentiometers skalieren:
- Auf den steuerbaren Wert skalieren (z. B. die Lautstärke einer Stereoanlage, Helligkeit, Geschwindigkeit eines Gleichstrommotors...)
- Zum Beispiel die Anpassung der Helligkeit einer LED. Wie in diesem Tutorial erwähnt, kann die Helligkeit einer LED durch die Verwendung eines PWM-Werts von 0 (immer AUS) bis 255 (immer AN) gesteuert werden. Daher können wir den analogen Wert der LED-Helligkeit wie folgt zuordnen (von AUS bis zur maximalen Helligkeit):
Wenn Sie das LED-Licht vom Nachtlicht bis zur hellsten Stufe dimmen möchten,
※ Notiz:
Die map() Funktion kann nur verwendet werden, um den analogen Wert auf den Typ int oder long Wert zu skalieren. Wenn der steuerbare Wert vom Typ float ist, müssen Sie stattdessen die floatMap()-Funktion verwenden, anstatt der map()-Funktion.
floatMap() Funktion:
Arduino-Code
Schnelle Schritte
- Kopiere den obigen Code und öffne ihn mit der Arduino IDE
- Klicke in der Arduino IDE auf die Upload-Schaltfläche, um den Code auf den Arduino hochzuladen

- Den seriellen Monitor öffnen
- Das Potentiometer drehen
- Das Ergebnis im seriellen Monitor sehen
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fordere dich heraus
Verwenden Sie das Potentiometer, um eines der folgenden Projekte durchzuführen:
- Die Position des Servomotors steuern. Hinweis: Siehe arduino - Servomotor.
- Die Helligkeit der LED ändern. Hinweis: Siehe Arduino - LED-Fade.
Zusätzliches Wissen
- GND-Pin und VCC-Pin sind austauschbar. Es gibt keine festgelegte Konvention für diese beiden Pins. Wenn Sie einen Pin als GND-Pin auswählen, ist der andere der VCC-Pin. Es gibt nur eine Sache, auf die Sie achten müssen. Der Spannungswert am Ausgangspin wird invertiert, wenn wir diese Pins vertauschen.