2010.1.3 5:30
代码(avr studio 全部工程):
自以为无论是更换cpu(限Atmel AVR)还是更改硬件连线, 都不难移植. DIY继续中...
实现-dV检测,单节自动充电(ADC/PWM/3线595驱动LCD1602)ourdev_522219.zip(文件大小:164K) (原文件名:ATmega8-1602.zip)
补充的资料(仓促,并且图片很多但是太大,凑合,凑合)
终于补齐了. 电池充电的-dv 的检测系列图片请移步:
-dv检测图片播报
方法:
1) ADC部分, 硬件RC滤波, 软件每次测量连续获取5个ADC值, 去掉最高和最低的值, 最后剩下的取平均.
2) 记录电压的最高值, 只要达到了一个电压值,就记录在变量TOP内. 如果电压下降到top-12mV,并且连续3次,则确认-dV, 充电完成.
4) 只要突破TOP,则-dV计数复位.
if( ic->top_voltage > (ic->voltage+0.012) ){
ic->delta_times++;
infon(" -dV:",ic->delta_times);
_delay_s(2);
if(ic->delta_times >3){
ic->i_stage = STOP; /*STOP and update abs voltage*/
lcd_cursor(0,0);
lcd_puts("END:");
short x = 1000*ic->voltage;
print10(x);
pwm_setduty(0);
}
}
测量了两个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不错了, 考,烂电池.
|