tag 标签: LabVIEW

相关博文
  • 热度 1
    2024-10-5 15:54
    244 次阅读|
    0 个评论
    Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集
    Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集 Arduino IDE 安装如下库文件 DHT sensor library by Adafruit DHT11 温湿度传感器 Data 引脚与 Arduino Nano 开发板的 D2 引脚连接 代码 #include #define Temperature_COMMAND 0x10 //采集命令字 #define Humidity_COMMAND 0x11 //采集命令字 ​ #define DHTPIN 2 // DHT sensor data GPIO #define DHTTYPE DHT11 // select one kind of sensors from DHT11, DHT22 and DHT21 DHTdht(DHTPIN, DHTTYPE); bytecomdata ={0}; //定义数组数据,存放串口接收数据 voidreceive_data(void); //接受串口数据 voidtest_do_data(void); //测试串口数据是否正确,并更新数据 voidsetup() { Serial.begin(115200); dht.begin(); } voidloop() { 0) //不断检测串口是否有数据 { receive_data(); //接受串口数据 test_do_data(); //测试数据是否正确并更新标志位 } } voidreceive_data(void) { inti ; for(i=0;i<3;i++) { comdata =Serial.read(); //延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失, delay(2); } } voidtest_do_data(void) { if(comdata ==0x55) //0x55和0xAA均为判断是否为有效命令 { if(comdata ==0xAA) { switch (comdata ) { caseTemperature_COMMAND: Serial.println((float)dht.readTemperature()); break; caseHumidity_COMMAND: Serial.println((float)dht.readHumidity()); break; } } } } 将代码下载进开发板,通过串口助手软件分别发送 HEX 格式数据 55AA10 和 55AA11 获取反馈的温湿度数据,测试通过后关闭串口并运行 LabVIEW 程序,即可获得温湿度变化曲线。 LabVIEW 界面 标签 1 记录了温湿度的变化曲线 标签 2 记录温湿度随时间的演化过程 程序框图 Part 1 Part 2 效果展示 ​​ 工程文件见附件。
  • 热度 4
    2022-5-27 14:13
    3221 次阅读|
    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
    3121 次阅读|
    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
    1886 次阅读|
    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 )。
  • 热度 10
    2022-5-24 17:02
    2444 次阅读|
    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灯逐渐点亮,然后逐渐熄灭,形成呼吸灯的效果。
相关资源