交通灯加入中断语句的程序
时间: 2023-10-06 11:06:46 浏览: 37
下面是一个简单的交通灯程序,其中包含了中断语句:
```
void setup() {
pinMode(13, OUTPUT); // 红灯
pinMode(12, OUTPUT); // 黄灯
pinMode(11, OUTPUT); // 绿灯
attachInterrupt(digitalPinToInterrupt(2), buttonPressed, FALLING); // 中断引脚
}
void loop() {
digitalWrite(13, HIGH); // 红灯亮
digitalWrite(12, LOW); // 黄灯灭
digitalWrite(11, LOW); // 绿灯灭
delay(5000); // 等待5秒
digitalWrite(13, LOW); // 红灯灭
digitalWrite(12, HIGH); // 黄灯亮
digitalWrite(11, LOW); // 绿灯灭
delay(2000); // 等待2秒
digitalWrite(13, LOW); // 红灯灭
digitalWrite(12, LOW); // 黄灯灭
digitalWrite(11, HIGH); // 绿灯亮
delay(5000); // 等待5秒
}
void buttonPressed() {
digitalWrite(13, LOW); // 红灯灭
digitalWrite(12, LOW); // 黄灯灭
digitalWrite(11, LOW); // 绿灯灭
delay(1000); // 等待1秒
digitalWrite(13, HIGH); // 红灯亮
delay(2000); // 等待2秒
digitalWrite(13, LOW); // 红灯灭
delay(1000); // 等待1秒
digitalWrite(13, HIGH); // 红灯亮
delay(2000); // 等待2秒
digitalWrite(13, LOW); // 红灯灭
digitalWrite(12, HIGH); // 黄灯亮
delay(1000); // 等待1秒
digitalWrite(12, LOW); // 黄灯灭
digitalWrite(11, HIGH); // 绿灯亮
delay(5000); // 等待5秒
}
```
在这个程序中,我们使用了数字引脚13、12和11分别表示红、黄、绿三种交通灯的状态。我们还使用了数字引脚2作为中断引脚,当该引脚检测到下降沿(FALLING)时,会触发buttonPressed函数。
在buttonPressed函数中,我们将所有交通灯都设置为灭的状态,然后等待1秒钟。接下来,我们将红色交通灯设置为亮的状态,等待2秒钟。然后,我们将红色交通灯再次设置为灭的状态,等待1秒钟。接下来,我们再次将红色交通灯设置为亮的状态,等待2秒钟。最后,我们将黄色交通灯设置为亮的状态,绿色交通灯设置为灭的状态,等待5秒钟。
通过这个程序,我们可以实现一个基本的交通灯系统,并且可以通过中断引脚来触发一个紧急情况,使所有交通灯都变为红色并闪烁。