2.1 - Farben per Taster wechseln

 

intro 1.2 weich

 
 
 
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 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.
 
anmerkung
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

 
 
 
 

Anschlussplan

 
Anschlussplan 2.1     Schaltplan 2.1     transistor anschluss
                                      
 
 
 

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.
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.
 
Das war es auch schon  fertig
 
 
 
 
downloadbutton arduino
 
 
 
 
 
 
 
 

Seitennavigation
 
                             arrow button up               arrow button next

Einen Kommentar verfassen

Als Gast kommentieren

0