|
最近做了个 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 用作测量系统电压时, 就不可以用来量度输入电压.
请问有什麽方法, 可以较准确地量度电压呢?
|
|