Nr.09 Potentiometer

Sketch Nr.7: 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.

int eingang= A0;

int LED = 13;

int sensorwert = 0;




void setup()
{
pinMode (LED, OUTPUT);
}

void loop()
{

sensorwert =analogRead(eingang);




digitalWrite (LED, HIGH);


delay (sensorwert);



digitalWrite (LED, LOW);


delay (sensorwert);

}

Das Wort „eingang“ steht jetzt für den Wert „A0“ (Bezeichnung vom Analogport 0)

Das Wort „LED“ steht jetzt für den Wert 13

Variable für den Sensorwert mit 0 als Startwert

Hier beginnt das Setup.

Der Pin mit der LED (Pin 13) ist jetzt ein Ausgang.

Mit dieser Klammer wird der Loop-Teil geöffnet.

Die Spannung am Drehregler wird auslesen und wie im vorherigen Sketch als Zahl zwischen 0 und 1023 unter der Variable „sensorwert“ gespeichert.

Die LED wird eingeschaltet

Die LED bleibt für so viele Millisekunden eingeschaltet, wie der Wert von „sensorwert“ es gespeichert hat.

Die LED wird ausgeschaltet.

Die LED bleibt für so viele Millisekunden ausgeschaltet, wie der Wert von „sensorwert“ es gespeichert hat.

– Mit dieser Klammer wird der Loop-Teil geschlossen.

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…

Schreibe einen Kommentar