源:http://blog.chinaunix.net/uid-10701701-id-91873.html
2010.1.3 5:30
终于补齐了. 电池充电的-dv 的检测系列图片请移步:
http://blog.chinaunix.net/u2/79526/showart_2137867.html
方法:
1) ADC部分, 硬件RC滤波, 软件每次测量连续获取5个ADC值, 去掉最高和最低的值, 最后剩下的取平均.
2) 记录电压的最高值, 只要达到了一个电压值,就记录在变量TOP内. 如果电压下降到top-12mV,并且连续3次,则确认-dV, 充电完成.
3) 只要突破TOP,则-dV计数复位.
if( ic->top_voltage > (ic->voltage+0.012) ){
ic->delta_times++;
infon(" -dV:",ic->delta_times);
_delay_s();
if(ic->delta_times >){
ic->i_stage = STOP; /*STOP and update abs voltage*/
lcd_cursor(,);
lcd_puts("END:");
short x = *ic->voltage;
print10(x);
pwm_setduty();
}
}
测量了两个800mah的电池的充电情况:
800mah NIcd1
3:13 开始充电 340mah结束时间 3:19 1.543---1.5A 总结束时间<3:44 (预计结束时间3:50,2C)
top1896, end 1882 , end voltage:1.38 after 10mintes 1.371
800mah NIcd2
3:45 开始充电 340..358mah 结束时间:3:47 1.568---1.3A 总结束时间4:07 (预计结束时间4:10,600mha?,2C) (冲入:约500mhA)
top 2063, end 2048, end voltage: 1.470, after 10minites:1.42
内阻0.25R, 只能冲入500mah, 实际上肯定少, 400mah不错了, 考,烂电池。