极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 44272|回复: 6

以 ESP8266 测量供电来源的电压

[复制链接]
发表于 2018-5-5 11:54:37 | 显示全部楼层 |阅读模式
最近做了个 ESP8266 的小项目, 以 2 颗 18650 供电.
由於在接近低电时, 数据误差很多, 想尝试读取电压显示出来, 或加入程序低电时停止作业.

因为电池的电压有 7V 以上, 我以 100K 及 10K 电阻分压, 再以 ADC pin 量度 10K 至 GND 一段.
在不同电压输入时, 得出的读数约:

8.4v -> 254
8.2v -> 249
8.0v -> 243
7.8v -> 238
7.0v -> 216

初时以ESP8266 的工作电压 3.3V 计算, 发觉有 10% 的误差.  
虽然我的输入电源也可能有一定的误差, 但也不会有 10%这麽大.

电池输出是以 ams1117 降压後向 ESP8266 供电, 可能不太隐定.
我修改程式, 把 ADC_MODE 设定为 ADC_VCC, 再以 ESP.getVcc 看看系统 VCC 电压.

在不同电压输入时, getVcc 得出的读数约:

8.4v -> 3098
8.2v -> 3093
8.0v -> 3089
7.8v -> 3078
7.0v -> 3062

如果以这个电压作为参考电压, 再去推算电压, 结果就准确很多了.

而 ESP8266 并没有  ARef 的输入, 好像只可以用系统电压作参考.
问题是, 当我要把 ADC 用作测量系统电压时, 就不可以用来量度输入电压.

请问有什麽方法, 可以较准确地量度电压呢?
回复

使用道具 举报

 楼主| 发表于 2018-5-5 15:15:58 | 显示全部楼层
本帖最后由 Super169 于 2018-5-5 15:17 编辑

忘了说明, 我用的是 D1 mini, 而非直接用 ESP-12.
再到网上番查, 原来 ESP-12 的 ADC 是 1v 参考电压, 但 D1 mini 接到 A0 就变成 3.2v.
暂时用 3.2v 去推算吧.  反正不是要精确数值, 把低电的门槛依这读数设定好就行.

只是, 想知道如果要比较准确的电压, 有方法吗?
回复 支持 反对

使用道具 举报

发表于 2018-5-5 21:11:29 | 显示全部楼层
外挂自带基准源的专业ADC做采集就很准确了
回复 支持 反对

使用道具 举报

发表于 2018-5-6 00:11:35 | 显示全部楼层
最近我玩的东西和楼主的需求有点相似呢。
方案是 ESP8285 + ADS1015 检测锂电池放电情况

详细情况都写在下面这两帖里,欢迎参观指导

http://www.geek-workshop.com/thread-37462-1-1.html

http://www.geek-workshop.com/thread-37411-1-1.html

回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-7 13:33:00 | 显示全部楼层
wing 发表于 2018-5-6 00:11
最近我玩的东西和楼主的需求有点相似呢。
方案是 ESP8285 + ADS1015 检测锂电池放电情况

谢谢你的资料.

但 我的设备比较细小, D1 mini 只是用作快速测试, 正式版是直接用ESP-12E.  要外加模块就不行了.

而且, ESP-8266 本身有 ADC, 为什麽要用外置的模块, 是因为内部的不准确吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-7 13:39:06 | 显示全部楼层
弘毅 发表于 2018-5-5 21:11
外挂自带基准源的专业ADC做采集就很准确了

谢谢.  
请问如果要求不高, 想用内置的 ADC 尽量测出最好的, 有方法同时得到自身的参考电压吗?
现在要加入 ADC_MODE 的转换, 但那个好像不可以在执行中更改?
ESP.H 的源码:

#define ADC_MODE(mode) int __get_adc_mode(void) { return (int) (mode); }

好像是修改了 __get_adc_mode 的设定.
请问有可能在程式执行中变动吗?  比如把 return 的 mode 改成一个 变量?
回复 支持 反对

使用道具 举报

发表于 2020-6-12 17:01:03 | 显示全部楼层
楼主,请问解决了吗?
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 23:53 , Processed in 0.042279 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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