Wie der Titel schon sagt, habe ich vor, bei Abschalten der Beleuchtung eine RGB-LED-Strip als Sonnenuntergang mit anschließendem Mondlicht zu bauen.
Die Funktion des Sonnenuntergangs habe ich schon hinbekommen, nur bekomme ich es nicht hin, dass solange das Licht aus ist, die RGB auf Blau bleibt, bis Das Tageslicht wieder an ist.
Hier mein bisheriger Code:
// Aquarium Sonnenuntergang mit Mondlicht geschaltet mit Fotowiederstand, wenn Leuchstofflampen aus sind.
const int BlauPin = 5; // Blaue LED an Pin 5 angeschlossen
const int RotPin = 3; // Rote LED an Pin 3 angeschlossen
const int GruenPin = 6; // Gruene LED an Pin 6 angeschlossen
const int FadeZeit = 20; // Ein höherer Wert verlangsamt den Farbwechsel
int r, g, b; // Variablen Rot, Gruen, Blau
int licht; // Variable Lichtsensor
void setup() {
Serial.begin(9600); //Serielle Schnittstelle zum Testen
pinMode(BlauPin, OUTPUT); // Pin´s auf Ausgang
pinMode(RotPin, OUTPUT); // Pin´s auf Ausgang
pinMode(GruenPin, OUTPUT); // Pin´s auf Ausgang
// alles aus
analogWrite(BlauPin, 0);
analogWrite(GruenPin, 0);
analogWrite(RotPin, 0);
}
void loop (){
licht = analogRead(0); // Sensor an Analog Pin 0
Messen ();
}
void Messen (){
Serial.println("Messen");
analogWrite(BlauPin, 0);
analogWrite(GruenPin, 0);
analogWrite(RotPin, 0);
if (licht < 200) {
dim ();
}
else {
return;
}
}
void dim () {
Serial.println("dimmen");
analogWrite(BlauPin, 255); // 100% Blau
analogWrite(GruenPin, 255); // 100% Gruen
analogWrite(RotPin, 255); //100% Rot
delay(1000);
// Dimm grün
for (g = 255; g > 0; g--) {
analogWrite(GruenPin, g);
delay(FadeZeit);
}
// Dimm Rot
for (r = 255; r > 0; r--) {
analogWrite(RotPin, r);
delay(FadeZeit);
}
}
Hier nochmal das Ziel:
Leuchtstofflampen sind an = LED-Strip aus
Leuchtstofflampen sind aus = Gruen dimmt ab - Rot dimmt ab - blau bleibt an
Leuchtstofflampen gehen wieder an = LED-Strip geht aus
kann mir da jemand nen Tip geben, wie ich es hinbekomme, das die Schleifen dim stehen bleibt, bis das Licht wieder an ist?
Gruß
Jörg