基于单片机的十字路口红绿灯智能控制代码
时间: 2023-12-27 09:03:52 浏览: 93
以下是基于Arduino单片机的十字路口红绿灯智能控制代码,可以根据实际情况进行修改:
```
const int red1 = 8; //第一个红灯引脚
const int yellow1 = 9; //第一个黄灯引脚
const int green1 = 10; //第一个绿灯引脚
const int red2 = 11; //第二个红灯引脚
const int yellow2 = 12; //第二个黄灯引脚
const int green2 = 13; //第二个绿灯引脚
const int button = 2; //按钮引脚
const int buzzer = 3; //蜂鸣器引脚
void setup()
{
pinMode(red1, OUTPUT);
pinMode(yellow1, OUTPUT);
pinMode(green1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(yellow2, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(button, INPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{
int buttonState = digitalRead(button); //读取按钮状态
if (buttonState == HIGH) //如果按钮被按下
{
digitalWrite(buzzer, HIGH); //蜂鸣器响起
delay(2000); //延迟2秒钟
digitalWrite(buzzer, LOW); //蜂鸣器停止响
digitalWrite(green1, HIGH); //第一个绿灯亮
digitalWrite(red2, HIGH); //第二个红灯亮
delay(5000); //延迟5秒钟
digitalWrite(yellow1, HIGH); //第一个黄灯亮
delay(2000); //延迟2秒钟
digitalWrite(green1, LOW); //第一个绿灯灭
digitalWrite(yellow1, LOW); //第一个黄灯灭
digitalWrite(red1, HIGH); //第一个红灯亮
digitalWrite(yellow2, HIGH); //第二个黄灯亮
delay(2000); //延迟2秒钟
digitalWrite(red2, LOW); //第二个红灯灭
digitalWrite(yellow2, LOW); //第二个黄灯灭
digitalWrite(green2, HIGH); //第二个绿灯亮
delay(5000); //延迟5秒钟
digitalWrite(yellow2, HIGH); //第二个黄灯亮
delay(2000); //延迟2秒钟
digitalWrite(green2, LOW); //第二个绿灯灭
digitalWrite(yellow2, LOW); //第二个黄灯灭
digitalWrite(red2, HIGH); //第二个红灯亮
digitalWrite(yellow1, HIGH); //第一个黄灯亮
delay(2000); //延迟2秒钟
digitalWrite(red1, LOW); //第一个红灯灭
digitalWrite(yellow1, LOW); //第一个黄灯灭
}
}
```
注:以上代码仅供参考,具体应根据实际情况进行修改和完善。同时,为了保障交通安全,请在实际应用中慎重考虑。
阅读全文