labview温度报警系统

STM32每个芯片内部集成的温度传感器特性参数不完全相同,用户购买的My_ARM学习板可能与本节实验结果不一致。因此,建议利用该传感器测量芯片温度的相对变化,而非当前环境中的绝对温度。
如果用户坚持使用STM32内部温度传感器测量绝对温度,可以按照下面的步骤先校准一下环境温度系数。
1)运行本节实验程序,获取ADC1通道16上的温度传感器数据,记为adc_16。
2)将一支数字温度计放置在My_ARM学习板上的STM32芯片表面,读取当前温度值,记为Temp_Thermometer(TT)。
3)利用万用表测量开发板上Vref+实际参考电压值,记为Vref。
4)利用以下公式进行等效系数换算,求取STM32芯片温度传感器的V25:在这里插入图片描述
其中,Avg_Slope取标准值0.0043V/℃。
1.软件架构设计
考虑到STM32芯片内部温度变化非常缓慢,无须进行快速采集,因此,选择普通while循环即可。另外,由于ADC采集回来的数据为12位无符号整数,需要根据ADC电压转换公式,将其转换为实际的模拟电压值,然后再根据ADC芯片温度转换公式,将模拟电压值进行转换,得到最终的真实温度值。
程序框架已经编写完成,接下来就是如何在LabVIEW中访问STM32上的ADC资源了。
由于本实验采集的是芯片内部通道16上面的温度传感器输出的电压值,只有ADC1能够采集,外部电路无法接入,因此,采集部分没有原理图。但是在驱动蜂鸣器的时候,需要外部电路支持,其中,蜂鸣器对应的引脚为PG11,输出方式为推挽输出。
下面重点介绍基于VI函数和EIO节点这两种方式下的程序实现过程。在这里插入图片描述
3.利用ADCmx VI函数来采集芯片温度
ADCmx函数的打开、读取、关闭都是多态VI,加上芯片内部温度只有ADC1能够采集,因此,这3类多态ADCmx VII都需要选择成ADC1函数。同时,为了提高转换精度,需要将ADC转换周期设置为21μs,蜂鸣器设置为推挽输出。在这里插入图片描述
4.利用EIO节点来采集芯片温度
基于EIO节点的ADC驱动实现和使用方法,下面采用ADC的EIO节点方式来读取STM32芯片内部的温度值。
首先,在虚拟文件夹“ADC温度采集实验”上右击,新建一个ADC1的EIO节点,单击“确定”按钮,将STM32_Temperature和虚拟文件夹“-蜂鸣器实验”中的BEEP两个EIO节点分别拖曳到图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值