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

 
 
 
 

Anschlussplan

 
anschluss 2 3     schaltplan 2 3
 
 
 
 

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

Seitennavigation
 
arrow button prev               arrow button up               arrow button next

Einen Kommentar verfassen

Als Gast kommentieren

0
  • Keine Kommentare gefunden