Mit einem Taster zwischen RGB 'Farbmodi' wechseln ?

Hey,

ich habe momentan eine RGB LED angeschlossen und folgende Definition für die Farbauswahl :

void setRGB(int redWert, int greenWert, int blueWert)
{
  analogWrite(redPin, redWert);
  analogWrite(greenPin, greenWert);
  analogWrite(bluePin, blueWert);
}

so kann ich die Farben der LED mit

setRGB(rot,grün,blau);

festlegen.

Ich möchte nun eine Art Reihenfolge definieren, mit der ich mithilfe eines Tasters zwischen (3 oder mehr) Farbmodi wechseln kann. Gibt es dafür eine allgemeine Vorgehensweise ? Wichtig ist, dass ich die aktuell ausgewählte Farbe für spätere Befehle (if-Schleifen) wieder verwenden kann.

Danke im Voraus.

Was meinst du mit "Farbmodi" genau? Nur eine bestimmte Farbe aus den 3 Werten für (R G B) ?

Schau dir den Variablentyp Color an, wie er in zig Libraries vorkommt. Von diesem Datentyp kannst du so viele Variable definieren, wie du brauchst, speichern, solange der Arduino läuft und wieder ausgeben.

Wenn es für länger als die aktuelle Laufzeit des Arduino gespeichert werden soll, gibt es den EEPROM.

Wenn die Farben in fester Reihenfolge geändert werden sollen, kann man evtl. ein Array von Color - Variablen anlegen, und mit jedem Tasterdruck den Index im Kreis um eins weiterschalten...

Battlevader: Gibt es dafür eine allgemeine Vorgehensweise ? ...Wichtig ist, dass ich die aktuell ausgewählte Farbe für spätere Befehle (if-Schleifen) wieder verwenden kann.

Hi,

Ja eine State Maschine (endlicher Automat), findet sich hier im Forum einiges. if-Schleife: Du brauchst nur den Wert in einer Variable zu speichern. Ok... Du verwendest eine eigene Funktion zum Umschalten. Da musst Du auf die Gültigkeit der Variablen achten. Ich will hier aber nichts dazu sagen, da ich mir nicht zu 100% sicher bin.

Poste doch mal Deinen kompletten Code, ohne Konkrete Infos zu Deinem Projekt, kann ich jetzt auch nicht viel mehr sagen.

Grüße, Donny

Hallo

ich hab hier mal zu "mehere Servos betreiben" ein Beispiel eingestellt. Dabei hab ich den Bewegungsablauf mittels einer Schrittkette realisiert ( Endlicher Automat kann man auch sagen). Die Schrittkette kann mittels abgelaufener Zeit weitergeschaltet werden , geht aber auch durch einen Taster.

Heinz