复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66//项目三 -- 互动交通信号灯 int carRed = 12; //设置汽车灯 int carYellow = 11; int carGreen = 10; int button = 9; //按钮引脚 int pedRed = 8; //设置行人灯 int pedGreen = 7; int crossTime =5000;//允许行人通过的时间 unsigned long changeTime;//按钮按下后的时间 void setup() { //所有LED设置为输出模式 pinMode(carRed, OUTPUT); pinMode(carYellow, OUTPUT); pinMode(carGreen, OUTPUT); pinMode(pedRed, OUTPUT); pinMode(pedGreen, OUTPUT); pinMode(button, INPUT); //按钮设置为输入模式 digitalWrite(carGreen, HIGH); //车行 digitalWrite(pedRed, LOW); //人停 } void loop() { int state = digitalRead(button); //检测按钮是否被按下,并且是否距上次按下后有5秒的等待时间 if(state == HIGH && (millis() - changeTime)> 5000){ //调用变灯函数 changeLights(); } } void changeLights() { digitalWrite(carGreen, LOW); //汽车绿灯灭 digitalWrite(carYellow, HIGH); //汽车黄灯亮 delay(2000); //等待2秒 digitalWrite(carYellow, LOW); //汽车黄灯灭 digitalWrite(carRed, HIGH); //汽车红灯亮 delay(1000); //为安全考虑等待1秒 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(carRed, LOW); //汽车红灯灭 digitalWrite(carYellow, HIGH); //汽车黄灯亮 delay(1000); digitalWrite(carYellow, LOW); //汽车黄灯灭 digitalWrite(carGreen, HIGH); //汽车绿灯亮 changeTime = millis(); //记录自上一次灯变化的时间 //返回到主函数循环中 }
最后
以上就是义气小懒虫最近收集整理的关于红绿灯的全部内容,更多相关红绿灯内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复