const int red = 2; //紅色LED 接 PIN 2
int yellow = 5; //黃色LED 接 PIN 5
int green = 23; //綠色LED 接 PIN 23
unsigned long previousMillis = 0;
long interval = 0;
void setup() {
Serial.begin(115200);
pinMode(red, OUTPUT); //設定 PinMode 皆 OUTPUT, Arduino 輸出電位到 Pins 2, 5, 23
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
// 紅燈亮30秒
digitalWrite(yellow, LOW);
digitalWrite(green, LOW);
digitalWrite(red, HIGH);
delay(30000);
interval = 30000;
// 黃燈亮10秒
currentMillis = millis();
if (currentMillis - previousMillis >= interval){
previousMillis = currentMillis;
digitalWrite(green, LOW);
digitalWrite(red, LOW);
digitalWrite(yellow, HIGH);
delay(10000);
interval = 10000;
}
// 綠燈亮20秒
currentMillis = millis();
if (currentMillis - previousMillis >= interval){
previousMillis = currentMillis;
digitalWrite(yellow, LOW);
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
delay(20000);
previousMillis=0;
}
}