LabVIEW热敏电阻温度计程序

简介: LabVIEW热敏电阻温度计程序

最近遇到一个使用Arduino Uno控制板的项目,利用热敏电阻和LIAT中的热敏电阻函数节点,通过Arduino Uno控制板的模拟端口采集与热敏电阻串联电阻的分压值上传给LabVIEW软件,并除以温度系数以获得温度值,实现一个温度计的功能。


为啥用labview呢,因为LabVIEW是NI的数据采集创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于图形语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。


Arduino Uno是Arduino的典型控制器,拥有Arduino所有的基本功能,使用最为广泛,而且本书的应用篇和项目篇都是基于Arduino Uno来设计的,所以接下来重点介绍Arduino Uno的硬件部分,其他型号Arduino控制板硬件介绍可以参考Arduino官方网站:www.arduino.cc。


1.控制器

❑处理器:ATmega328

❑工作电压:5V

❑输入电压:(推荐)7~12V

❑输入电压:(范围)6~20V

❑数字I/O接口:14路(其中6路作为PWM输出)

❑模拟输入接口:6路

❑I/O接口直流电流:40mA

❑3.3V接口直流电流:50mA

❑Flash Memory:32KB(ATmega328,其中0.5KB用于Bootloader)

❑SRAM:2KB(ATmega328)

❑EEPROM:1KB(ATmega328)

❑工作时钟:16MHz

2.电源

Arduino Uno可以通过3种方式供电,而且能自动选择供电方式。

❑外部直流电源通过电源插座供电。

❑电池连接电源连接器的GND和VIN引脚。

❑USB接口直接供电。

电源引脚说明:

❑VIN:当外部直流电源接入电源插座时,可以通过VIN向外部供电;也可以通过此引脚向Uno直接供电;VIN有电时将忽略从USB或者其他引脚接入的电源。

❑5V:通过稳压器或USB输出的5V电压,为Uno上的5V芯片供电。

❑3.3V:通过稳压器产生的3.3V电压,最大驱动电流50mA。

❑GND:电源负极。

3.存储器

ATmega328拥有片上32KB Flash,其中0.5KB用于Bootloader,同时还有2KB SRAM和1KB EEPROM。通常情况下,Arduino的存储空间即其主控芯片所集成的存储空间,也可以通过使用外设芯片的方式扩展Arduino的存储空间。

❑Flash:32KB。其中0.5KB分作BOOT区,用于储存引导程序,实现串口下载程序的功能,另外的31.5KB作为用户存储程序的空间,可以满足一般的应用设计。

❑SRAM:2KB。SRAM相当于计算机的内存,在CPU运算时,需要在其中开辟一定的存储空间。当Arduino断电或者复位后,其中的数据都会丢失。

❑EEPROM:1KB。EEPROM全称为电可擦写可编程只读存储器,是一种用户可更改的只读存储器,特点是Arduino断电或者复位后,其中的数据不会丢失。

4.输入/输出

❑14路数字输入/输出接口:工作电压为5V,每一路输出或输入的最大电流为40mA。每一路配置了20~50kΩ的内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能,具体说明如下:

串口信号RX(0号)和TX(1号):与内部ATmega16U2USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。

外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

脉冲宽度调制PWM(3、5、6、9、10、11):提供6路8位PWM输出。


❑6路模拟输入A0~A5:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0~5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能。

 ○TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。

❑AREF:模拟输入信号的参考电压。

❑Reset:信号为低时复位单片机芯片。

5.通信接口

❑串口:ATmega328内置的UART可以通过数字口0(RX)和1(TX)与外部实现串口通信;ATmega16U2可以通过访问数字口0和1实现USB上的虚拟串口。

❑TWI(兼容I2C)接口:A4(SDA)、A5(SCL),可用于TWI通信,兼容I2C通信。

❑SPI接口:10(SS)、11(MOSI)、12(MISO)、13(SCK),可用于SPI通信。


(1)项目最终效果

利用热敏电阻和LIAT中的热敏电阻函数节点,通过Arduino Uno控制板的模拟端口采集与热敏电阻串联电阻的分压值上传给LabVIEW软件,并除以温度系数以获得温度值,实现一个温度计的功能。


(2)硬件连接

将热敏电阻与10kΩ电阻串联起来,热敏电阻另一端接至Arduino Uno控制板上的+5V,10kΩ电阻另一端接至Arduino Uno控制板上的GND上,将热敏电阻与10kΩ电阻的连接处接至模拟引脚A2上,如图所示。


065646dc768d415eacdd9084789bc9cf.png

722b09a6f9494e6987b56907b25b0bd7.png


(3)程序设计

LabVIEW的前面板和程序框图如图1和图2所示。

LabVIEW程序首先通过设置的串口号与Arduino Uno控制板建立连接,然后进入While循环中,在循环中不断调用热敏电阻专用的Thermistor Read函数节点来读取温度值。最后,断开与Arduino Uno控制板的连接。

c717258ab7a14481b3041516a5f2d64f.png

4705bf3c07d64582b10cc1de44c217c8.png


(4)实验与演示

点击运行按钮,LabVIEW程序开始执行,在Analog Pin选择A2,可以看到前面板上的温度计显示当前的温度。


目录
相关文章
|
2月前
|
数据格式
LabVIEW编程LabVIEW控制JJ天平例程与相关资料
LabVIEW编程LabVIEW控制JJ天平例程与相关资料
24 1
|
2月前
|
数据采集 传感器 监控
LabVIEW伺服阀动静态测试系统
LabVIEW伺服阀动静态测试系统
21 1
|
2月前
LabVIEW编程LabVIEW控制DUSTTRAK气溶胶监测仪8530例程与相关资料
LabVIEW编程LabVIEW控制DUSTTRAK气溶胶监测仪8530例程与相关资料
22 2
|
2月前
|
传感器 监控 自动驾驶
LabVIEW开发基于直流电机的高精度定位火星车
LabVIEW开发基于直流电机的高精度定位火星车
25 3
|
2月前
|
安全
LabVIEW编程LabVIEW控制ELT-400家电电磁辐射测量仪例程与相关资料
LabVIEW编程LabVIEW控制ELT-400家电电磁辐射测量仪例程与相关资料
19 2
|
2月前
LabVIEW编程LabVIEW开发吉时利Keithley 7001开关例程与相关资料
LabVIEW编程LabVIEW开发吉时利Keithley 7001开关例程与相关资料
24 1
|
2月前
|
传感器 安全 数据可视化
LabVIEW开发气体调节器
LabVIEW开发气体调节器
19 1
|
2月前
|
Linux iOS开发 MacOS
LabVIEW配置前面板
LabVIEW配置前面板
41 2
|
2月前
|
数据格式
2021-07-28LabVIEW编程LabVIEW开发控制SWJ型数字温度计例程与相关资料
2021-07-28LabVIEW编程LabVIEW开发控制SWJ型数字温度计例程与相关资料
18 1
|
2月前
|
传感器 存储 IDE
LabVIEW开发呼吸分析系统
LabVIEW开发呼吸分析系统
21 0

热门文章

最新文章