APP下载

基于STM32 的智能交通灯系统设计

2022-08-09韩旭东韩乐乐林邦演蔡瑞红王淇任邝川明

时代汽车 2022年16期
关键词:子程序数码管交通灯

韩旭东 韩乐乐 林邦演 蔡瑞红 王淇任 邝川明

广州城市理工学院 广东省广州市 510800

科学发展促使着人们生活水平的提高,也使得私家汽车成为习以为常的代步工具,随着人们汽车持有量日益提高,相应的导致交通压力也日益增长,大量的汽车在交通道路上行驶所带来的交通拥堵问题也日益突显,并且由于每时每刻交通路口上各个方向的车数量是实时变化的,很多时候会出现这样一种情况,在十字路口上某个路口车辆会很多而某个路口的车辆又很少,而路口的交通信号灯通行时长都是固定的,不论这个路口车流量多少,都是按照程序运行。这就必然会导致道路通行的效率变低,特别是在上班和下班的时段,如果堵塞严重还会影响城市的交通网络。所以提高路口的通行效率的需求逐渐增长。目前很多专业人士已经对智能交通灯系统的设计进行研究,但是目前绝大部分研究在统计车流量时都是采用红外技术模块来对通过的车辆进行统计的。这样的方法是会有部分误差的,因为测量点与停止线有一段距离,所以这种理论统计的车流量方法不能实时得到真正处于路口等待的车数目。所以设计一款可以实时对等待车辆进行精准计数然后再使用拥有特殊算法及其控制能力的智能交通灯对各个道路的红绿灯等待或者通行的时长进行优化调控,这样的智能交通灯控制系统才是未来所需,我们的研究就是基于这样的想法进行智能交通灯控制系统的设计,这不仅仅是我们的想法也是对于交通管控以及优化城市交通网络势在必行的必然结果。

研究智能交通系统首先需要对智能交通网络进行初步了解,还需要知道红绿灯的运行逻辑。在了解了以上内容之后,首先我们需要从根本上出发,智能交通系统的本质是一种可以缓解交通压力、使十字路口通行效率最大化的智能交通系统。

最早的智能交通系统起源于美国,21世纪初美国即设计出了许多关于ITS的发展方案。许多年的发展之后,美国的智能交通控制率已大于85%,大大领先于世界上其他国家。

欧洲与日本限于领土面积的有限的问题,人口密度大、汽车普及率高、汽车密度大的情况导致其交通压力甚大,因此智能红绿灯系统亦应运而生的较早。目前,欧洲各国已计划通过对不同国之间现有的信息系统和通信设备的继承,融合各个国家的道路交通基础措施,从而实现了欧洲国家的智能交通互联。其他国家的智能交通也在这个时间段逐渐喷涌出来,关于这方面的研究,目前已经得到一些初步的方案,我们的研究也是正式从这些方案中得到的启发的。

1 系统设计

1.1 红外检测装置

通过对红外障碍探测技术对正在等待红灯的汽车数量进行计数,将红外对管安装在道路中央,如图1所示。将红外对管安装在道路中央,其内部如图1所示。红外对管用红外光识别道路上是否有汽车,如果道路上有汽车停留那么红外对管发射的信号反射信号就会被接收,用这种方法可以检测是否有汽车等待红绿灯。图2左方是单行的车道,图中的球代表安装红外对管的地方,在各个车道上安装红外对管,同时相邻红外对管之间保持一个车位,以确保车辆被红外对管准确识别到。

图1 红外对管安装在道路中央示意图

1.2 模块的工作流程

通过检测四个路口实时车辆,把检测到的各个路口车辆等待数计入单片机进行算法分析,然后对于各个路口的车辆数进行红绿灯的时间分配。车辆数量较多的路口所需分配的通行时间更长,但是这个更多的时间也需要控制,不能无限制的给予车辆等待数最多的路口通行太久。所以需要特定的算法以及对人们进行实际的调研进行合理的时间分配。

1.3 单片机应用系统

采用单片机为系统的应用装置,以单片机为控制系统对智能红绿灯系统进行分析控制。采用STM32的高性能芯片进行检测控制,使得智能交通灯系统运行的更为流畅。

如图2所示,采取Proteus软件进行单片机的硬件电路设计,电源回路部分,首先让单片机vcc引脚连接电源,vss接地,运用单片机时钟电路会发出脉冲信号对系统内部计时进行校准,其中单片机内部时钟电路由管脚 XTAL2 以及管脚 XTAL1引出,然后与外围电路链接,芯片选取晶振频率为12 MHz。从头开始编辑设计电路系统需要先完成抚慰电路系统设计。复位电路的设计:复位电路由9管脚引出与电容、电源、按钮和电阻构成,可实现上电复位和手动复位。

图2 单片机的硬件电路

1.4 智能交通灯控制系统

智能交通灯控制系统主要由道路各个方向的红绿灯以及各个红绿灯的电源组成,由此来模拟十字路口的信号灯,以图3所示,D6东西向绿灯,D5东西向黄灯引脚标签,D4代表东西向绿灯引脚标签,同理其他方位的标签代表着各个方向的红绿灯,这两组标签对应单片机PB口的6个引脚,可以通过改变PB的对LED灯进行实时控制。

图3 智能交通灯模拟示意图

1.5 时间显示模块

现实里真实的道路系统需要有倒计时显示才能让驾驶员知道自己需要等待的时长,所以设计一个倒计时显示电路用来显示所需等待的时长,用数字显示芯片74HC595连接电阻及其数码管作为等待时长显示屏,数码管的段控端连接总线,数码管A-G引脚分别对应单片机上的PA0-PA7引脚和排阻构成的电路使单片机实现对数码管的段控。数码管的位选端通过芯片74HC595的引脚与单片机的 PB口连接,使单片机实现对数码管的位控。

1.6 红绿灯系统检测

红绿灯系统检测方法:首先让东西方向的红绿灯绿灯一定时间,南北方向红绿灯红灯一定时间。测试结果以东西方向为标准,进行多次测试然后每一次都以上一次测试结果为基础。第一次测试,东西方向通过20辆车,东西通行变为30秒,南北红灯35秒;第二次测试再改变数据改变成东西向通过25辆车,东西通行36秒,南北等待40秒;再进行新的测试,东西向道路只放置个位数的汽车等待,东西通行25秒,南北等待30秒;第四次测试,东西向通过10辆车,东西通行20秒,南北等待25秒。以此进行的测试结果可以一定程度的对红绿灯系统进行检测,可以判断系统是否可根据车流量智能调节交通灯各个方向道路的红绿灯时长。

1.7 硬件电路总体设计

硬件电路总体设计由四部分构成:控制芯片、模拟交通灯、按键和显示屏组成。总体系统由STM32单片机对模拟的交通灯进行控制模拟,各个方向的等待时间显示在各个方向的显示屏上。目的是方便实际实验和调试。具体硬件设计如下所示。

2 软件系统设计

2.1 主程序流程图

首先对各个元器件和系统进行初始化,主程序运行流程如图四控制东西的LED灯使其变绿,南北的LED灯变红,进入图五计时器子程序,并且给P0和P2输入十位与个位的数字型码,接下来进行按键扫描,对需要的按键进行配置,按键消抖等一系列对按键初始化的过程,有按键按下这里没有给确切的按键,以便于后期的设置与改动,假设这里所触发的按键为KEY0,按键初始化状态时为低电平,按一次按键状态转为高电平,所以当KEY0=1时进入YES判断环节,环节调用键盘(按键)子程序如图六,KEY0=0时进入NO判断环节,再次控制东西的LED灯使其变绿,南北的LED灯变红,同时让黄灯闪烁(这里的黄灯闪烁可以看做即将跳入红灯时的黄灯闪烁,也不完全是同时闪烁),显示子程序和前面提到的一样,是将数字型码输入到对应的共阳极的2位数码管上以实现精确的计时,再次跳入键盘扫描,紧接着跳入条件判断,这时没有else语句,

只是满足KEY0=1时,直接调用键盘子程序(按键子程序),接着就是顺序执行,控制东西的LED灯变红,南北的LED灯变绿,末尾加上return,放回主函数初始位置,及完成了本次程序的运行。如果要进行计时器中断,则进行中断子程序流程如图7。

图4 主程序框图

图5 计时器子程序流程图

图7 计时器中断子程序流程图

3 结语

图6 按键子程序流程图

智能交通灯的作用简言之就是将各个不同领域的知识结合起来从而加强车辆与道路的关系,使三者之间联系,运用信息技术、电子技术、传感器技术、系统工程技术等公路运输系统从而建立起快捷方便安全、准确、高效的城市交通系统,这就是智能交通灯所研究的最终目的。

猜你喜欢

子程序数码管交通灯
物理项目教学设计,用单片机控制四位数码管显示
蓝桥杯树莓派模拟题解析三:“电子测距仪”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
矿工灯
为什么交通灯是红黄蓝三种颜色?
应用子程序车削梯形螺纹方法
在数控车床上加工软轴零件
数控车床加工螺纹编程方法探讨
荷兰小城为“低头族”设置专属路面交通灯