Labview倒计时红绿灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟仪器课程设计——交通灯模拟
班级:机0704
姓名:李正栋
学号:20070822
交通灯模拟设计说明书
交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。在我国交通法律上规定:绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。
设计目的:
设计这款交通灯模拟系统可以真实直观的反映出十字路口红绿灯亮灭情况,有利于驾驶员学习相关的交通规则,连接上相应的硬件设备还可以作为一款十字路口的交通灯控制系统。
程序特点:
这款交通灯模拟系统基于labview软件开发,界面全部自己设计,简洁明了。在以往单纯的红绿交替变化功能上添加了倒计时功能和灯光闪烁功能,并且配备有操作板可以人为设置各路口红绿灯的亮灭时间,现实中可以根据实际路况进行有目地的调整,使交通更加通畅。
设计过程:
1.首先我先用簇来创建交通灯,用一个while循环配合使用层叠顺序结构实现最简单的红绿黄灯交替变化,模拟出十字路口通行状态,东西南北方显可以调节,但功能简单。
2.通过实际路口的观察,确认需要添加倒计时模块,之后尝试多种方法来实现,均达不到预期的目标。通过一个小例子想到通过数组的索引来控制簇里各控件来模拟LED灯,之后又加上一个算法成功实现交通灯倒计时功能。
3.现实十字路口的黄灯是闪烁而不是常亮,为了能更好的模拟需要添加一个能够使黄灯闪烁的模块,这个模块通过一个数除以2得到余数的1或者0来控制灯的亮灭,将循环时间缩短即可实现灯的闪烁。
4.在界面设计的时候画出斑马线,于是需要在斑马线两边安装提示
灯,便将闪光模块在此控制绿灯闪烁来提示行人通过。
5.最后设计了一个欢迎界面用来介绍一下程序名称等。在后面板上程序调用上开始时出现了没反应的情况,后来反复尝试通过修改子vi节点设置才成功解决。
欢迎界面:
本界面自己设计的一个开始界面,文字采用和交通灯相似的红绿黄颜色,介绍了一些相关信息,直接“确认进入”即可进入主程序界面。
欢迎后面板:
后面板采用条件结构来调用子VI。(这步中的子VI通过对子vi节点的设置才可以在运行中调用)
交通灯模拟界面(前面板1):
这是程序的主体,结合实际的十字路口设计了红绿黄灯的交替亮灭,黄灯的闪烁,路口时间倒计时和控制面板。上图中展现的是南北方向允许
通行,此时东西方向禁止通行时间为16s,同时斑马线两侧的绿灯也会每隔一秒的闪烁,提示行人通行。斑马线旁边的倒计时LED灯用来显示红灯还有多久熄灭,给行车人提前的准备时间。当倒计时完毕后首先东西方向红灯变成绿灯,同时斑马线两侧的绿灯停止闪烁,南北方向绿灯变为黄灯闪烁之后变成红灯,倒计时开始。在界面美化方面用的是labview自带的修饰功能自己绘图所以有一些地方不太完善。
后面板1:
后面板用了一个while循环配合使用层叠顺序结构实现各组红绿灯的间歇亮灭。
下图为南北通行过程,在层叠顺序结构里包含两个for循环结构,上面的for循环实现灯光的闪烁,下面的for循环里用了模拟LED灯的子vi。可以通过调节东西方向的红灯点亮时间来控制南北通行时间。
前面板2:
这个面板是东西方向刚恢复通行的指示,黄灯会根据设定的时间(初始时为1s)闪烁不同的次数,一次间隔200ms,之后南北方向的黄灯换成红灯禁止此方向车辆通行。
后面板2:
这是黄灯阶段的后面板,采用了一个闪烁模块通过面板上黄灯的时间来控制闪烁次数。通过for循环里的等待时间来控制闪烁间隔。开始时设置的四组红绿灯是通过簇的方式组合,这样方便直观,但无法对其中的元素进行单独控制,所以换成繁杂的直接用布尔常量直接相连样子,将黄灯放进for循环里进行单独的闪烁控制。
前面板3:
上图是东西方向允许通行时的指示,此刻南北方向禁止通行时间是5s,倒计时完毕南北方向红灯换为绿灯,东西方向绿灯熄灭黄灯闪烁,之后又回到上面前面板1的情况,反复循环,实现红绿黄交通灯的点亮熄灭来控制十字路口的交通。
模拟LED灯子VI:
LED灯后面板:
该子vi的应用数组常量索引的方式得到相应数组,再将数组转换成簇用来控制簇里指示灯的亮灭来显示不同的数码。这里每个簇里的指示灯都需要按一定的顺序组合,然后按照数组常量里的布尔常量位置通过不同的索引值来确定不同灯的亮灭显示不同数字。只需要在数值控件中输入一个0--99的数字通过除以10来确定出个位十位后分别在两个簇里显示出来。
上图是一个完整的倒计时模块,通过将模拟LED灯放入一个for循环来构成。等待1000ms确定了时间以一秒的间隔递减。
闪烁部分后面板:
该部分主要应用了用0和1来控制灯的亮灭,加入for循环并且控制循环时间即可实现灯的闪烁。首相用0除以2得到余数0通过和0比较产生“真”来控制等亮,之后加1除以2的余数1比较后产生“假”控制灯熄灭一直这样循环即可使灯闪烁。
设计心得:
通过本次自己亲自设计并独立完成交通灯模拟系统,我学到了很多。
1.做一件事情的时候要对它进行了解,我在设计期间仔细观察了石家庄十字路口红绿黄灯的交替变化,发现其中规律,才能根据实际情况进行模拟,在斑马线两侧绿灯设计上是自己的小改动。
2.加强了自己发现问题解决问题的能力,开始的时候认为比较简单,但真正开始后在各部分设计上才发现很多预期之外的问题,通过上网查阅资料,经过不断尝试后才得以解决。
3.锻炼了自己的优良品质,以后在最事情上要有耐心,有细心,遇到困难后不灰心,这样才可以真正实现自我。