本帖最后由 eefocus_3995051 于 2025-2-22 21:27 编辑
大家好,俺又来了,本次我们来探讨如何使用TL7218X开发板通过ADC(模数转换器)采集温度和光强数据(没错,继续测温度!),我们使用光敏电阻来测量当前的光照强度,同时利用热敏电阻来获取当前的温度,通过这两个简单而又便宜到家的元件(它们真的很便宜),我们可以搭建一个基础的环境监测系统,为以后的项目开发打下坚实的基础。
实物展示:
光敏电阻(LDR)
光敏电阻是一种常见的光敏元件,其阻值会随着光照强度的变化而改变,光照越强,光敏电阻的阻值越小,光照越弱,阻值越大,通过将光敏电阻接入ADC输入通道,我们可以轻松地将光照强度转换为可测量的电压信号,这次我们在adc的例程进行本次实验!
参考demo例程,首先我们需要初始化ADC模块,配置ADC引脚,通道、采样率等参数。
在主循环中,我们通过调用adc_get_val函数来采集ADC值,这个函数会从指定的ADC通道读取当前采集到的ADC值返回给我们,adc_calculate_voltage函数会根据ADC采样的值计算电压值,单位是毫伏,可以用来采集电池的电压,在adc.h的头文件中可以找到对这个函数的描述,老规矩,我们把这些采集到的数据通通串口打印出来。
编译程序下载到开发板,打开串口工具就可以看到adc当前采样的值,我们用手遮住光敏电阻,由于阻值变大所以adc采集到的数据也变小了,实验成功。
热敏电阻(NTC)
热敏电阻是一种温度敏感元件,其阻值会随着温度的变化而改变,NTC(负温度系数)热敏电阻的阻值会随着温度升高而降低,通过简单的电路设计,我们可以将温度变化转换为电压信号,并通过ADC模块读取,在精度要求不高的情况下使用它的成本更低,但是精度也会差很多。
我们添加一个新函数,将ADC采样值转换为NTC热敏电阻的温度值 * 该函数使用B值法(Beta参数方程)计算NTC热敏电阻的温度 * B值法是一种简化的温度计算方法,适用于中等精度的温度测量 * 公式如下: * 1/T = 1/T0 + (1/B) * ln(R/R0) * 其中: * T: 当前温度(开尔文) * T0: 参考温度(25°C,298.15K) * B: B值(材料常数) * R: 当前NTC电阻值 * R0: 参考温度下的电阻值(10kΩ)
在主函数中调用adc_get_temperature方法对热敏电阻进行温度采集,依然是通过串口的方式打印出来。
程序烧录后打开串口工具就可以看到通过adc采集到的当前温度了,猛哈一口仙气,温度也是变化的(如果温度差太多直接手动补偿/滑稽),至此,实验已成!
好啦,楼楼的本次分享到此结束,我们借助TL7218开发板的ADC功能,以最低的成本成功实现了光强和温度的采集,它可以帮助我们实时了解周围环境的变化,我们只要对这些数据进行稍加处理,就可以实现自己想要的功能啦!
|