找回密码
 注册

QQ登录

只需一步,快速开始

搜索

交通灯模拟设计 LabVIEW倒计时红绿灯

[复制链接]
杨大侠 发表于 2021-2-3 21:29:33 | 显示全部楼层 |阅读模式
       交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。在我国交通法律上规定:绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。
设计目的:
       设计这款交通灯模拟系统可以真实直观的反映出十字路口红绿灯亮灭情况,有利于驾驶员学习相关的交通规则,连接上相应的硬件设备还可以作为一款十字路口的交通灯控制系统。
程序特点:
       这款交通灯模拟系统基于labview软件开发,界面全部自己设计,简洁明了。在以往单纯的红绿交替变化功能上添加了倒计时功能和灯光闪烁功能,并且配备有操作板可以人为设置各路口红绿灯的亮灭时间,现实中可以根据实际路况进行有目地的调整,使交通更加通畅。
设计过程:
1.首先我先用簇来创建交通灯,用一个while循环配合使用层叠顺序结构实现最简单的红绿黄灯交替变化,模拟出十字路口通行状态,东西南北方显可以调节,但功能简单。
2.通过实际路口的观察,确认需要添加倒计时模块,之后尝试多种方法来实现,均达不到预期的目标。通过一个小例子想到通过数组的索引来控制簇里各控件来模拟LED灯,之后 又加上一个算法成功实现交通灯倒计时功能。
3.现实十字路口的黄灯是闪烁而不是常亮,为了能更好的模拟需要添加一个能够使黄灯闪烁的模块,这个模块通过一个数除以2得到余数的1或者0来控制灯的亮灭,将循环时间缩短即可实现灯的闪烁。
4.在界面设计的时候画出斑马线,于是需要在斑马线两边安装提示灯,便将闪光模块在此控制绿灯闪烁来提示行人通过。
5.最后设计了一个欢迎界面用来介绍一下程序名称等。在后面板上程序调用上开始时出现了没反应的情况,后来反复尝试通过修改子vi节点设置才成功解决。
欢迎界面:
      本界面自己设计的一个开始界面,文字采用和交通灯相似的红绿黄颜色,介绍了一些相关信息,直接“确认进入”即可进入主程序界面。
欢迎后面板:
后面板采用条件结构来调用子VI。(这步中的子VI通过对子vi节点的设置才可以在运行中调用)  
   这是程序的主体,结合实际的十字路口设计了红绿黄灯的交替亮灭,黄灯的闪烁,路口时间倒计时和控制面板。上图中展现的是南北方向允许通行,此时东西方向禁止通行时间为16s,同时斑马线两侧的绿灯也会每隔一秒的闪烁,提示行人通行。斑马线旁边的倒计时LED灯用来显示红灯还有多久熄灭,给行车人提前的准备时间。当倒计时完毕后首先东西方向红灯变成绿灯,同时斑马线两侧的绿灯停止闪烁,南北方向绿灯变为黄灯闪烁之后变成红灯,倒计时开始。在界面美化方面用的是labview自带的修饰功能自己绘图所以有一些地方不太完善。
后面板1:
       后面板用了一个while循环配合使用层叠顺序结构实现各组红绿灯的间歇亮灭。
下图为南北通行过程,在层叠顺序结构里包含两个for循环结构,上面的for循环实现灯光的闪烁,下面的for循环里用了模拟LED灯的子vi。可以通过调节东西方向的红灯点亮时间来控制南北通行时间。
前面板2:
      这个面板是东西方向刚恢复通行的指示,黄灯会根据设定的时间(初始时为1s)闪烁不同的次数,一次间隔200ms,之后南北方向的黄灯换成红灯禁止此方向车辆通行。
后面板2:
       这是黄灯阶段的后面板,采用了一个闪烁模块通过面板上黄灯的时间来控制闪烁次数。通过for循环里的等待时间来控制闪烁间隔。开始时设置的四组红绿灯是通过簇的方式组合,这样方便直观,但无法对其中的元素进行单独控制,所以换成繁杂的直接用布尔常量直接相连样子,将黄灯放进for循环里进行单独的闪烁控制。
前面板3:
      上图是东西方向允许通行时的指示,此刻南北方向禁止通行时间是5s,倒计时完毕南北方向红灯换为绿灯,东西方向绿灯熄灭黄灯闪烁,之后又回到上面前面板1的情况,反复循环,实现红绿黄交通灯的点亮熄灭来控制十字路口的交通。

VI程序 交通灯仿真.7z (33.17 KB)
设计文档: _倒计时红绿灯.doc (1.1 MB)

3.png 2.png 1.png 4.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-4-20 19:16

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表