【问题标题】:LabVIEW case structure and PWMLabVIEW案例结构和PWM
【发布时间】:2016-03-30 18:24:52
【问题描述】:

我在使用 LabVIEW 时遇到了问题;我正在研究这个简单的程序,它是一个更大的学校项目的一部分。由于某种原因,它的一部分没有被正确执行。简单来说,绿色 LED 应该在温度低于 20 时打开,而红色 LED 应该在温度超过 30 时打开(直到这部分才起作用),现在棘手的部分是,当温度应该打开风扇超过35,同时使用PWM来提高风扇转速,只要温度升高。问题是,风扇根本没有打开!为此,我在案例结构中使用了 Scaling 和 Mapping,当温度为 35 时,我将其设置为 0,当温度为 45 度时,我将其设置为 255。

【问题讨论】:

  • 欢迎来到 StackOverflow!如果您在代码方面遇到问题,如果您能够展示您目前拥有的内容、无效的内容、方法以及您尝试过的内容,那么您更有可能得到答案。如果问题不在于代码而是电路,您应该将其发布在电气工程堆栈交换站点:electronics.stackexchange.com
  • 您好,我不熟悉您正在使用的 I/O 的 Andruino 函数。您确定要生成 PWM 吗?是否可以在循环的每次迭代中向 I/O 写入相同的值,这意味着您的信号不会改变?
  • 您是否尝试过从风扇控制开始:编写一些代码,仅将 PWM 输出设置为您指定的水平,而不使用循环?那样有用吗?如果是这样,那么添加其他功能,直到找到它停止工作的位置。不要让“缩放和映射”的波形输出在 Arduino VI 的输入(由红点显示)处强制转换为数字,而是尝试将其显式转换为 DBL 并检查输出的值是否应该是。也可能将输出配置 VI 移到循环之外 - 您应该只需要配置一次。

标签: arduino labview pwm


【解决方案1】:

您可能想要更改的内容:

  1. Set Digital Pin Mode.vi 放在 while 循环前面,因为在执行代码期间您不会更改 pin 模式
  2. 您只需要一个Close.vi,因为您只关闭一个Arduino Resource
  3. 使用shift registers 保留循环迭代之间错误线路的内容
  4. 尽可能避免使用Express VIs(带有此蓝框的VI)

PWM 示例(使用 Mega 2560 测试):

我认为我的版本有效而​​您的版本无效的原因是缩放有问题。我没有使用Scaling and Mapping,而是使用基本的数学运算来缩放信号。

【讨论】:

  • 我认为 Express VI 的一般规则没有任何问题,您只需要了解它们在做什么 - 与任何其他功能相同。在这种情况下,我认为你是对的,OP 需要检查 Scaling and Mapping 的输出是否实际上在强制之后给了他们想要的值。
猜你喜欢
  • 2014-11-04
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多