int Rot=3; int Grn=5; int Bla=6; int We=9;int WW=10; // Fünf LED Ausgänge int HRot= 255; int HGrn= 0; int HBla= 0; int HWe= 0;int HWW= 0; // Fünf Helligkeitsmerker int Schleife= 0; // Gesamtzähler Schleife int Merker= 5099; // Merker für Ende Schleifendurchläufe int Regler = A0; // analoger Eingang Geschwindigkeitsregler int Geschw = 0; // Merker Geschwindigkeit const int switchPin = 2; //Pausentaste int state; //Merker für Pausentaste int lastState; //Merker für Pausentaste int ledState; //Merker für Pausentaste int Taster = 0; //Merker für Pausentaste int Schleife2=0; //Merker für Pausentaste int LED = 13; //Anzeige Pasentaste ein oder aus void setup() { pinMode(Rot, OUTPUT); pinMode(Grn, OUTPUT); pinMode(Bla, OUTPUT); pinMode(We, OUTPUT); pinMode(WW, OUTPUT); pinMode(switchPin, INPUT); pinMode(LED, OUTPUT); //Serial.begin(9600); } void loop() { state = digitalRead(switchPin); if (state != lastState) if (state == HIGH) if (ledState == HIGH) ledState = LOW; else ledState = HIGH; lastState = state; if (ledState == HIGH) Taster =1; if (ledState == LOW) Taster = 0; digitalWrite(LED, ledState); //Anzeige ob Pause an oder aus Geschw = map(analogRead(Regler), 0, 1023, 100,0); // Hier wird der analoge Einang von 0-1023 auf 0-100 Umgewandelt delay(Geschw); //Verzögerung welche durch den Poti eingestellt ist analogWrite(Rot, HRot); analogWrite(Grn, HGrn); analogWrite(Bla, HBla); analogWrite(We, HWe); analogWrite(WW, HWW); if ((Schleife>=0) && (Schleife<=254)) HGrn=HGrn+1; if ((Schleife>=255) && (Schleife<=509)) HRot=HRot-1; if ((Schleife>=510) && (Schleife<=764)) HBla=HBla+1; if ((Schleife>=765) && (Schleife<=1019)) HGrn=HGrn-1; if ((Schleife>=1020) && (Schleife<=1274)) HWe=HWe+1; if ((Schleife>=1275) && (Schleife<=1529)) HBla=HBla-1; if ((Schleife>=1530) && (Schleife<=1784)) HWW=HWW+1; if ((Schleife>=1785) && (Schleife<=2039)) HWe=HWe-1; if ((Schleife>=2040) && (Schleife<=2294)) HRot=HRot+1; if ((Schleife>=2295) && (Schleife<=2549)) HWW=HWW-1; if ((Schleife>=2550) && (Schleife<=2804)) HBla=HBla+1; if ((Schleife>=2805) && (Schleife<=3059)) HRot=HRot-1; if ((Schleife>=3060) && (Schleife<=3314)) HWW=HWW+1; if ((Schleife>=3315) && (Schleife<=3569)) HBla=HBla-1; if ((Schleife>=3570) && (Schleife<=3824)) HGrn=HGrn+1; if ((Schleife>=3825) && (Schleife<=4079)) HWW=HWW-1; if ((Schleife>=4080) && (Schleife<=4334)) HWe=HWe+1; if ((Schleife>=4335) && (Schleife<=4589)) HGrn=HGrn-1; if ((Schleife>=4590) && (Schleife<=4844)) HRot=HRot+1; if ((Schleife>=4845) && (Schleife<=5099)) HWe=HWe-1; //Serial.print(Schleife); Serial.println(" S"); //Serial.print(HRot); Serial.println(" R"); //Serial.print(HGrn); Serial.println(" G"); //Serial.print(HBla); Serial.println(" B"); //Serial.print(HWe); Serial.println(" We"); //Serial.print(HWW); Serial.println(" WW"); Schleife=Schleife + 1; //Schleife wird bei jedem durchlauf hochgezählt if ((Taster == 1) && (Schleife >=0)) Schleife2 = Schleife; //Die Schleifenzahl wird vor Pause abgespeichert if (Taster == 1) Schleife = -1000; //Die Schleifenzahl wird wegen Pause auf einen Wert gesetz, der keine bedeutung hat if ((Taster == 0) && (Schleife <=-1)) Schleife = Schleife2; //Nach lösen der Pause wird der alte Schleifenwert wieder zurückgeschrieben if (Schleife >=Merker) HRot= 255; //Nach dem kompletten Lichdurchlauf werden alle Merker auf den Anfangszustand gesetz if (Schleife >=Merker) HGrn= 0; //Nach dem kompletten Lichdurchlauf werden alle Merker auf den Anfangszustand gesetz if (Schleife >=Merker) HBla= 0; //Nach dem kompletten Lichdurchlauf werden alle Merker auf den Anfangszustand gesetz if (Schleife >=Merker) HWe= 0; //Nach dem kompletten Lichdurchlauf werden alle Merker auf den Anfangszustand gesetz if (Schleife >=Merker) HWW= 0; //Nach dem kompletten Lichdurchlauf werden alle Merker auf den Anfangszustand gesetz if (Schleife >=Merker) Schleife =0; //Nach dem kompletten Lichdurchlauf werden alle Merker auf den Anfangszustand gesetz }