实验:会呼吸的灯 今天还是继续要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灯逐渐点亮,然后逐渐熄灭,形成呼吸灯的效果。