LabVIEW里随机选择亮灯

有四个灯,随机选择一个灯亮,之后亮几秒,熄灭,再从剩下三个灯选一个亮,再亮几秒,再熄灭,如此循环。。。刚学LabVIEW,求指点啊... 有四个灯,随机选择一个灯亮,之后亮几秒,熄灭,再从剩下三个灯选一个亮,再亮几秒,再熄灭,如此循环。。。刚学LabVIEW,求指点啊 展开
 我来答
Jxdqz
2014-03-20 · TA获得超过268个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:73.9万
展开全部

首先先创建一个数组,表示四个灯

 

再在程序框图中建立一个数组常量,包括 0,1,2,3 四个元素,这个数组对应数组灯的四个索引

 

然后建立一个事件结构,并在添加一个移位寄存器。接着将数组常量接到移位寄存器上

 

然后在前面板给拖放一个停止按钮,用于程序的停止。再在程序框图中的事件结构加上停止按钮值改变框图。并在程序框图里给while停止符赋值T,让程序停止。

 

接下来,在前面板创建一个名为刷新的布尔按钮,用于初始化设置和灯的复位。

      

然后我们如下图,右键刷新,选择其中的刷新值信号用于触发事件结构的值刷新。

  

      

然后在while外面给值刷新赋值,在刷新内,让四个灯都为灭为了不影响程序界面,我们要将前面板的 刷新布尔灯 隐藏起来。

 

 

 

时间间隔后的灯闪烁实现

如下图利用事件结构的超时,来实现时间的间隔,左上角的沙漏表示

间隔时间,500表示500毫秒,也就是说500毫秒会处理一次超时程序框图

里的程序

 

       

取出4个数中的随机数

接下来就是原理是一个数,除以另一个数,余数肯定小于除数,再利用labview中的向下取整,就可以产生一个0到这个 数减1数 中的随机整数。

上图中将随机数发生器乘上10000,为的是产生一个很大的数然后除以数组常量的长度,向下取余,是为的产生数组常量的索引。

点亮四个灯

如下图,利用删除数组元素函数,将产生的数作为索引,索引出数组常量中的一个数,然后再将这个数作为替换数组子集的索引。替换数组子集就是将数组相应位置的值换为T,而为了实现不重复,则要将删除数组元素中的 已删除数组元素  赋给移位寄存器。

 

重复循环,和灭灯

以上都做完了会发现不循环,不循环原因是,一直删除数组元素,但终有删除完的一天,所以要判断是否为空,如果为空,则从重赋值数组。

为了灭灯,就要用到刷新按钮用到的,值改变(信号),为数组创建一个值改变信号,来替换“替换数组子集”后的局部变量,当值改变,则产生信号用于灯的亮灭

然后在事件结构创建‘数组’:值改变 中把原来的值赋给数组就行了。


黄先生
2024-12-26 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采... 点击进入详情页
本回答由黄先生提供
xuanxi2005
2014-03-20 · TA获得超过209个赞
知道小有建树答主
回答量:257
采纳率:50%
帮助的人:140万
展开全部

很简单,你照图做一个!灯再多只要修改下几个位置的参数就行,那个层叠式顺序结构第二帧里面就是延时!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maoer5350008
2014-03-20 · TA获得超过612个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:175万
展开全部

也可以这样编写这个程序,只用到while循环和等待(ms)。

如图所示

编程思路就是每次赋予数组的都是三个F一个T,这是T的位置,循环中稍作处理。图中计时的函数连接的2000就是2000ms,即每个灯亮的时间。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式