久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11485|回復: 10
收起左側

簡易測電池容量儀制作 附Arduino代碼

  [復制鏈接]
ID:85865 發表于 2019-1-26 11:47 | 顯示全部樓層 |閱讀模式
以前做項目剩有幾十個14500鋰電池,不知是否全好的,干脆就做個測試電池容量的來測一下

原理圖:

接線圖

接線圖


/************************************************************
*簡易測電池容量
*電阻是已知的 電壓通過A0口測得 之后就可以通過歐姆定律算得電流
*電流乘以時間得到容量 (這個用一秒一次采樣 之后將這一秒當成恒流放電
*算出每秒放電量再不斷疊加)
*
*電阻5歐 5瓦 可根據容量改( Rdown)



**************************************************************/

float Udown=0, Rdown=5,Vcc=5,capacity,Idown,time=0;

void setup()
{
Serial.begin(9600);  //定義串口波特率為9600
}

void loop() {
time=time+1;
Udown = analogRead(A0);  //讀取A0口值
Udown=Udown/1023*Vcc;  //換算為電壓值
Idown=Udown/Rdown;    //換算為電流值
capacity=capacity+Idown;  //換算為電池容量值
Serial.print("U:");
Serial.print(Udown,3);  //電壓值保留小數點3位
Serial.print("V");
Serial.print("  I:");
Serial.print(Idown,3);   //電流值保留小數點3位
Serial.print("A");
Serial.print("  capacity:");
Serial.print(capacity,3);   //電池容量值保留小數點3位
Serial.print("mAh");
Serial.print("  time:");
Serial.print(time);   //測試時間
Serial.println("s");


delay(1000);        // 一秒刷新一次 這個與容量測試掛鉤 最好別改
}

12.jpg

BATTERY.jpg


*串口工具需要一直開著,否則會清零
*電池中途可以卸下 再接上 不影響測量 另外這個只是粗略測量
*只能測5v以下
*另外改改程序(A0-A7)就能實現多個電池一起測


評分

參與人數 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:373684 發表于 2019-10-14 23:57 | 顯示全部樓層
Arduino:1.6.9 (Windows 7), 開發板:"Arduino Due (Programming Port)"

Arduino:1: error: 'float time' redeclared as different kind of symbol

In file included from c:\users\administrator.user-20161022ou\appdata\local\arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1\arm-none-eabi\include\stdlib.h:11:0,

                 from C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Arduino.h:24,

                 from sketch\Arduino.ino.cpp:1:

c:\users\administrator.user-20161022ou\appdata\local\arduino15\packages\arduino\tools\arm-none-eabi-gcc\4.8.3-2014q1\arm-none-eabi\include\time.h:47:11: error: previous declaration of 'time_t time(time_t*)'

time_t    _EXFUN(time,     (time_t *_timer));

           ^

D:\360嫻忚鍣ㄤ笅杞絃BV\絎簲绔犲簲鐢ㄨ繘闃禱5.4娓╂箍搴︽祴閲廫Arduino\Arduino.ino: In function 'void loop()':

D:\360嫻忚鍣ㄤ笅杞絃BV\絎簲绔犲簲鐢ㄨ繘闃禱5.4娓╂箍搴︽祴閲廫Arduino\Arduino.ino:9:11: warning: pointer to a function used in arithmetic [-Wpointer-arith]

Arduino:9: error: assignment of function 'time_t time(time_t*)'

Arduino:9: error: cannot convert 'time_t (*)(time_t*) {aka long int (*)(long int*)}' to 'time_t(time_t*) {aka long int(long int*)}' in assignment

Arduino:24: error: call of overloaded 'print(time_t (&)(time_t*))' is ambiguous

D:\360嫻忚鍣ㄤ笅杞絃BV\絎簲绔犲簲鐢ㄨ繘闃禱5.4娓╂箍搴︽祴閲廫Arduino\Arduino.ino:24:18: note: candidates are:

In file included from C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Stream.h:26:0,

                 from C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/HardwareSerial.h:24,

                 from C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Arduino.h:195,

                 from sketch\Arduino.ino.cpp:1:

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:61:12: note: size_t Print::print(char) <near match>

     size_t print(char);

            ^

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:61:12: note:   no known conversion for argument 1 from 'time_t(time_t*) {aka long int(long int*)}' to 'char'

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:62:12: note: size_t Print::print(unsigned char, int) <near match>

     size_t print(unsigned char, int = DEC);

            ^

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:62:12: note:   no known conversion for argument 1 from 'time_t(time_t*) {aka long int(long int*)}' to 'unsigned char'

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:63:12: note: size_t Print::print(int, int) <near match>

     size_t print(int, int = DEC);

            ^

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:63:12: note:   no known conversion for argument 1 from 'time_t(time_t*) {aka long int(long int*)}' to 'int'

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:64:12: note: size_t Print::print(unsigned int, int) <near match>

     size_t print(unsigned int, int = DEC);

            ^

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:64:12: note:   no known conversion for argument 1 from 'time_t(time_t*) {aka long int(long int*)}' to 'unsigned int'

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:65:12: note: size_t Print::print(long int, int) <near match>

     size_t print(long, int = DEC);

            ^

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:65:12: note:   no known conversion for argument 1 from 'time_t(time_t*) {aka long int(long int*)}' to 'long int'

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:66:12: note: size_t Print::print(long unsigned int, int) <near match>

     size_t print(unsigned long, int = DEC);

            ^

C:\Users\Administrator.USER-20161022OU\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.8\cores\arduino/Print.h:66:12: note:   no known conversion for argument 1 from 'time_t(time_t*) {aka long int(long int*)}' to 'long unsigned int'

exit status 1
'float time' redeclared as different kind of symbol

在文件 -> 首選項開啟
“編譯過程中顯示詳細輸出”選項
這份報告會包含更多信息。

回復

使用道具 舉報

ID:373684 發表于 2019-10-15 15:10 | 顯示全部樓層
我用Arduino DUE板做的,,做不出來,,上面就是錯誤報警
回復

使用道具 舉報

ID:264926 發表于 2019-10-15 18:30 | 顯示全部樓層
加個顯示屏  顯示呢
回復

使用道具 舉報

ID:373684 發表于 2019-10-18 19:32 | 顯示全部樓層
zhengyouhua 發表于 2019-10-15 18:30
加個顯示屏  顯示呢

論壇有的,,我看到有顯示屏的做法
回復

使用道具 舉報

ID:689745 發表于 2020-2-3 17:41 | 顯示全部樓層
圖1  Arduino Pro Mini 測量 2 節 7 號電池電壓和容量

運行效果.png
圖2  硬件連接 Arduino Pro Mini 和 電池

ArduinoProMiniLoRaBattery_bb.png

圖3  APP 實時顯示電池電壓和容量


通信邏輯.png


謝謝您的介紹,按這個原理實現了 Arduino Pro Mini 測量 2 節 7 號電池(電壓=2.93V,電量=94%)。算法原理和實驗過程,請參考《花 1 小時,開源設計 LoRa 檢測電池容量》  https://blog.csdn.net/jiangjunjie_2005/article/details/104070668
回復

使用道具 舉報

ID:85865 發表于 2020-2-4 13:20 | 顯示全部樓層
cr8526 發表于 2019-10-15 15:10
我用Arduino DUE板做的,,做不出來,,上面就是錯誤報警

DUE 好像不行的哦,
回復

使用道具 舉報

ID:373684 發表于 2021-1-6 23:39 | 顯示全部樓層
252622979 發表于 2020-2-4 13:20
DUE 好像不行的哦,

要什么板??
回復

使用道具 舉報

ID:373684 發表于 2022-2-27 22:04 | 顯示全部樓層
252622979 發表于 2020-2-4 13:20
DUE 好像不行的哦,

原來是這樣 啊,,明白了
回復

使用道具 舉報

ID:593198 發表于 2022-10-11 21:02 | 顯示全部樓層
樓主的程序計算出的容量應該是AS(安秒),這一句“capacity=capacity+Idown;  //換算為電池容量值”改為
   “capacity=capacity+Idown/3.6;  //換算為電池容量值” 單位才能用mAh.   
回復

使用道具 舉報

ID:138707 發表于 2023-7-29 17:57 | 顯示全部樓層
原來是這樣 啊,,明白了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品精品国产亚洲综合 | 成人精品免费视频 | 久久99精品久久久久久青青日本 | 精品国产乱码久久久久久影片 | 五月天婷婷综合 | 国产成人午夜精品影院游乐网 | www.蜜桃av| 中文字幕男人的天堂 | 国产日韩欧美一区二区在线播放 | 九九爱这里只有精品 | 久久久久久久久久久久久9999 | 国产99视频精品免费视频7 | 九色 在线 | 九九九视频在线 | 精品国产乱码久久久久久闺蜜 | 欧美成人第一页 | 黄免费在线| 久久这里只有精品首页 | 国内自拍真实伦在线观看 | 精品国产一区二区三区日日嗨 | 天天舔天天 | 最新免费av网站 | 精品日韩一区二区 | 欧美一级三级在线观看 | 国内精品久久久久 | av中文在线播放 | 欧美日本韩国一区二区 | 国产欧美精品一区 | 日韩人体视频 | 毛片久久久 | 成人免费淫片aa视频免费 | 韩国成人在线视频 | 日韩久久久久久久久久久 | 国产精品一区在线 | 一区二区三区国产精品 | av在线一区二区三区 | 日本视频在线播放 | 亚洲视屏| 97伦理最新伦理 | 日日夜夜精品视频 | 久久激情av|