回答

收藏

[评测分享] 【TL7218X开发板】使用ADC采集温度,光强

#板卡评测 #板卡评测 706 人阅读 | 0 人回复 | 2025-02-22

本帖最后由 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功能,以最低的成本成功实现了光强和温度的采集可以帮助我们实时了解周围环境的变化我们只要对这些数据进行稍加处理,就可以实现自己想要的功能啦!

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

146 积分
1 主题
+ 关注
热门推荐
关闭

站长推荐上一条 /3 下一条