arduino - 使用 Arduino 了解电池的电量百分比
问题描述
我正在使用 Arduino Nano 和各种 9.9V、6.6V 和 3.7V 的 Li-Fe、Li-Po 电池。我可以使用 Arduino 读取电池的电压。我的 Arduino 工作电压为 5V,因此对于 9.9V 和 6.6VI 等电池,使用了使用两个 10k 电阻的分压器。但问题是我需要读取充电电池的百分比,我在代码中尝试了一些东西,但我不确定关于它。请任何人帮助我。我的代码是:
#define cellPin A0
const float mvpc = 4.55 ; //measured voltage of arduino through voltmeter
float counts = 0; //battery volts in millivolts
float mv = 0;
float multiplier = 2;
float output = 0;
int charge = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
counts = analogRead(cellPin);
Serial.println(counts);
mv = counts * mvpc;
Serial.println(mv);
output = (mv * multiplier)/1000 ;
Serial.print(output);
Serial.println("V");
charge = (counts/1024)*100;
Serial.print(charge);
Serial.println("%");
delay(1000);
}
解决方案
为了准确确定充电电池的百分比,您需要每个电池的放电图。锂电池的放电图通常是非线性的。放电曲线基本上是电压与充电百分比的关系,并且对于充电和放电电池来说是不同的。
如果您有放电曲线,您可以为每个百分比创建一个映射到相应的电压值。然后,您可以将每个电压映射到您创建的映射中的 % 值。
例如:
100% -> 5.00 V 99% -> 4.95 V .... 0% -> 3.23 V
创建一个数组来存储大小为 100 的映射(对于每个 %):[5.00, 4.95, ... 3.23]
然后,您可以使用电压找到 %s。希望你能找到放电图,否则你可以自己手动找到,用安全电流给电池放电
推荐阅读
- reactjs - 在测试 React 组件时模拟 Redux 存储?
- html - 如何在 HTML 中使用对另一个 .css 文件的引用
- javascript - vis.js_timeline/REACTjs/JS:在一个选项卡中显示多个项目
- sql - 在单个 sql 查询下运行一组连接的 select 语句
- ios - 在 Firebase/Storage 上上传和使用图片
- java - Java:从文本文件中打印一系列行
- python - 运行洋红色张量流时出现非法指令(核心转储)错误
- javascript - Socket.io(浏览器到 NodeJS)自签名 CA 没有与 HTTP 连接,内部服务器
- bash - 在 bash 循环中写入多个文件时预期会出错
- javascript - Display checkbox values on select in jquery