概述
第二个项目,我们来做一个交通灯。在第一个项目中,我们点亮了板载LED灯,可能很多盆友还是不过瘾,我们既没有动手设计电路图,连接元器件,也没有敲代码,这样就OK了,是不是感觉成功的喜悦来得有点太突然了?
没关系,第二个项目能够满足您以上的所有需求,呵呵!不过啊,咱们学习还得一步一步来,千万不要小看控制一盏LED灯,其实,您能够控制一盏LED灯,您就能控制一部马达(加一个继电器),既然能够控制一部马达了,您就能创作出很多东西。所以,最关键的是我们的想象力和我们运用知识的能力。说得有点多了,我们开始今天的项目吧!1 项目背景
我想大家都看见过交通灯,就是马路上十字路口的红绿灯。如果您开过车,我想您一定仔细观察过交通灯,如果您还没有驾驶过车,您是否仔细观察过交通灯呢?交通灯包括三种个不同颜色的灯:红灯、黄灯和绿灯。
每个路口的红绿灯切换的时间并不是相同,这个是根据不同路口的车流情况来设定的,我们假设红绿灯切换的时长是30秒,那么三盏灯的闪动情况是这样的:红灯常亮30秒,红灯熄灭,绿灯常亮27秒,然后按照1秒1次的频率闪动3次(时长为3秒),绿灯熄灭,黄灯按照1秒一次的频率闪动3次(时长为3秒),黄灯熄灭,如此重复2 元器件
1块主控板arduino Uno1,3个LED灯(红黄绿各一个),3个电阻220欧姆,1块面包板,7条杜邦线,1条Uno数据线。
3 电路图
根据交通灯的项目需求,我们需要按照上面的时序表控制三个不同颜色的LED灯的开关,我们分别将LED灯的正极(较长一些的引脚,后面我们还会详细介绍一下LED灯)接入Uno的2、7、12引脚(当然您也可以接入其它数字引脚),LED灯的负极引脚串联一个220欧姆的限流电阻后接地(Uno上的GND引脚),由于Uno上面GND引脚有限,同时也是为了简化接线,我们使用了面包板上的电源轨来同时接入三个LED灯的负极。
4 程序代码
//setup函数在重新上电或按了复位后只运行一次
void setup() {
// 初始化2、7、12引脚,并将其定义为输出引脚。
pinMode(2, OUTPUT); //绿灯
pinMode(7, OUTPUT); //黄灯
pinMode(12, OUTPUT); //红灯
}
// loop函数永远地循环重复执行
void loop() {
digitalWrite(12, HIGH); //将红灯点亮(HIGH代表高电压)
delay(30000); //保持30秒
digitalWrite(12, LOW); //将红灯熄灭(LOW代表低压)
digitalWrite(2, HIGH); //将绿灯点亮
delay(27000); //保持27秒钟
digitalWrite(2, LOW); //将绿灯熄灭并开始闪烁,频率为1秒
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
delay(500);
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW); //绿灯熄灭,闪烁结束
digitalWrite(7, HIGH); //黄灯点亮,并开始闪烁,频率为1秒
delay(500);
digitalWrite(7, LOW);
delay(500);
digitalWrite(7, HIGH);
delay(500);
digitalWrite(7, LOW);
delay(500);
digitalWrite(7, HIGH);
delay(500);
digitalWrite(7, LOW); //黄灯熄灭,闪烁结束,开始下一个循环
delay(500);
}
好了,大家试试效果把,看看你的小小交通灯是不是按照你的设计点亮了呢?
最后
以上就是狂野玫瑰为你收集整理的单片机交通灯的电路图以及代码_点亮交通灯的全部内容,希望文章能够帮你解决单片机交通灯的电路图以及代码_点亮交通灯所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复