2.1 - Farben per Taster wechseln
In diesem ersten Anwendungsfall geht es darum, einfach per PWM definierte Farben der RGB LEDs per Tastendruck zu wechseln.
Das Ganze wird über eine Variable umgesetzt, die bei Tastendruck um +1 hochgezählt wird. Über diese Variable werden dann verschiedene LED Farbeinstellungen abgerufen. Dabei wird der entsprechende PWM Wert jedes Farbkanals, mittels des analogWrite Befehls ausgegeben.
Programm 0 = LEDs aus
Programm 1 = LEDs leuchten Blau
Programm 2 = LEDs leuchten Rot
Programm 3 = LEDs leuchten Grün
Programm 4 = LEDs leuchten Lila
Programm 1 = LEDs leuchten Blau
Programm 2 = LEDs leuchten Rot
Programm 3 = LEDs leuchten Grün
Programm 4 = LEDs leuchten Lila
Programm 5 = LEDs leuchten Weiß
Will man wie hier gezeigt, viele LEDs mit dem Arduino ansteuern, muss man dazu Tansistoren verwenden, da der Arduino dazu zu wenig Strom und Spannung liefert. Der Transistor funktioniert hier wie ein Schalter, der die 12V Spannungsversorgung der einzelnen LED Farben sehr schnell an- und ausschält.
Ich habe mich bewusst für MOSFET Transistoren entschieden, da sie gängige Bauteile sind, ohne Vorwiderstand angeschlossen werden können, robust und leistungsstark sind. Allerdings sind sie auch etwas teurer, aber ich finde die Vorteile überwiegen für ein "Bastelprojekt". Falls ihr andere Transistoren verwenden wollt, informiert euch vorher gründlich, da die Pinbelegung und Pinbezeichnung anders sein können und evtl. ein Vorwiderstand in die Steuerleitung kommend vom Arduino muss.
Teileliste
-
Arduino IDE (Tutorial wurde mit 1.6.5 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 tasterPin = 2; // Taster an Pin 2 angeschlossen const int rotPin = 10; // Rote LED an Pin 10 angeschlossen const int gruenPin = 9; // Gruene LED an Pin 9 angeschlossen const int blauPin = 11; // Blaue LED an Pin 11 angeschlossen // Variablen int lichtmodus = 0; // Variable für die verschiedenen festgelegten Farben int tasterStatus = LOW; // Variable zu speichern des Tasterstatus void setup() { pinMode(tasterPin, INPUT); // Setzt den TasterPin als Eingang 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() { // Abfrage ob der Taster gedrückt ist tasterStatus = digitalRead(tasterPin); // Wenn Taster gedrückt ist... if (tasterStatus == HIGH) { lichtmodus++; // Lichtmodus +1 delay(300); // 300ms warten } //+++++++++++++++ LEUCHTPROGRAMME +++++++++++++++++ // Modus 0 = Licht aus if (lichtmodus == 0) { analogWrite(blauPin, 0); analogWrite(rotPin, 0); analogWrite(gruenPin, 0); } // Modus 1 = Blau else if (lichtmodus == 1) { analogWrite(blauPin, 255); analogWrite(rotPin, 0); analogWrite(gruenPin, 0); } // Modus 2 = Rot else if (lichtmodus == 2) { analogWrite(blauPin, 0); analogWrite(rotPin, 255); analogWrite(gruenPin, 0); } // Modus 3 = Grün else if (lichtmodus == 3) { analogWrite(blauPin, 0); analogWrite(rotPin, 0); analogWrite(gruenPin, 255); } // Modus 4 = Lila else if (lichtmodus == 4) { analogWrite(blauPin, 255); analogWrite(rotPin, 255); analogWrite(gruenPin, 0); } // Modus 5 = Weiß else if (lichtmodus == 5) { analogWrite(blauPin, 255); analogWrite(rotPin, 255); analogWrite(gruenPin, 255); } // Anzahl der Leutmodi auf 6 begrenzen. (0 bis 5) else { lichtmodus = 0; } }
Nach dem setzen der Konstanten und Variablen, werden im setup die Ein- und Ausgänge deklariert.
Im loop angekommen, wird nun kontinuierlich der tasterPin überwacht und dessen Status (HIGH wenn gedrückt, oder LOW wenn nicht gedrückt) in der Variable tasterStatus gespeichert.
Wenn nach dem Drücken des Tasters, tasterStatus auf HIGH steht, wird die Variable lichtmodus um +1 (Lichtmodus++) hochgezählt und delay von 300ms pausiert, um ein prellen des Tasters zu verhindern.
Nun wird die Variable lichtmodus abgefragt und je nach dem welche Nummer gespeichert ist, wird das entsprechende Programm gestartet.
Hier wird nun per PWM jedem LED Kanal ein Wert von 0-255 zugeordnet, wobei 0 aus und 255 volle Leuchtkraft ist. So können auch Farben gemischt werden.
Nun wird die Variable lichtmodus abgefragt und je nach dem welche Nummer gespeichert ist, wird das entsprechende Programm gestartet.
Hier wird nun per PWM jedem LED Kanal ein Wert von 0-255 zugeordnet, wobei 0 aus und 255 volle Leuchtkraft ist. So können auch Farben gemischt werden.
Zu guter letzt wird der lichtmodus auf 0 zurück gesezt, wenn er nicht zwischen 0 und 5 liegt. So können die Farbprogramme wieder von neuem durchgeschalten werden.
Einen Kommentar verfassen
Einloggen um Kommentare zu verfassen
Als Gast kommentieren