int haus1 = 14;
int haus2 = 2;
int gs_ws = 3;
int gs_decke = 4;
int gs_aussen = 5;
int gruen = 6;
int warnkfz = 7;
int kanal = 8;
int rot = 9;
int blau = 10;
int warm = 11;
int kalt = 12;
int taschenlampe = 13;
int p = 50;
int pf = 500;
long s10 = 10000;
long s5 = 5000;
long s1 = 1000;
int Hblau = 20;
int Hgruen = 0;
int Hrot = 0;
int Hwarm = 0;
void setup() {
pinMode(haus1, OUTPUT);
pinMode(haus2, OUTPUT);
pinMode(gs_ws, OUTPUT);
pinMode(gs_decke, OUTPUT);
pinMode(gs_aussen, OUTPUT);
pinMode(gruen, OUTPUT);
pinMode(warnkfz, OUTPUT);
pinMode(kanal, OUTPUT);
pinMode(rot, OUTPUT);
pinMode(blau, OUTPUT);
pinMode(warm, OUTPUT);
pinMode(kalt, OUTPUT);
pinMode(taschenlampe, OUTPUT);
//Test der einzelnen Ausgänge
digitalWrite(haus1, HIGH);
delay(5000);
digitalWrite(haus1, LOW);
delay(500);
digitalWrite(haus2, HIGH);
delay(5000);
digitalWrite(haus2, LOW);
delay(500);
digitalWrite(gs_ws, HIGH);
delay(5000);
digitalWrite(gs_ws, LOW);
delay(500);
digitalWrite(gs_decke, HIGH);
delay(5000);
digitalWrite(gs_decke, LOW);
delay(500);
digitalWrite(gs_aussen, HIGH);
delay(5000);
digitalWrite(gs_aussen, LOW);
delay(500);
digitalWrite(gruen, HIGH);
delay(5000);
digitalWrite(gruen, LOW);
delay(500);
digitalWrite(warnkfz, HIGH);
delay(5000);
digitalWrite(warnkfz, LOW);
delay(500);
digitalWrite(kanal, HIGH);
delay(5000);
digitalWrite(kanal, LOW);
delay(500);
digitalWrite(rot, HIGH);
delay(5000);
digitalWrite(rot, LOW);
delay(500);
digitalWrite(blau, HIGH);
delay(5000);
digitalWrite(blau, LOW);
delay(500);
digitalWrite(warm, HIGH);
delay(5000);
digitalWrite(warm, LOW);
delay(500);
digitalWrite(kalt, HIGH);
delay(5000);
digitalWrite(kalt, LOW);
delay(500);
digitalWrite(taschenlampe, HIGH);
delay(5000);
digitalWrite(taschenlampe, LOW);
delay(500);
//Start des Programms
analogWrite(kanal, HIGH);
analogWrite(gs_aussen, HIGH);
}
void loop() {
//Zwischenergebnis
Hblau = 20;
Hgruen = 0;
Hrot = 0;
Hwarm = 0;
//1. Schleife für Sonnenaufgang bis blau bei 100
while (Hblau <= 100)
{
analogWrite(blau, Hblau);
delay(p);
Hblau ++;
}
//Zwischenergebnis
Hblau = 100;
Hgruen = 0;
Hrot = 0;
Hwarm = 0;
//2. Schleife für Sonnenaufgang bis blau bei 255
while (Hblau <= 255)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
delay(p);
Hblau ++;
Hrot ++;
if(Hblau == 60)
{
digitalWrite(haus2, HIGH);
}
//Flackerndes Einschalten der Werkbankbeleuchtung gekoppelt an Status von blau
if(Hblau == 105)
{
analogWrite(gs_ws, 50);
}
if(Hblau == 110)
{
analogWrite(gs_ws, 0);
}
if(Hblau == 120)
{
analogWrite(gs_ws, 50);
}
if(Hblau == 140)
{
analogWrite(gs_ws, 0);
}
if(Hblau == 150)
{
analogWrite(gs_ws, 170);
}
if(Hblau == 160)
{
analogWrite(gs_ws, 0);
}
if(Hblau == 180)
{
analogWrite(gs_ws, 255);
}
}
//Zwischenergebnis: Blau bei voller Leuchtkraft
Hblau = 255;
Hgruen = 0;
Hrot = 155;
Hwarm = 0;
digitalWrite(haus1, HIGH);
//3. Schleife für Sonnenaufgang bis rot bei 255
while (Hrot <= 255)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
delay(p);
Hrot ++;
}
//Zwischenergebnis: Blau und rot bei voller Leuchtkraft
Hblau = 255;
Hgruen = 0;
Hrot = 255;
Hwarm = 0;
//4. Schleife für Grün und warm
while (Hgruen <= 255)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
delay(p);
Hwarm ++;
Hgruen ++;
if (Hgruen == 90)
{
digitalWrite(gs_decke, HIGH);
}
}
Hblau = 255;
Hgruen = 255;
Hrot = 255;
Hwarm = 255;
//Tag
analogWrite(gs_aussen, 0);
delay(s5);
digitalWrite(haus1, LOW);
delay(s1);
delay(s1);
digitalWrite(haus2, LOW);
delay(s5);
digitalWrite(warnkfz, HIGH);
delay(s1);
delay(s1);
analogWrite(gs_ws, 0);
delay(s1);
delay(s1);
delay(s1);
delay(s5);
digitalWrite(warnkfz, LOW);
delay(s10);
delay(s10);
delay(s10);
digitalWrite(warnkfz, HIGH);
delay(s10);
digitalWrite(warnkfz, LOW);
delay(s10);
analogWrite(gs_ws, 100);
delay(100);
analogWrite(gs_ws, 0);
delay(200);
analogWrite(gs_ws, 200);
delay(50);
analogWrite(gs_ws, 0);
delay(100);
analogWrite(gs_ws, 150);
delay(150);
analogWrite(gs_ws, 0);
delay(100);
analogWrite(gs_ws, 255);
delay(300);
delay(s5);
analogWrite(gs_ws, 0);
delay(s5);
delay(s10);
digitalWrite(warnkfz, HIGH);
delay(s5);
analogWrite(gs_ws, 150);
delay(100);
analogWrite(gs_ws, 0);
delay(200);
analogWrite(gs_ws, 100);
delay(50);
analogWrite(gs_ws, 0);
delay(100);
analogWrite(gs_ws, 50);
delay(150);
analogWrite(gs_ws, 0);
delay(100);
analogWrite(gs_ws, 255);
delay(1300);
//Ende Tag = 90 sekunden
//1. nachtschleife - Grün und Warm aus
while (Hgruen >= 0)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
delay(p);
Hgruen --;
Hwarm --;
if (Hgruen == 195)
{
digitalWrite(warnkfz, LOW);
}
if (Hgruen == 145)
{
digitalWrite(haus2, HIGH);
}
}
Hblau = 255;
Hgruen = 0;
Hrot = 255;
Hwarm = 0;
digitalWrite(warnkfz, HIGH);
//2. Nachtschleife rot dimmen bis 190
while (Hrot >= 190)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
delay(p);
Hrot --;
}
Hblau = 255;
Hgruen = 0;
Hrot = 190;
Hwarm = 0;
//3. Nachtschleife bis rot 0 und blau 65
while (Hrot >= 0)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
delay(p);
Hblau --;
Hrot --;
if (Hrot == 155)
{
digitalWrite(warnkfz, LOW);
}
if (Hrot == 120)
{
digitalWrite(haus1, HIGH);
}
if (Hrot == 80)
{
digitalWrite(gs_decke, HIGH);
}
//Flackerndes Einschalten der Außenbeleuchtung gs_aussen
if(Hrot == 180)
{
analogWrite(gs_aussen, 50);
}
if(Hrot == 160)
{
analogWrite(gs_aussen, 0);
}
if(Hrot == 150)
{
analogWrite(gs_aussen, 50);
}
if(Hrot == 140)
{
analogWrite(gs_aussen, 0);
}
if(Hrot == 120)
{
analogWrite(gs_aussen, 170);
}
if(Hrot == 110)
{
analogWrite(gs_aussen, 0);
}
if(Hrot == 100)
{
analogWrite(gs_aussen, 255);
}
}
//Zwischenschritt, weil rot kurz vor dem Nachtbeginn nochmal aufleuchtet
Hblau = 65;
Hgruen = 0;
Hrot = 0;
Hwarm = 0;
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
//4. Nachtschleife blau dimmen bis 30
while (Hblau >= 30)
{
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
delay(p);
Hblau --;
}
//Nacht
Hblau = 30;
Hgruen = 0;
Hrot = 0;
Hwarm = 0;
analogWrite(blau, Hblau);
analogWrite(rot, Hrot);
analogWrite(gruen, Hgruen);
analogWrite(warm, Hwarm);
delay(s5);
digitalWrite(haus1, LOW);
delay(s10);
digitalWrite(warnkfz, HIGH);
delay(s10);
digitalWrite(warnkfz, LOW);
delay(s5);
//Gewitterblitze
digitalWrite(kalt, HIGH);
delay(p);
digitalWrite(kalt, LOW);
delay(pf);
digitalWrite(kalt, HIGH);
delay(p);
digitalWrite(kalt, LOW);
delay(p);
digitalWrite(kalt, HIGH);
delay(p);
digitalWrite(kalt, LOW);
delay(p);
//Stromausfall
digitalWrite(haus2, LOW);
digitalWrite(gs_decke, LOW);
digitalWrite(kanal, LOW);
analogWrite(gs_aussen, 0);
analogWrite(gs_ws, 0);
delay(s1);
digitalWrite(taschenlampe, HIGH);
delay(s1);
//Gewitterblitze
digitalWrite(kalt, HIGH);
delay(p);
digitalWrite(kalt, LOW);
delay(pf);
digitalWrite(kalt, HIGH);
delay(p);
digitalWrite(kalt, LOW);
delay(p);
digitalWrite(kalt, HIGH);
delay(p);
digitalWrite(kalt, LOW);
delay(pf);
digitalWrite(kalt,HIGH);
delay(p);
delay(p);
delay(p);
digitalWrite(kalt, LOW);
delay(s5);
digitalWrite(warnkfz, HIGH);
delay(s5);
//Strom wieder da
digitalWrite(haus2, HIGH);
delay(s1);
digitalWrite(kanal, HIGH);
delay(s1);
delay(s1);
digitalWrite(taschenlampe, LOW);
delay(s1);
delay(s1);
digitalWrite(warnkfz, LOW);
delay(pf);
analogWrite(gs_aussen, 150);
delay(100);
analogWrite(gs_aussen, 0);
delay(200);
analogWrite(gs_aussen, 100);
delay(50);
analogWrite(gs_aussen, 0);
delay(100);
analogWrite(gs_aussen, 50);
delay(150);
analogWrite(gs_aussen, 0);
delay(100);
analogWrite(gs_aussen, 255);
delay(s1);
digitalWrite(gs_decke, HIGH);
delay(s5);
digitalWrite(gs_decke, LOW);
delay(s10);
delay(s10);
digitalWrite(warnkfz, HIGH);
delay(s10);
digitalWrite(warnkfz, LOW);
delay(3300);
}