Experimente mit dem Arduino und LEDs machen immer Spaß und deshalb gibt es hier den Code für eine Verkehrsampel…


Programmierung:

#define westButton 3
#define eastButton 13
#define westRed 2
#define westYellow 1
#define westGreen 0
#define eastRed 12
#define eastYellow 11
#define eastGreen 10
#define yellowBlinkTime 500

boolean trafficWest = true;
int flowTime = 10000;
int changeDelay = 2000;

void setup()
{
pinMode(westButton, INPUT);
pinMode(eastButton, INPUT);
pinMode(westRed, OUTPUT);
pinMode(westYellow, OUTPUT);
pinMode(westGreen, OUTPUT);
pinMode(eastRed, OUTPUT);
pinMode(eastYellow, OUTPUT);
pinMode(eastGreen, OUTPUT);
}

void loop()
{
if (digitalRead(westButton) == HIGH)
{
if (trafficWest != true)
{
trafficWest = true;
delay(flowTime);
digitalWrite(eastGreen, LOW);

digitalWrite(eastYellow, HIGH);
delay(changeDelay);
digitalWrite(eastYellow, LOW);
digitalWrite(eastRed, HIGH);
delay(changeDelay);
for (int a = 0; a < 5; a++)
{
digitalWrite(westYellow, LOW);
delay(yellowBlinkTime);
digitalWrite(westYellow, HIGH);
delay(yellowBlinkTime);
}

digitalWrite(westYellow, LOW);
digitalWrite(westRed, LOW);
digitalWrite(westGreen, HIGH);
}
}

if (digitalRead(eastButton) == HIGH)
{
if (trafficWest == true)
{
trafficWest = false;
delay(flowTime);
digitalWrite(westGreen), LOW);
digitalWrite(west Yellow, HIGH);
delay(changeDelay);
digitalWrite(westYellow, LOW);
digitalWrite(westRed, HIGH);
delay(changeDelay);
for (int a = 0; a < 5; a++)
{
digitalWrite(eastYellow, LOW);
delay(yellowBlinkTime);
digitalWrite(eastYellow, HIGH);
delay(yellowBlinkTime);
}

digitalWrite(eastYellow, LOW);
digitalWrite(eastRed, LOW);
digitalWrite(eastGreen, HIGH);
}
}
}

Von Torsten