// 程序设计如下:
// 包含Arduino的头文件#include <
Arduino.h>
// 定义交通灯的引脚(假设使用数字引脚)const int redNorthPin = 2;
const int yellowNorthPin = 3;
const int greenNorthPin = 4;
const int redSouthPin = 5;
const int yellowSouthPin = 6;
const int greenSouthPin = 7;
// 定义按钮的引脚const int buttonPin = 8;
// 定义倒计时时间int countdown = 10;
// 默认10秒
void setup() {// 初始化交通灯引脚为输出pinMode(redNorthPin, OUTPUT);
pinMode(yellowNorthPin, OUTPUT);
pinMode(greenNorthPin, OUTPUT);
pinMode(redSouthPin, OUTPUT);
pinMode(yellowSouthPin, OUTPUT);
pinMode(greenSouthPin, OUTPUT);
// 初始化按钮引脚为输入pinMode(buttonPin, INPUT);
}
void loop() {// 检测按钮是否按下if(digitalRead(buttonPin) == HIGH) {// 紧急红灯全亮allRed();
} else {// 切换交通灯switchLights();
}}
void switchLights() {// 显示南北两个方向的交通灯状态// 显示南方状态digitalWrite(greenNorthPin, HIGH);
delay(10000);
// 绿灯亮10秒
// 倒计时,黄灯开始闪烁for(int i = 0;
i <
3;
i++) {digitalWrite(yellowNorthPin, HIGH);
delay(500);
digitalWrite(yellowNorthPin, LOW);
delay(500);
}
// 显示北方状态digitalWrite(greenNorthPin, LOW);
digitalWrite(yellowNorthPin, LOW);
digitalWrite(redNorthPin, HIGH);
digitalWrite(greenSouthPin, HIGH);
delay(10000);
// 绿灯亮10秒
// 倒计时,黄灯开始闪烁for(int i = 0;
i <
3;
i++) {digitalWrite(yellowSouthPin, HIGH);
delay(500);
digitalWrite(yellowSouthPin, LOW);
delay(500);
}
// 显示南方状态digitalWrite(greenSouthPin, LOW);
digitalWrite(yellowSouthPin, LOW);
digitalWrite(redSouthPin, HIGH);
}
void allRed() {// 全部红灯亮digitalWrite(redNorthPin, HIGH);
digitalWrite(yellowNorthPin, LOW);
digitalWrite(greenNorthPin, LOW);
digitalWrite(redSouthPin, HIGH);
digitalWrite(yellowSouthPin, LOW);
digitalWrite(greenSouthPin, LOW);
}
有问题你别着急,评论留言都可以,看到马上就回复,尽量及时补充齐