完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
描述
一个完整的电池容量测量设备,使用 Arduino-Nano [Lithium-NiMH-NiCd] 特征: 识别假锂离子/锂聚合物/镍镉/镍氢电池 可调恒流负载(也可由用户修改) 能够测量几乎任何类型电池的容量(低于 5V) 易于焊接、构建和使用,即使对于初学者也是如此(所有组件均为 Dip) LCD 用户界面 规格: 板电源:7V 至 9V(最大值) 电池输入:0-5V(max) – 无反极性 恒流负载:37mA 至 540mA(max) – 16 步 – 可由用户修改 电池容量的真实测量对于许多情况都是必不可少的。容量测量设备也可以解决发现假电池的问题。如今,假冒的锂电池和镍氢电池随处可见,无法满足其宣传的容量。有时很难区分真假电池。这个问题存在于备用电池市场,例如手机电池。此外,在许多情况下,必须确定二手电池(例如笔记本电脑电池)的容量。在本文中,我们将学习使用著名的 Arduino-Nano 板构建电池容量测量电路。我为浸入式组件设计了 PCB 板。因此,即使是初学者也可以焊接和使用该设备。 展示 示意图 印刷电路板 材料清单 Arduino代码 #include #include 常量 浮动Low_BAT_level = 3.2 ; //3R 负载 (R7) 的电流步长 const int Current[] = { 0 , 37 , 70 , 103 , 136 , 169 , 202 , 235 , 268 , 301 , 334 , 367 , 400 , 440 , 470 , 500 , 540 }; 常量字节 RS = 2 , EN = 3 , D4 = 4 , D5 = 5 , D6 = 6 , D7 = 7 ; 常量字节 PWM_Pin = 10 ; 常量字节扬声器 = 12 ; 常量 int BAT_Pin = A0; int PWM_Value = 0 ; 无符号 长容量 = 0 ; int ADC_Value = 0 ; 浮动BAT_Voltage = 0 ; 字节 Hour = 0 , Minute = 0 , Second = 0 ; 布尔计算=假,完成=假; LiquidCrystal lcd (RS、EN、D4、D5、D6、D7); 按钮UP_Button ( 16 , 25 , false , true ) ; 按钮Down_Button ( 15 , 25 , false , true ) ; 无效 设置() { pinMode(PWM_Pin,输出); pinMode(扬声器,输出); 模拟写入(PWM_Pin,PWM_Value); UP_Button.begin(); Down_Button.begin(); lcd.setCursor( 0 , 0 );液晶显示器开始( 16、2 ); lcd.print( "电池容量" ); lcd.setCursor( 0 , 1 ); lcd.print( "测量 v1.0" ); 延迟(3000); lcd.clear(); lcd.print( "加载调整:向上/向下" ); lcd.setCursor( 0 , 1 ); lcd.print( "0" ); } 无效 循环() { UP_Button.read(); Down_Button.read(); if (UP_Button.wasReleased() && PWM_Value < 80 && calc == false ) { PWM_Value = PWM_Value + 5; 模拟写入(PWM_Pin,PWM_Value); lcd.setCursor( 0 , 1 ); lcd.print( "" ); lcd.setCursor( 0 , 1 ); lcd.print(String(Current[PWM_Value / 5 ]) + "mA" ); } if (Down_Button.wasReleased() && PWM_Value > 1 && calc == false ) { PWM_Value = PWM_Value - 5 ; 模拟写入(PWM_Pin,PWM_Value); lcd.setCursor( 0 , 1 ); lcd.print( "" ); lcd.setCursor( 0 , 1 ); lcd.print(String(Current[PWM_Value / 5 ]) + "mA" ); } if (UP_Button.pressedFor( 1000 ) && calc == false ) { 数字写入(扬声器,高); 延迟(100); 数字写入(扬声器,低); lcd.clear(); 定时器中断(); } } 无效 定时器中断() { 计算 =真; 而(完成==假){ 第二个++; 如果(第二 == 60){ 第二 = 0 ; 分钟++; lcd.clear(); } 如果(分钟 == 60){ 分钟 = 0 ; 小时++; } lcd.setCursor( 0 , 0 ); lcd.print(String(Hour) + ":" + String(Minute) + ":" + String(Second)); lcd.setCursor( 9 , 0 ); ADC_Value = 模拟读取(BAT_Pin); BAT_Voltage = ADC_Value * ( 5.0 / 1024 ); lcd.print( "V:" + String(BAT_Voltage)); lcd.setCursor( 0 , 1 ); lcd.print( "BAT-C: 等等!..." ); 如果(BAT_Voltage < Low_BAT_level) { lcd.setCursor( 0 , 1 ); lcd.print( "" ); lcd.setCursor( 0 , 1 ); 容量 = (小时 * 3600 ) + (分钟 * 60 ) + 秒; 容量 = (容量 * 电流 [PWM_Value / 5 ]) / 3600 ; lcd.print( "BAT-C:" + String(容量) + "mAh" ); 完成 =真; PWM_Value = 0 ; 模拟写入(PWM_Pin,PWM_Value); 数字写入(扬声器,高); 延迟(100); 数字写入(扬声器,低); 延迟(100); 数字写入(扬声器,高); 延迟(100); 数字写入(扬声器,低); } 延迟(1000); } }
本帖被以下淘专辑推荐:
|
|
784 浏览 0 评论
1109 浏览 0 评论
832 浏览 1 评论
792 浏览 0 评论
我想要用半桥电路测试IGBT,但是IGBT总是导不通,求大家帮忙看看是为什么
972 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 22:56 , Processed in 0.568277 second(s), Total 73, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号