Potentiometer am Arduino

Potentiometer am Arduino Titelbild

Potentiometer am Arduino

Auch wenn es erstmal nicht so wirkt, ist der Potentiometer dem Widerstand gar nicht mal so unähnlich, bis auf einem Punkt, das wir beim Potentiometer den Widerstand Varieren können. Wenn wir den Drehschalter beim Potentiometer verändern, verändert sich der Widerstand, bei diesem 10K Ohm Potentiometer, geht dieser von 10K Ohm bis fast gar nichts. Wenn wir diesen jetzt noch an 5V und GND anschließen und dem Analogen Pin an einen Analogen Input, können wir die Variabilität des Potentiometer messen. Damit können wir dann z.B. eine LED dimmen.

Anschlüsse

Anschlüsse Arduino Anschlüsse Komponenten
GND GND Potentiometer
A0 Analog Potentiometer
5V VCC Potentiometer
GND Kurzer Leiter LED
IO 10 Langer Leiter LED
const int potiPin = A0;  
const int ledPin = 6;

int sensor = 0;   
int pwm = 0;   

void setup() {
  Serial.begin(9600);
}

void loop() {
  sensor = analogRead(potiPin);
  pwm = map(sensor, 0, 1023, 0, 255);
  analogWrite(ledPin, pwm);

  Serial.print("Sensor = ");
  Serial.print(sensor);
  Serial.print(" PWM Ausgabe = ");
  Serial.println(pwm);
  delay(10);
}

Wenn ihr das Programm ausführt solltet ihr einmal im Seriellen Monitor eine Veränderung der Ergenisse sehen und eine Veränderung des leuchtens bei der LED.

Schritt für Schritt erklärt

Am Anfang werden zuerst 4 Variablen definiert. Die ersten beiden dienen für die Belegung der Pins während in sensor später die gemessen Werte gespeichert werden und in der Variable pwm die in PWM also fürs leuchten der LED gewandelten Werte gespeichert werden.

In Zeile 8 starten wir nichts anderes als die Serielle Komunikation. In Zeile 12 wird dann der Potentiometer mit dem Befehl analogRead() ausgelesen und in sensor gespeichert.

In Zeile 13 werden dann diese werte umgewandelt. Wir haben nämlich das Problem, das analogRead() Wert von 0 bis 1023 misst, während wir aber über analogWrite() nur pwm Werte von 0 bis 255 schreiben können. Mit der map() Funktion können wir diese Werte einfach "umwandeln* bzw. passend anpassen. Dafür wird als erster Parameter der gemessene Wert genommen, als zweiter der Minimale Eingangswert und dann der Maximal Ausgangswert. Der vierte und fünfte Parameter ist der Minimale und Maximale Ausgangswert. Heiß alle gemessenen Zahlen von 0 bis 1023 werden in Zahle von 0 bis 255 umgewandelt.

In Zeile 14 benutzen wir dann die analogWrite() Funktion um diesen Wert auf der LED auszugeben.

In Zeile 16 bis 20 geben wir dann diese Information dann Benutzerfreundlich aus.

Wichtig ist auch das wir in Zeile 21 eine Kurze Pause einbauen, da der Analog zu Digital Converter (der Chip wandelt die Analogen Inputs in Daten um die Wir benutzen können) nicht der aller aller schnellste ist.

Generell haben wir mit dem Potentiometer eine einfache Möglichkeit für eine Variable Eingabe.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!