2.3 - Farbmischer per Drehpoti
Mit einem Potentiometer kann man ja allerhand anstellen, wie etwa die Farbe unseres RGB LED Strips einstellen.
Dazu muss man nur den aktuellen Wert des Potentiometers an einem Analog-In Pin messen und den Arduino ein bisschen Rechenarbeit machen lassen.
Teileliste
-
Arduino IDE (Tutorial wurde mit 1.6 erstellt)
-
Arduino Uno (oder ein anderes Modell)
-
12V Netzteil (das ist nur ein Beispiel! Bitte wählt ein ausreichend starkes Netzteil je nach benötigter Leistung)
-
alternativ 12V Computer Netzteil
-
3x N-Chanal Transistor/Mosfet (z.B. IRFZ44N oder IRFZ34N)
Anschlussplan
Code
//Konstanten const int rotPin = 10; // Rote LED an Pin 10 angeschlossen const int gruenPin = 11; // Grüne LED an Pin 11 angeschlossen const int blauPin = 9; // Blaue LED an Pin 9 angeschlossen const int potiPin = A0 ; // Potenzometer am analogen Eingang Pin 0 angeschlossen // Variablen int rotVar = 0 ; // Variable zum speichern der Werte für die Ausgabe int gruenVar = 0 ; // Variable zum speichern der Werte für die Ausgabe int blauVar = 0 ; // Variable zum speichern der Werte für die Ausgabe int potiVar = 0 ; // Variable zum speichern des Potentiometereingangs void setup() { pinMode(rotPin, OUTPUT) ; // Setzt den LEDPin als Ausgang pinMode(gruenPin, OUTPUT) ; // Setzt den LEDPin als Ausgang pinMode(blauPin, OUTPUT) ; // Setzt den LEDPin als Ausgang } void loop() { potiVar = analogRead(potiPin) ; if(potiVar < 341) // Unteres Drittel des Potenziometerbereichs (0-340) { potiVar = (potiVar * 3) / 4; // Den Wert auf 0-255 umrechnen rotVar = 256 - potiVar; // Rot von an nach aus gruenVar = potiVar; // Grün von aus nach an blauVar = 0; // Blau aus } else if(potiVar < 682) // Mittleres Drittel des Potenziometerbereichs (341-681) { potiVar = ( (potiVar-341) * 3) / 4; // Den Wert auf 0-255 umrechnen rotVar = 0; // Rot aus gruenVar = 256 - potiVar; // Grün von an nach aus blauVar = potiVar; // Blau von aus nach an } else // Oberes Drittel des Potenziometerbereichs (682-1023) { potiVar = ( (potiVar-683) * 3) / 4; // Den Wert auf 0-255 umrechnen rotVar = potiVar; // Rot von aus nach an gruenVar = 0; // Grün aus blauVar = 256 - potiVar; // Blau von an nach aus } analogWrite(rotPin, rotVar); // Gibt die Variable mit PWM aus analogWrite(gruenPin, gruenVar); // Gibt die Variable mit PWM aus analogWrite(blauPin, blauVar); // Gibt die Variable mit PWM aus }
Nach dem setzen der Konstanten und Variablen, werden im setup die Ein- und Ausgänge deklariert.
Im loop angekommen, wird der Analoge Pin, an dem das Potentiometer angeschlossen ist abgefragt und der Wert, der sich zwischen 0 und 1023 bewegt in der Variable potiVar gespeichert. Jetzt wird abgefragt wie groß der Wert ist und der jeweilige Fall ausgeführt.
Angenommen der Wert ist 578, dann tritt der Fall else if(potiVar < 682) in Kraft, da der Wert kleiner 682, aber größer als 341 ist.
Hier wird der Wert jetzt heruntergerechnet damit er zwischen 0 und 255 liegt und so als PWM Wert augegeben werden kann. Jetzt wird der Wert in die Variablen der drei LEDs gespeichert, die dann die Farbe ergeben.
Ganz unten im Sketch werden nun die drei LED Variablen mit dem analogWrite Befehl als PWM Wert an die LEDs ausgegeben.
Hier wird der Wert jetzt heruntergerechnet damit er zwischen 0 und 255 liegt und so als PWM Wert augegeben werden kann. Jetzt wird der Wert in die Variablen der drei LEDs gespeichert, die dann die Farbe ergeben.
Ganz unten im Sketch werden nun die drei LED Variablen mit dem analogWrite Befehl als PWM Wert an die LEDs ausgegeben.
Einen Kommentar verfassen
Einloggen um Kommentare zu verfassen
Als Gast kommentieren