手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Arduino 互动交通灯

时间:2024-10-22 01:23:03

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 互动交通灯
© 手抄报圈