Arduino 互动交通灯

2025-11-04 09:18:49

1、准备实验需要用到的硬件,如图所示:

Arduino 互动交通灯

2、如下图所示进行硬件的连接,此步我们先不连接发光二极管,只需将Arduino UNO控制器连接到电脑

Arduino 互动交通灯

3、将下列程序复制到Arduino IDE中,如下图所示:

int carRed = 12; 

int carYellow = 11;

int carGreen = 10;

int pedRed = 9; 

int pedGreen = 8;

int button = 2; 

int crossTime = 5000; 

unsigned long changeTime; 

void setup() {

pinMode(carRed, OUTPUT);

pinMode(carYellow, OUTPUT);

pinMode(carGreen, OUTPUT);

pinMode(pedRed, OUTPUT);

pinMode(pedGreen, OUTPUT);

pinMode(button, INPUT);

digitalWrite(carGreen, HIGH);

digitalWrite(pedRed, HIGH);

}

void loop() {

int state = digitalRead(button);

if (state == HIGH && (millis() - changeTime) > 5000) {

changeLights();

}

}

void changeLights() {

digitalWrite(carGreen, LOW); 

digitalWrite(carYellow, HIGH); 

delay(2000);

digitalWrite(carYellow, LOW); 

digitalWrite(carRed, HIGH); 

delay(1000); 

digitalWrite(pedRed, LOW); 

digitalWrite(pedGreen, HIGH); 

delay(crossTime); 

for (int x=0; x<10; x++) {

digitalWrite(pedGreen, HIGH);

delay(250);

digitalWrite(pedGreen, LOW);

delay(250);

}

digitalWrite(pedRed, HIGH);

delay(500);

digitalWrite(carYellow, HIGH);

digitalWrite(carRed, LOW); 

delay(1000);

digitalWrite(carGreen, HIGH);

digitalWrite(carYellow, LOW); 

changeTime = millis();

}

Arduino 互动交通灯

4、如图所示,选择正确的板卡型号和端口,将程序上传到控制器中。

Arduino 互动交通灯

Arduino 互动交通灯

5、如图所示,程序上传无误的情况下 Arduino IDE 软件会显示如下结果,在上传过程中,Arduino 控制器板载的 TX RX 灯会频闪

Arduino 互动交通灯

6、按照下图中的电路,进行实验硬件的连接

Arduino 互动交通灯

7、实验效果如图所示,当按钮被按下时,Arduino将会做出反应,它改变交通灯的状态,让车停止,允许行人通过

Arduino 互动交通灯

Arduino 互动交通灯

8、代码回顾:

unsigned long changetime;

这是一个新的变量数据类型为 long 的数,可以存储一个从 -2 147 483 648 到

2 147 483 647之间的数。指定unsigned long 数据类型,它不存在负数,所以它的存储范围是从 0 到 4 294 967 295。使用这个变量存储信号灯状态变化的间隔,最大能存储的时间间隔为32秒,是整型变量能存储数据的上限。

if (state == HIGH && (millis() - changeTime) > 5000) 

本句含义是当按键被按下,并且距离最后一次按下的时间间隔大于5秒,则再次调用 changeLights()。

代码位置如下图所示:

Arduino 互动交通灯

9、为了方便大家实验,防止在复制代码的时候出现错误,特将代码和电路图

Fritzing源文件上传至网盘供大家下载学习。下载地址:

http://pan.baidu.com/s/1mhBmIgw,打开链接后,如图所示,点击下载即可

Arduino 互动交通灯

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢