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);
}
}
}