tag 标签: LabVIEW

相关博文
  • 热度 4
    2022-5-27 14:13
    3156 次阅读|
    0 个评论
    实验:基于热敏电阻的温度计/基于光敏电阻的光强计 记得之前有买过LM35这个温度传感器,但是怎么找都找不到,临时下单了一下,到了再做4.13 基于LM35的温度计,今天先来完成4.14和4.15(两者实现逻辑差不多就一起做了)。 (1)实验目的 利用热敏电阻/光敏电阻和LIAT中的热敏电阻函数节点,通过Arduino Uno控制板的模拟端口采集与热敏电阻 /光敏电阻串联电阻的分压值上传给LabVIEW软件,并除以温度系数/光照系数以获得温度值/光照值,实现一个温度计/光强计的功能。 (2)硬件连接 将热敏电阻 /光敏电阻与10kΩ电阻串联起来,热敏电阻/光敏电阻另一端接至Arduino Uno控制板上的+5V,10kΩ电阻另一端接至Arduino Uno控制板上的GND上,将热敏电阻/光敏电阻与10kΩ电阻的连接处接至模拟引脚A2上。 (3)程序设计(这里只放了热敏电阻的图) LabVIEW的前面板: 程序框图: LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后进入While循环中,在循环中不断调用热敏电阻专用的Thermistor Read函数节点来读取温度值。最后,断开与Arduino Uno控制板的连接。 今天的这个实验整体逻辑实现比较简单,有兴趣的可以看一下Thermistor Read函数节点的VI,它是怎么讲AD采集的模拟量转换成温度值的,主要还是数学的问题。 (4)实验与演示 点击运行按钮,LabVIEW程序开始执行,在Analog Pin选择A2,可以看到前面板上的温度计显示当前的温度,可以用手心热一下指头,现在天热了体温还是蛮高的,手指捏住热敏电阻,可以看到温度计数值明显上升。 光敏电阻用手盖住就可以看到数值明显下降了。
  • 热度 11
    2022-5-26 16:06
    2898 次阅读|
    0 个评论
    使用LabVIEW来玩耍Arduino-Day7-数码管显示
    实验4.11 液晶滚动显示就是昨天实验的一些修改,比较简单,这里就不单开一篇描述过程了,程序会上传在面包板。 手头上只有共阴极接法的数码管,实验4.12属实折腾了一番,还好最终还是完成了本次实验。下面直接进入正题。 (1)实验目的 利用LIAT中的数码管显示函数库,通过LabVIEW软件控制Arduino Uno控制板,将特定的数据显示在单个数码管上,实现数码管的滚动显示。 (2)硬件连接 《Arduino与LabVIEW开发实战》中使用的是共阳数码管,它的接法是将数码管的阳极接至Arduino Uno控制板上的+5V,将数码管的A、B、C、DP(H,小数点)、D、E、F和G分别接至Arduino Uno控制板上的数字接口D2、D3、D4、D5、D9、D10、D11、D12。 我用的是5011AS数码管,它是共阴极的接法,各引脚对应可以参考下图,中间没有标注的是COM脚,如果是 共阴极 ,那么COM脚都接GND;如果是 共阳极 ,则COM脚都接5V。其他的引脚接法可以参考《Arduino与LabVIEW开发实战》中所述,或者随你心意接,只要在LabVIEW中填入你的连接方式。 (3)程序设计 LabVIEW的前面板:这里的Seven Segment Pins应该填入你当前数码管各引脚连接Arduino Uno的引脚编号,顺序是abcdefgh,我当前的连接方式是ABCDEFGH分别连接D2、D3、D4、D5、D9、D10、D11、D12,所以Seven Segment Pins填入了2、3、4、5、9、10、11、12。 程序框图: LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后调用Seven Segment函数库中的Seven Segment Configure函数节点以配置数码管的管脚连接,接着进入While循环中通过调用Seven Segment Write String函数节点设置写入的数据和滚动间隔的时间。最后,断开与Arduino Uno控制板的连接。 (4)实验与演示 点击运行按钮,LabVIEW程序开始执行,可以看到数码管上滚动显示所设置的数字。由于数码管显示字符的能力有限,一般用来显示数字。也可以显示一些字母,例如h、H、i的大写等等,但是往往会分不清它们和一些数字的区别。 注意 :LIAT中Seven Segment Write String函数节点调用的是Seven Segment Write Char函数节点,而该节点使用的是 共阳极 接法,也就是每次给下位机传输数据时,将对应引脚置低电平。而我使用的是 共阴极 的数码管,对应引脚需要置高电平才能点亮,所以我把Seven Segment Write Char函数节点的VI改了一下,高低电平全部反过来了,所以如果你的数码管也是共阳极的,需要修改Seven Segment Write Char函数节点的VI。 我会把我修改过的Seven Segment Write Char函数节点的VI也放入今天的程序中,有需要的可以直接替换原来的VI进行使用。
  • 热度 3
    2022-5-25 16:19
    1723 次阅读|
    1 个评论
    使用LabVIEW来玩耍Arduino-Day6-液晶时钟
    实验4.5 RGB调色、实验4.6 简易示波器、实验4.7 数据采集卡、实验4.8 单个舵机的控制、实验4.9 多个舵机的控制都是LIAT中的示例,可以直接在安装好的LabVIEW路径下找到这些实验的VI文件,具体的路径是“LabVIEW路径 \ vi.lib\LabVIEW Interface for Arduino\Palette Examples”,我的路径是“D:\Program Files (x86)\National Instruments\LabVIEW 2021\vi.lib\LabVIEW Interface for Arduino\Palette Examples”。 所以今天就完成实验4.10 液晶时钟,LINX这个工具包没有提供LCD1602的VI,所以这次就用LIAT来完成这个实验。在LabVIEW中编程之前别忘了按照Day4中的介绍,用低版本的Arduino IDE烧录LIFA_Base这个工程编译后的hex。 (1)实验目的 利用LIAT中的LCD显示函数库,通过LabVIEW软件获取电脑上的时钟并传输给Arduino Uno控制板,将时间数据显示在LCD1602液晶显示屏上,实现一个液晶时钟。 (2)硬件连接 将1602液晶显示屏的电源线VDD和VSS分别接至Arduino Uno控制板上的5V和GND引脚上;背光电源线A通过限流电阻接至+5V,K直接接至地端;对比度调节V0通过电位器实现分压;读写控制信号RW直接接至地端;RS、Enable信号线接至Arduino Uno控制板数字引脚D12和D11上;液晶数据接口D4、D5、D6和D7分别接至Arduino Uno控制板数字引脚D5、D4、D3、D2,如图4-33所示。 我的接线超乱,这里就不放了,按照这个文字说明是可以连接成功的。 (3)程序设计 LabVIEW前面板: 程序框图: LabVIEW程序首先通过选择好的串口号与Arduino Uno控制板建立连接,然后调用液晶函数库中的LCD Configure 4-bit和LCD Init以配置液晶的管脚连接并将液晶初始化为16×2,接着进入While循环中通过“获取日期/时间字符串”节点获得当前的时间日期并调用LCD Set Cursor Position和LCD Print实现在第一行显示日期和在第二行显示时间,再通过调用LCD Display Power实现液晶的闪烁。最后,断开与Arduino Uno控制板的连接。 (4)实验与演示 点击运行按钮,LabVIEW程序开始执行,可以看到1602液晶屏幕上第一行显示当前的日期,第二行显示当前的时间,包括时分秒。同时,液晶以1秒为周期进行周期性闪烁。 最后有关于LCD1602的一些知识可以参考( LCD1602液晶使用介绍--(完整版)_gussu-毛虫的博客-CSDN博客_lcd1602 )。
  • 热度 9
    2022-5-24 17:02
    2373 次阅读|
    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灯逐渐点亮,然后逐渐熄灭,形成呼吸灯的效果。
  • 热度 10
    2022-5-23 17:25
    3487 次阅读|
    0 个评论
    使用LabVIEW来玩耍Arduino-Day4-LIAT实现流水灯
    实验:流水灯 周日给自己小放了一天,所以今天周一接着做《Arduino与LabVIEW开发实战》这本书里的实验。前天尝试了LINX这个工具包,感觉用起来还是不太舒服的,虽然LIAT已经不再更新,但是还是可以试试LIAT,对比一下,说不定之后可以自己做一个工具包。 按照前天安装LINX的步骤,安装一下LIAT,在VIPM中搜索Arduino就可以找到它了。 安装好之后需要用Arduino IDE把LIAT提供的基础工程烧录到Arduino Uno中,这个基础工程的路径在你安装的LabVIEW路径下,我的是“D:\Program Files (x86)\National Instruments\LabVIEW 2021\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base”,大家参考vi.lib这个文件夹之后的路径找到 这个文件。 然后一个 超级大坑 需要注意避免,烧录这个基础工程必须要使用 低版本 的Arduino IDE,我这里使用的是1.0.1( Previous IDE Releases | Arduino 在这个页面找到1.0.1下载即可)。不用低版本的Arduino IDE,会在运行的时候遇到5003这个错误如下图,还好网上有人解决过这个问题,不然我今天就死在这一步了。 下面按照《Arduino与LabVIEW开发实战》这本书里的实验步骤开始今天的流水灯: (1)实验目的 利用LIAT中的数字I/O函数库,通过LabVIEW控制Arduino Uno控制板上多个管脚上LED灯,实现依次点亮,依次熄灭,形成流水灯效果。 (2)硬件连接 书上是这样做的:硬件连接图如图4-3所示,LED灯的阳极通过220Ω的限流电阻接至Arduino Uno的D2~D7,阴极直接接至GND。最后,用USB电缆将Arduino Uno控制板与计算机的USB端口连接起来即可。 我为了省时间只连了四个LED灯,并且是用电阻(330Ω)作为接地的那一端,可以省点连线的工夫,但是电阻间离得很近,如果你想这么连别忘了把它们分开点, 还有注意分清发光二极管的正负极,具体的连接图如下: (3)程序设计 LabVIEW的前面板: 程序框图: 照例说下这个程序框图的基本过程,实际上做到现在就体会出LabVIEW这种可视化编程的香了,会比文本编程更有意思,虽然坑也多。 首先是必要的串口初始化,LIAT和之前的串口连接方式差不多,也是通过串口和下位机通信然后完成编程,这也是为什么要事先烧录一个程序,就是LIAT给了一个基础的程序,然后在VI中会给下位机发送数据,从而达到控制的目的,具体可以看看它的源程序。所以这里使用VISA进行串口连接,然后按照 给出的输入输出进行连线,这里需要注意的是LIAT中的默认波特率是115200,和Arduino程序中通常用的9600不一样。 其次是引脚初始化,For循环中D2~D5都设置为输出状态,用来控制LED灯的亮灭。 然后在While循环中通过一维数组循环移位、移位寄存器 和Digital Write Port实现流水灯,这里需要了解一下移位寄存器的概念( 循环结构 | LabVIEW 编程经验 )。逻辑很好理解就是将一个四个bool组成的一维数组中的True值循环移位,通过 来设置D2~D5的状态,这里需要注意的是 这个VI是控制D0~D13,所以需要在之前的一维数组基础上加入D0、D1的赋值。 最后再强调一下完成这个实验一些需要注意的地方: (1)确保你的LED灯都是好的。我在最后发现D5连接的小灯一直不亮,还以为哪里写错了,结果换了一个LED灯就好了。心痛,买了一个坏的LED灯。 (2)Arduino IDE使用低版本。具体原因也不知道Arduino IDE做出了哪些改变,有知道的小伙伴可以分享下哈。 (3)用Stop按钮停止程序。不然上一次连接串口没有关闭,再运行程序就连接不了了。我还特别喜欢用Abort 来停止程序,老要来回插拔Arduino Uno,这是个不好的习惯。 最后分享一下这个流水灯的效果:
相关资源