收藏官网首页
查看: 1433|回复: 0

[经验分享] esp8266 adc使用

106

主题

107

帖子

7261

积分

论坛元老

Rank: 8Rank: 8

积分
7261
跳转到指定楼层
楼主
 楼主| 发表于 2023-9-23 19:15:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
汉枫LPB120模块
    esp8266有一个adc引脚,可以支持0到1v的检测,这个adc只有10位的分辨率,因此检测值最大只有1024
   


因为检测值只到1v,因此大部分的传感器输出的模拟量会超出范围,需要使用电阻进行分压,以光敏电阻为例



在光照很亮的情况下,亮电阻阻值在2-5千欧,因此我们要保证电阻达到2千欧的时候,经过分压电阻后,模拟量接口仍然能采样到1v的电压,因此要保证分压电阻小于4.6千欧,为了方便购买,可以选用4.7千欧的电阻,因为亮电阻低于2千欧很少状态能达到,所以选用4.7k电阻,再配合代码弥补也可以达到理想状态。

在完成电路搭建后,我们就可以着手于代码的编写了,esp8266的nonos api提供了多个api用于adc的读取,但是由于我们使用机智云的固件需要连接wifi使用,wifi会影响adc的采样周期和数值,因此adc_fast_read函数在wifi开启的时候读取的数值是不准确的,要想在wifi开启的同时使用adc可以使用adc_read函数,同时确保采样次数在每秒1000次内。

由于esp8266只有一个adc接口,因此我们调用uint16        system_adc_read(void)函数即可获取adc采样的数值,我们把adc采样代码放到机智云固件的userhandle里进行循环执行。


最后我们通过串口查看一下adc读取数值



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表