In diesem Beitrag möchte ich den Drehpotentiometer vorstellen und erläutern, wie man diesen am Arduino betreiben kann.
Der Drehpotentiometer ist ein variabler Widerstand, welcher über ein kleines Rad eingestellt werden kann. Es gibt diese Drehwiderstände oder auch Drehpotentiometer genannt in den verschiedensten Größen und Ausführungen*.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Aufbau eines Drehpotentiometers
Ein Drehpotentiometer besteht aus einem Pertinaxträger und einem Metallring mit einer Widerstandsbahn.
Auf dieser Widerstandsbahn befindet sich der bewegliche Schleifer, welcher über einen Kontaktring nach außen verbunden ist.
Ein ungünstiger Fehler beim Drehpotentiometer ist immer, wenn der Schleifer oder aber die Widerstandsbahn abgenutzt ist, denn dann gibt es Stellen, welche nicht mehr leiten und somit falsche Werte übermittelt werden.
Anschluss und Schaltplan
einfacher Aufbau
Nachdem wir nun wissen wie dieses Bauelement aufgebaut ist wollen wir dieses in eine kleine Schaltung integrieren. Zunächst wollen wir einfach eine LED in der Helligkeit verändern. Dazu benötigen wir eigentlich keinen Mikrocontroller, denn dieses können wir ja realisieren, indem wir die Spannung mit dem Drehpotentiometer mindern oder maximieren (die Ausgangsspannung kann nicht maximiert werden, quasi wenn 5V anliegen können wir min. 0V und max. 5V erreichen.)
Schaltung
In der nachfolgenden Schaltung dimme ich eine LED mit Hilfe eines Drehpotentiometers.
Folgende Bauelemente habe ich dafür verwendet:
- Breadboard Power Supply (um von 9V auf die 3,3V zu kommen),
- 50 kOhm Drehpotentiometer,
- 220 Ohm Widerstand,
- 10 mm LED, blau
- 2x Breadboardkabel, männlich – weiblich, 10 cm,
- 1x Drahtbrücke
Video
Drehpotentiometer am Arduino
Nun wollen wir das ganze einmal an einem Arduino UNO betreiben. Man könnte auch einen anderen beliebigen Arduino kompatiblen Mikrocontroller verwenden, dieser muss jedoch über min. einen analogen und einen digitalen PWM Pin verfügen.
Zunächst einmal verbinden wir den Drehpotentiometer mit dem Arduino. (Den Strom bekommt dieser, diesmal vom Mikrocontroller.)
Der Drehpotentiometer wird in diesem Beispiel am analogen Pin A0 und über 5V angeschlossen.
Die LED wird einfach über einen freien, digitalen, PWM Pin angeschlossen (PWM Pins sind mit einer Tilde ~ gekennzeichnet). Jetzt muss man etwas programmieren, damit erstens der Drehpotentiometer ausgewertet wird und die Helligkeit der LED dann manipuliert wird.
Beispiel LED Fade
Sketch
#define DREHPOTENTIOMETER A0 //Drehpotentiometer am analogen Pin A0 #define LED 9 //LED am digitalen PWM Pin D9 int lastValue = -1; //letzter gelesener Wert void setup() { //definieren das der digitale Pin D9 ein Ausgang ist pinMode(LED, OUTPUT); } void loop() { //lesen des analogen Wertes int value = analogRead(DREHPOTENTIOMETER); //Vergleichen des gelesenen Wertes mit dem zuletzt gelesenen //Wert, wenn dieser gleich ist dann soll nichts geschehen. if(value != lastValue){ //überschreiben des zuletzt gelesenen Wertes mit dem aktuellen lastValue = value; //analoge Werte haben ein Bereich von 0 bis 1023, //der Wertebereich für PWM Signale sind jedoch 0 bis 255 //daher müssen wir den gelesenen, analogen Wert auf ein PWM Signal mappen. int ledValue = map(value,0,1023,0,255); //schreiben / setzen des PWM Signals analogWrite(LED, ledValue); } }
Video
Beispiel LED, blink
Nachdem wir nun die LED in der Helligkeit manipuliert haben können wir mit einfachen Änderungen die LED auch zum Blinken bringen und den Intervall über den Drehpotentiometer setzten.
Das Beispiel ist deutlich einfacher als das Manipulieren der Helligkeit, denn wir müssen hier nur den analogen Wert des Drehpotentiometers als Wert für die Pause zwischen dem Einschalten der LED und dem Ausschalten setzen (und danach).
Der Einfachheit verzichte ich hier auf eine bedingte Abfrage, ob der gelesene analoge Wert dem letzten entspricht.
Sketch
#define DREHPOTENTIOMETER A0 //Drehpotentiometer am analogen Pin A0 #define LED 9 //LED am digitalen PWM Pin D9 void setup() { pinMode(LED, OUTPUT); //setzen das der digitale Pin D9 ein Ausgang ist digitalWrite(LED,HIGH); //LED aktivieren } void loop() { int value = analogRead(DREHPOTENTIOMETER); digitalWrite(LED, HIGH); //LED aktivieren delay(value); //eine Pause digitalWrite(LED, LOW); //LED deaktivieren delay(value); //eine Pause }
Video
Am Ende des Videos ist die Blinkfrequenz so hoch das, das menschliche Auge diese nicht mehr wahrnehmen kann und nur etwas abgedunkelt erkennt.
2 thoughts on “Bauteile: 50kOhm Drehpotentiometer”