【Arduino】入门篇——交通信号灯
模拟交通信号灯一、实验目的二、实验材料三、电路图四、实验过程五、代码块六、实验结果一、实验目的我想大家都看见过交通灯,就是马路上十字路口的红绿灯。如果您开过车,我想您一定仔细观察过交通灯,如果您还没有驾驶过车,您是否仔细观察过交通灯呢?交通灯包括三种个不同颜色的灯:红灯、黄灯和绿灯。每个路口的红绿灯切换的时间并不是相同,这个是根据不同路口的车流情况来设定的,下面就是模仿交通灯的一个实验二...
一、实验目的
我想大家都看见过交通灯,就是马路上十字路口的红绿灯。如果您开过车,我想您一定仔细观察过交通灯,如果您还没有驾驶过车,您是否仔细观察过交通灯呢?交通灯包括三种个不同颜色的灯:红灯、黄灯和绿灯。
每个路口的红绿灯切换的时间并不是相同,这个是根据不同路口的车流情况来设定的,下面就是模仿交通灯的一个实验
二、实验材料
Arduino UNO
、面包板一个
、USB数据线一根
、五个规格相同的LED小灯泡
、六个阻值相同的电阻
、按键一个
、杜邦线若干
。
三、电路图
四、实验过程
上传编译成功后,可以尝试按下按钮。看看是个什么的效果?我们可以看到整个变化过程是这样的:一开始时 ,汽车灯为绿灯,行人灯为红灯,代表车行人停。一旦行人,也就是你,按下按钮,请求过马路,那么行人灯就开始由红变绿,汽车灯由绿变黄,变红。在行人通行的过程中,设置了一个过马路的时间Cross Time,一旦到点,行人绿灯开始闪烁,提醒行人快速过马路。闪烁完毕,最终,又回到了开始的状态,汽车灯为绿灯,行人灯为红灯。整段代码看起来很复杂,其实理清一下思路并不难。如果你还是没有办法理不清里面变化关系的话,可以试着画一个示意图,这样一来可能会方便你理解程序。
五、代码块
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() {
// put your setup code here, to run once:
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() {
// put your main code here, to run repeatedly:
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(carred,LOW);
digitalWrite(caryellow,HIGH);
delay(1000);
digitalWrite(caryellow,LOW);
digitalWrite(cargreen,HIGH);
changetime=millis();
}
六、实验结果
视频演示:
Arduino——交通信号灯
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)