Guten Tag,
ich habe ein Programm für eine Weihnachtslichterkette geschrieben und wollte fragen wie ihr ihn findet bzw. Verbessungsvorschläge für mich habt (bitte mit Erklärung ). Kann man im Programm1 bis Programm3 irgendwie die Anweisung verkürzen?
Programm 1: Die LEDs leuchten abwechseln hintereinander jeweils für 1 Sekunde.
Programm 2: Die LEDs einer Farbe leuchten zusammen jeweils für 2 Sekunden. Dabei wechseln sich die Farben hintereinander ab.
Programm 3: Die gelben LEDs leuchten die ganze Zeit über. Die roten (alle) und die blauen (alle) LEDs leuchten jeweils abwechselnd für 1 Sekunde.
Hier der Code:
#define LEDrot 1
#define LEDgelb 2
#define LEDblau 3
#define LEDrot2 4
#define LEDgelb2 5
#define LEDblau2 6
#define LEDrot3 7
#define LEDgelb3 8
#define LEDblau3 9
const int Taster = 11;
const int Taster2 = 12;
const int Taster3 = 13;
int Zeahler = 1;
void setup()
{
pinMode(LEDrot, OUTPUT);
pinMode(LEDrot2, OUTPUT);
pinMode(LEDrot3, OUTPUT);
pinMode(LEDgelb, OUTPUT);
pinMode(LEDgelb2, OUTPUT);
pinMode(LEDgelb3, OUTPUT);
pinMode(LEDblau, OUTPUT);
pinMode(LEDblau2, OUTPUT);
pinMode(LEDblau3, OUTPUT);
pinMode(Taster, INPUT_PULLUP);
pinMode(Taster2, INPUT_PULLUP);
pinMode(Taster3, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(Taster)==LOW)
{
Zeahler = 1;
}
if (digitalRead(Taster2)==LOW)
{
Zeahler = 2;
}
if (digitalRead(Taster3)==LOW)
{
Zeahler = 3;
}
if (Zeahler == 1)
{
Programm1();
}
if (Zeahler == 2)
{
Programm2();
}
if (Zeahler == 3)
{
Programm3();
}
}
void Programm1()
{
digitalWrite(LEDrot, HIGH);
delay(1000);
digitalWrite(LEDrot, LOW);
digitalWrite(LEDgelb, HIGH);
delay(1000);
digitalWrite(LEDgelb, LOW);
digitalWrite(LEDblau, HIGH);
delay(1000);
digitalWrite(LEDblau, LOW);
digitalWrite(LEDrot2, HIGH);
delay(1000);
digitalWrite(LEDrot2, LOW);
digitalWrite(LEDgelb2, HIGH);
delay(1000);
digitalWrite(LEDgelb2, LOW);
digitalWrite(LEDblau2, HIGH);
delay(1000);
digitalWrite(LEDblau2, LOW);
digitalWrite(LEDrot3, HIGH);
delay(1000);
digitalWrite(LEDrot3, LOW);
digitalWrite(LEDgelb3, HIGH);
delay(1000);
digitalWrite(LEDgelb3, LOW);
digitalWrite(LEDblau3, HIGH);
delay(1000);
digitalWrite(LEDblau3, LOW);
}
void Programm2()
{
digitalWrite(LEDrot, HIGH);
digitalWrite(LEDrot2, HIGH);
digitalWrite(LEDrot3, HIGH);
delay(2000);
digitalWrite(LEDrot, LOW);
digitalWrite(LEDrot2, LOW);
digitalWrite(LEDrot3, LOW);
digitalWrite(LEDgelb, LOW);
digitalWrite(LEDgelb2, LOW);
digitalWrite(LEDgelb3, LOW);
delay(2000);
digitalWrite(LEDgelb, HIGH);
digitalWrite(LEDgelb2, HIGH);
digitalWrite(LEDgelb3, HIGH);
digitalWrite(LEDblau, LOW);
digitalWrite(LEDblau2, LOW);
digitalWrite(LEDblau3, LOW);
delay(2000);
digitalWrite(LEDblau, HIGH);
digitalWrite(LEDblau2, HIGH);
digitalWrite(LEDblau3, HIGH);
}
void Programm3()
{
digitalWrite(LEDgelb, HIGH);
digitalWrite(LEDgelb2, HIGH);
digitalWrite(LEDgelb3, HIGH);
digitalWrite(LEDrot, HIGH);
delay(1000);
digitalWrite(LEDrot, LOW);
digitalWrite(LEDrot2, HIGH);
delay(1000);
digitalWrite(LEDrot2, LOW);
digitalWrite(LEDrot3, HIGH);
delay(1000);
digitalWrite(LEDrot3, LOW);
digitalWrite(LEDblau, HIGH);
delay(1000);
digitalWrite(LEDblau, LOW);
digitalWrite(LEDblau2, HIGH);
delay(1000);
digitalWrite(LEDblau2, LOW);
digitalWrite(LEDblau3, HIGH);
delay(1000);
digitalWrite(LEDblau3, LOW);
}
Später möchte ich statt drei Taster nur noch einen Taster verwenden, wenn dies möglich ist kann mir jemand da helfen?