Nr.09 Potentiometer

Drehregler zum Regeln der Blinkgeschwindigkeit einer LED verwenden

Aufgabe: Eine LED soll blinken. Die Blinkgeschwindigkeit soll mit einem Drehregler eingestellt werden.

Material: Arduino / ein Drehregler (Potentiometer) / Breadboard / Kabel

Lerninhalt: Spannung eines Drehreglers auslesen, Sensorwerte mathematisch verarbeiten und für eine Ausgabe verwenden (In diesem Fall für die Dauer einer Pause).

Ein Drehregler hat drei Anschlüsse. Außen wird + und – angeschlossen. Von dem mittleren Pin geht ein Kabel zu einem analogen Eingangspin am Mikrocontroller-Board. Wenn man den Drehregler dreht, dann gibt der mittlere Pin ein Spannung zwischen 0 und 5 Volt aus. Drehregler ganz links: 0 V und Drehregler ganz rechts: 5V, bzw. Seitenverkehrt, je nach Verkabelung.

Als LED, die blinken soll, verwenden wir wie im ersten Sketch die LED, die mit Pin13 am Mikrocontroller befestigt ist. Zusätzlich kann dort auch noch eine weitere LED angeschlossen werden, wie im Aufbau zu sehen ist.

Der Sketch:

int eingang= A0; //Das Wort „eingang“ steht jetzt für den Wert „A0“ (Bezeichnung vom Analogport 0)
int LED = 13; //Das Wort „LED“ steht jetzt für den Wert 13
int sensorwert = 0; //Variable für den Sensorwert mit 0 als Startwert

void setup() //Hier beginnt das Setup.
{
pinMode (LED, OUTPUT); //Der Pin mit der LED (Pin 13) ist jetzt ein Ausgang.
}

void loop()
{
sensorwert =analogRead(eingang); //Die Spannung am Drehregler wird auslesen und wie im vorherigen Sketch als Zahl zwischen 0 und 1023 unter der Variable „sensorwert“ gespeichert.
digitalWrite (LED, HIGH); //Die LED wird eingeschaltet
delay (sensorwert); //Die LED bleibt für so viele Millisekunden eingeschaltet, wie der Wert von „sensorwert“ es gespeichert hat
digitalWrite (LED, LOW); //Die LED wird ausgeschaltet
delay (sensorwert); //Die LED bleibt für so viele Millisekunden ausgeschaltet, wie der Wert von „sensorwert“ es gespeichert hat.
}
//Der Loop-Teil wird nun erneut gestartet. Wenn sich der Wert des ausgelesenen Drehreglers ändert, dann ändert sich auch die Zeit zwischen den Ein- und Aus-Phasen der LED. Das Blinken wird dadurch schneller und langsamer. Das längste delay beträgt in diesem Sketch 1023ms (Millisekunden). Wenn man längere delays benötigt, dann baut man eine kleine mathematische Zeile in den Code ein. Beispiel: Man ändert die Zeile „sensorwert =analogRead(eingang);“ in „sensorwert =analogRead(eingang)*2;“ Damit wird der abgespeicherte Sensorwert um den Faktor 2 vergrößert. Da längste delay wäre dann 2046ms usw…