找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 6531|回复: 11

各位大师,我想请教关于NXT电机延时的问题

[复制链接]
发表于 2011-2-16 18:50:10 | 显示全部楼层 |阅读模式
我用labview 编程,现在想实现:                               1,按下(一直按)开关电机延时3秒启动
                               2,松开开关电机立即停止

我用case结构在启动情况下加入了延时3秒

我用labview 编程后总是按下延时3秒启动,松手延时3秒停止,这是为什么?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2011-2-18 08:56:57 | 显示全部楼层
sayidgong 发表于 2011-2-17 21:17
回复 grant7788 的帖子

这个问题是要延迟的话 就要加入时间的vi

我电脑上没装LabVIEW,没办法试。如果松开按钮即刻停止,那么不要用timer vi,直接用一个while loop去检测是否松开就是了。
按下按钮后3秒启动,如果这3秒中按钮松开就不要启动的话,也不能用timer,而应该用while loop,当进入这个loop前读一次时间,在loop中一直读时间并读取按钮状态,当时间到3秒或按钮松开任何一件事情发生时loop停止,停止时判断是哪件事情发生了。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-17 21:17:14 | 显示全部楼层
回复 grant7788 的帖子

这个问题是要延迟的话 就要加入时间的vi
上面的图能看见吧?
这个东西加入到loop里面就会延迟3秒,放到case结构里面时候,假如是在真分支里面,当运行假分支(假分支里面没有这个延迟)的时候,它同样延迟。不知道怎么解决。
放到现实中就是 按下按钮(真分支) 过3秒启动电机,松开按钮(假分支),过3秒停止电机。
但是想要松开按钮,立即停止电机。请问如何做到?
11.jpg
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2011-2-17 18:30:28 | 显示全部楼层
回复 Zippo 的帖子

不好意思,回复晚了,因为家里的电脑labview 没有lego的模块,只有今天到公司才能打开。

图片我截图了,

case: true

case: true

case:false

case:false

我今天又测试了一下,我发现当我松开的时候,电机停止的时间很不稳定,最长时间是3秒,有的时候1秒也就停了,这是不是我的电机本身的问题呢?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 21:23:45 | 显示全部楼层
本帖最后由 grant7788 于 2011-2-16 21:25 编辑

我回复的帖子怎么不见了?再来一遍:

case相当于if,
只要键按下,case的条件就成立,就进入了true的分支,
这时后面的代码自动执行,和按键的状态没关系了。
所以,要么用我说的,改用while loop,要么在3秒delay之后,再判断一次按键。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 21:21:33 | 显示全部楼层
本帖最后由 grant7788 于 2011-2-16 21:22 编辑

case相当于if,
只要按键按下,立刻进入了true的分支。
你在这里加了delay,
那么不管是否放开,都会走完delay并继续下面的动作。
如果不用while loop,那么直接改成在delay3秒后,再做一次判断。
我还是觉得用while loop比较方便一些。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 21:08:31 | 显示全部楼层
你目前的问题,估计是一按下键,立刻发了按下键的消息,那么再延时三秒,不论这三秒中是否松开了按键,马达都会转。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 21:07:46 | 显示全部楼层
估计不能用标准的按下、松开按钮的vi。
用while循环一直检测状态,并读取时间、减去进入循环前的时间。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 21:05:55 | 显示全部楼层
先做一个while循环,判断按键是否抬起,
抬起后立刻停止。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 20:14:14 | 显示全部楼层
我也没明白你在说什么...请贴个图上来看看
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 20:09:07 | 显示全部楼层
回复 Zippo 的帖子

我不懂labview ,但case都是比较常用的结构体,想问一下,每个case后面有没有加break命令。有和没不一样,有可能就像你预想的那样,没就有可能累积执行。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2011-2-16 20:07:46 | 显示全部楼层
不知道你说什么
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-22 17:40 , Processed in 0.629960 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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