点亮交通灯

2023-01-07 浏览次数:237

*二个项目,我们来做一个交通灯。在**个项目中,我们点亮了板载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); }
kewei9888.b2b168.com/m/
top