RGB LED Farbe+ Pulsieren

Servus,

Wie der Name schon sagt bin ich auf der Suche nach einer Lösung für folgendes Problem:

Es soll eine RGB LED die an einen arduino Uno angeschlossen ist durch ein 10K poti und einem taster wie folgt gesteuert werden

  1. Das Poti ändert die Farbe

  2. Der taster schaltet: Ein ( Dauer)- Pulsieren ( Hinauf und Hinunter dimmen) - Aus

Und das ganze in der eingestellten Farbe :frowning:

nun meine Frage kann mir wer helfen das zu realisieren??? Nur mit poti die Farbe zu steuern hab ich hinbekommen nur der Trick ist ja jetzt den Taster auch noch zu integrieren????

Danke im vorraus!

LG Sandro

Dann zeig deinen Sketch und deinen Ansatz

also das rgb band hängt nach diesem tutorial am arduino !

http://we-mod-it.com/board258-diy-do-it-yourself/board263-diy-how-to/board231-raspberry-arduino/3076-arduino-tutorial-2-3-farbmischer-per-drehpoti/

nun ist die frage wie integriere ich den taster in den code???

mit einem "Merker"
Beispiel:

byte mode =0;
void loop{
if(digitalRead(3)==high){
mode ++;
if (mode == 4)
{mode =0;}
//hier noch warten bis taster losgelassen
}

switch(mode){
case 0: // blinken
      break;
case 1: // Farbe wechsel
      break;
case 3: // aus
      break;

}
}

sandministrator:
also das rgb band hängt nach diesem tutorial am arduino !

[DIY How To Arduino] Arduino Tutorial 2.3 - Farbmischer per Drehpoti - Raspberry / Arduino - We-Mod-It | Das Forum von Moddern für Modder

nun ist die frage wie integriere ich den taster in den code???

Du möchtest das wir dir helfen, warum machst du uns es nicht einfacher, indem du den Sketch, wie alle anderen auch, hier postest.

Poste den Sketch, den du verwendest, hier in Code-Tags (Schaltfläche </>) verwenden. Dann müssen nicht alle auf die Suche gehen.

ok danke tut mir leid :frowning: hier ist er:

der taster hängt dann am PWM 2 :slight_smile: also einfach angesteuert mit high und low :slight_smile:

/*
Arduino Tutorial 2.3 - RGB LED Farbmischer mit Drehpoti

In diesem Tutorial geht es darum, eine Farbe mit Hilfe eines Drehpotenzometers einzustellen.

by Scynd 2015
http://www.scynd.de/tutorials/arduino-tutorials.html
*/

//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
}

sandministrator:
ok danke tut mir leid :frowning: hier ist er:

Alles klar, danke.

der taster hängt dann am PWM 2 :slight_smile: also einfach angesteuert mit high und low :slight_smile:

Was meinst du mit PWM 2?
Ein Taster braucht kein PWM und muss auch nicht angesteuert werden.
Er brauch einen digitalen Eingang mit Pullup-Widerstand und wird im Sketch auf LOW abgefragt.
Dazu kommt in der Deklaration und im Setup die Anweisung:

const int Taster = xx;
     
pinMode(Taster, INPUT_PULLUP);

Und weiteres erfolgt in der Loop.

um Programmspeicher zu sparen deklariert man Ein und Ausgänge so:

#define taster xx

oder

const byte taster = xx;

da die Anzahl der Ein und Ausgänge nie höher als 255 ist reicht da ein byte