tag 标签: linx

相关博文
  • 热度 1
    2022-5-24 17:02
    673 次阅读|
    0 个评论
    使用LabVIEW来玩耍Arduino-Day5-LINX完成会呼吸的灯
    实验:会呼吸的灯 今天还是继续要LINX工具包来完成LabVIEW玩耍Arduino,《Arduino与LabVIEW开发实战》的4.3节是之前做过的虚拟电压表,LINX本质上也是串口方式,所以今天就直接做4.4节。 这次实验完成我才弄明白了LINX和LIAT是一种原理,没有编译的功能,也是利用的串口方式。初次使用的助手只是帮助烧录和LIAT差不多原理的串口程序,不需要借助Arduino IDE进行Hex文件烧录而已,所以之前Day3的介绍有误,我已经改过来了。另外LINX的VI使用说明没有LIAT多,这次实验的完成也是磕磕绊绊,现在用 LabVIEW玩耍Arduino我还是推荐使用LIAT入门,它的Arduino程序是可以完整看见的,可以用来做学习用。或者直接用Arduino IDE配合LabVIEW,用LabVIEW作为上位机的开发也是不错的。 下面正式开始介绍使用LINX完成会呼吸的灯这个实验的过程: (1)实验目的 通过LabVIEW和Arduino Uno控制板实现LED灯亮度的调节,产生灯会呼吸的效果。 (2)硬件连接 将LED的阳极过330Ω限流电阻连接至Arduino Uno控制板的数字引脚D3上,将LED的阴极接至GND上,如图所示,A0引脚连接到D3脚(橙色的线)可以采集当前PWM变化的电压值。 (3)程序设计 LabVIEW的前面板: LabVIEW的程序框图: 这个程序首先通过选择的串口号与Arduino Uno建立连接,然后在一个While循环中用平铺式顺序的连接结构中依次实现呼吸点灯、延时指定时间、呼吸灭灯和延时指定时间。 其中呼吸点灯是通过For循环和延时1毫秒来实现逐渐提高占空比( 的占空比输入为0-1,所以这里和100进行了运算),呼吸灭灯则是同样的道理。呼吸点灯中还加入了A0来读取D3完成PWM输出时的电压值,可以尝试在呼吸灭灯中也加入这样的AD读取,电压值变化太快可以把延时1ms变慢一点,延时10ms之类的。 在尝试过程中,居然通过报错的方式知道了 这个VI某个参数的输入,真的是有些无语了,LINX还需要再丰富点帮助信息,不然对使用者来说真的是天坑。虽然这个PWM的通道,应该和单片机的芯片手册有关系,由单片机厂商设定哪个引脚具有PWM的功能,但是对于初学者来说真的是坑。 (4)实验与演示 点击运行按钮,LabVIEW程序开始执行,可以看到Arduino Uno控制板外接的LED灯逐渐点亮,然后逐渐熄灭,形成呼吸灯的效果。
  • 热度 3
    2022-5-21 17:11
    594 次阅读|
    0 个评论
    先说个题外话,无意间找到了这个网站 LabVIEW 编程经验 | LabVIEW 编程经验 ,之前有听说过 《我和 LabVIEW - 一个 NI 工程师的十年编程经验》这本书 ,没想到直接找到了这本书在网上的开源版本。没有LabVIEW基础的可以学习一下这个网站的内容,一定会有所收获。 今天要做的是《Arduino与LabVIEW开发实战》中的“第四章 基础实验篇”的第一个实验:闪烁灯。 这本书的作者在书中用的是LIAT这个工具包,但是我在网上查到NI公司已经不更新这个工具包了,现在用的比较多的是LINX这个工具包。我去查了一下这个工具包最新版本是2020年的,为了方便起见我直接装了一个LabVIEW2021的社区版,具体的安装过程可以参考 安装 | LabVIEW 编程经验 这一节。 LabVIEW2021 没有汉化版,用起来不太舒服,不过也只能凑合了,如果有哪位小伙伴有汉化办法,拜托分享一下,在此拜谢。 安装好LabVIEW2021 ,需要用VIPM即VI Package Manager安装LINX这个工具包,具体安装过程就是无脑同意,这里就不放具体过程了。 LINX Firmware Wizard这个助手来完成LINX的初次使用。 打开后的界面就是下图这个样子。 当前我使用的是Arduino Uno,这里选择对应设备类型Arduino Uno,点击“NEXT”。下图所示这一步是选择下载程序到Arduino Uno所使用的串口,我这里插上Arduino Uno后,多出的串口是COM5,所以直接选择COM5就行,点击“NEXT”。 这一步默认即可,继续点击“NEXT”。 这一步会将预先编译好的hex文件烧录到Arduino Uno。 烧录完成后,可以点击“Launch Example”,打开的这个案例就对应了刚刚烧录的程序。 可以看到这个程序实际上就是一个控制Arduino Uno上D13管脚对应的LED灯的亮灭。 在运行这个程序前,一定要记得选择串口号,否则无法和Arduino Uno进行通信。运行程序后,点击LED灯改变它的状态,Arduino Uno上的LED灯也会随之改变。 简单地分析一下这个程序框图,和之前使用串口方式一样,这里要先和Arduino Uno建立连接,然后在一个While循环中将当前LED小灯的亮灭状态送给D13这个引脚也就对应语句digitalWrite(D13,LED Value);,循环中还会判断Stop按钮是否被按下,按下就会结束循环,最后关闭连接。 把以上的内容改一改就是今天的实验内容。 (1)实验目的 通过LabVIEW控制Arduino Uno控制板上D13管脚上LED灯,实现等间隔闪烁。 (2)硬件连接 由于Arduino Uno控制板的D13脚已经连接了LED灯,此实验仅需要利用USB电缆将Arduino Uno控制板与计算机的USB端口连接起来即可。 (3)程序设计 下面主要讲解一下与LINX提供的样例程序的不同:首先前面板中LED灯改为了Indicator显示控件;然后程序框图中加入了一个全局变量用于每次取反后改变LED灯的状态,这里要注意的是还需要加入一个延时,不然变化太快,Arduino Uno控制板上压根看不到LED灯的亮灭。 (4)实验与演示 点击运行按钮,LabVIEW程序开始执行,可以看到Arduino Uno控制板板载LED灯以设置的时间间隔为周期闪烁,同时LabVIEW前面板上的LED灯和Arduino Uno控制板上的LED灯保持同步,以相同的时间间隔闪烁。
相关资源