lvhaian 发表于 2008-3-9 23:56:50

[OurDev开源充电器]源代码(最新版本 0.14虫版+村长版 04月16日)

最近实在太忙, 好久没有浮水, 为了不让这个项目拖的很久, 阿力可能最近比较忙, 我来顶阿力段时间, 我先写了部分程序.

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227316.JPG


菜单简单定了下, 目前还没有作充电部分的程序, 先做了察看电池状态的程序. 电压测试精度还可以 应该在 0.01V 以内.


大家烧入程序后上电. ( 5V DC )
进入如下的菜单:

2http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227296.JPG

按下按键, 选择到 3.Bettery Stat

3http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227297.JPG

</font>
然后按 Enter 进入

4http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227298.JPG


选择 1:Bettery0 按 Enter 进入第一通道电池的状态.
因为我的第一路电池没有装上, PWM 输出占空比也为 1 / 255, 测出的电压接近于输入电压减去几个管子的管压将,因此也就是 4.6V 左右. 电流为 0A

5http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227299.JPG


按 Cancel 按键可以退出到上一个菜单选项. 按下的话大家可以看到除了可以查看第一通道外,还可以查看第二通道 或者 两通道一起看

6http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227300.JPG


选择 第二通道 ( Bettery1 ) 进入可以看到第二节电池的状态.
因为我没有放入实际的电池,一般的镍氢电池的内阻为 0.6 ohm 左右, 因此我选择了两个 1ohm/2W 的大功率电阻并联代替电池来测试.

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227295.JPG


因为我buck输出电路占孔比大概设了 0x007f / 0x01ff ,这样输出电压大概为 0.5V, 和 0.1左右的电阻分压后测出大约为 410 mV, 电流么就是电压除以电阻
大约为0.8A 左右,由于电阻的误差, 测出 0.85A 属于正常范围.

7http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227301.JPG


如果选择 3.Both B0 & B1 这个选项, 那么同时可以看出两路的电压也电流状态.

8http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227302.JPG



程序版本: PRMCharger_V0.04.rar    CVAVR 1.25.7a 版本编译通过
点击下载: 点击此处下载ourdev_227315.rar(文件大小:211K)



附:目前我们定下的菜单框架
1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_226518.jpg

==============================================================================================================================


PRMCharger_V0.042:
备注: 程序修改Bug中, 菜单改为支持多线程模式, 完善 LCD 程序,完善按键底层程序,增加按键去抖动,增加按键长按功能。


2008.03.010 20:28
(1) 定 F 参数

F1: 电池种类
F2: 电池容量      mAH
F3: 预充起点电压mV
F4: 预充结束电压mV
F5: 预充电流      mA
F6: 放电起点电压mV
F7: 放电结束电压mV
F8: 放电电流      mA
F9: 快充起点电压mV
F10: 快充结束电压 mV
F11: 快充电流   mA
F12: 电池电压上限 mV
F13: 超过电池电压上限保持时间 S
F14: 超过上限电压结束方式
F15: 保护温度上限 C
F16: 超过保护温度结束方式
F17: 保护温度后再充间隔时间 S
F18: 单次充电温度保护次数限定
F19: 补充充电电流 mA
F20: 补充阶段时间 S
F21: 涓流充电电流 mA
F22: 涓流阶段时间 S
F23: 单次充电额定时间   Hour
F24: 单次充电电压下限   mV
F25: 需修复电池电压上限 mV
F26: 最大修复时间       Min
F27: 满电保持功能

程序版本: PRMCharger_V0.042.rar    CVAVR 1.25.7a 版本编译通过

PRMCharger_V0.042.rar(文件大小:229K)
LCDMenuPatch 0.042.rar(文件大小:5K) (Add by 村长,08.03.11)


==============================================================================================================================


PRMCharger_V0.044: (2008年03月13日02点24分)
备注:
1.安哥更新:增加 PID ,已经可以正常运行,接下来需要通过经验和试验拟定参数。
2.村长更新:修改菜单程序。

程序版本: PRMCharger_V0.044.rar    CVAVR 1.25.7a 版本编译通过
(1)点击此处下载ourdev_229695.rar(文件大小:255K)
(2)点击此处下载ourdev_229696.rar(文件大小:6K) (Add by 村长,08.03.13)


==============================================================================================================================


PRMCharger_V0.045: (2008年03月13日23点33分)
备注:
    调试完成PI算法,定P参数为 5.2 , I参数为0.01, 已经可以控制电压电流。
    不过硬件上面有些误差,在低压测量的时候有30mV以下的误差,不过基本断定为放大电路电阻误差造成的。明天更换精密电阻再作测试。

程序版本: PRMCharger_V0.045.rar    CVAVR 1.25.7a 版本编译通过
点击下载:点击此处下载ourdev_230355.rar(文件大小:255K)

==============================================================================================================================


PRMCharger_V0.047: (2008年03月15日23点33分)
备注:
    完成基本的充电程序,基本功能已经写完,待测试

程序版本: PRMCharger_V0.047.rar    CVAVR 1.25.9 版本编译通过
点击下载:点击此处下载ourdev_231536.rar(文件大小:303K)

==============================================================================================================================

PRMCharger_V0.048: (2008年03月16日19点45分)
备注:更新完参数,写完参数部分的菜单设置

更新F参数表

// 根据全局数据表的PWM相关定义
#define PID_FLAG                      para    // 直接控制还是使用 PID 运算

//BAT0
#define Bat0_Class                  para// F1: 电池种类
#define Bat0_Volume_L               para// F2: 电池容量             mAH
#define Bat0_Volume_H               para

#define Bat0_Vol_Repair_Min_L         para// F3: 需修复电池电压下限   mV
#define Bat0_Vol_Repair_Min_H         para
#define Bat0_Vol_Charge_Min_L         para// F4: 可充电电压范围下限   mV
#define Bat0_Vol_Charge_Min_H         para
#define Bat0_Vol_Discharge_Min_L      para// F5: 需放电电压范围下限   mV
#define Bat0_Vol_Discharge_Min_H      para
#define Bat0_Vol_PowerFull_Min_L      para// F6: 满电电压下限         mV
#define Bat0_Vol_PowerFull_Min_H      para
#define Bat0_VOL_ClassErr_MIN_L       para// F7: 电池种类错误下限   mV
#define Bat0_VOL_ClassErr_MIN_H       para

#define Bat0_Cur_DisCharge_L          para// F8: 放电电流             mA
#define Bat0_Cur_DisCharge_H          para
#define Bat0_Vol_DisCharge_OVER_L   para// F9: 放电结束电压         mV
#define Bat0_Vol_DisCharge_OVER_H   para
#define Bat0_Cur_Repair_L             para// F10: 电池修复电流      mA
#define Bat0_Cur_Repair_H             para
#define Bat0_Vol_Repair_OVER_L      para// F11: 修复结束电压      mV
#define Bat0_Vol_Repair_OVER_H      para
#define Bat0_Time_Repair_MAX_L      para// F12: 最大修复时间      Min
#define Bat0_Time_Repair_MAX_H      para
#define Bat0_Cur_Pre_CHARGE_L         para// F13: 预充电流            mA
#define Bat0_Cur_Pre_CHARGE_H         para
#define BAT0_Vol_Rre_CHARGE_OVER_L    para// F14: 预充结束电压      mV
#define BAT0_Vol_Rre_CHARGE_OVER_H    para
#define BAT0_Cur_Fast_CHARGE_L      para// F15: 快充电流            mA
#define BAT0_Cur_Fast_CHARGE_H      para
#define BAT0_Vol_Fast_CHARGE_MAX_L    para// F16: 快冲最高电压      mV
#define BAT0_Vol_Fast_CHARGE_MAX_H    para
#define BAT0_Time_Fast_CHARGE_MAX_L   para// F17: 最高电压保持时间    S
#define BAT0_Time_Fast_CHARGE_MAX_H   para
#define BAT0_Mode_Fast_CHARGE_OVER    para// F18: 结束方式            1:转为涓流 0:直接结束
#define BAT0_DeltaV_Fast_VHARGE       para// F19: 快冲结束-△V      *10 mV   
#define BAT0_Cur_Add_CHARGE_L         para// F20: 补充充电电流      mA
#define BAT0_Cur_Add_CHARGE_H         para
#define BAT0_Time_Add_CHARGE          para// F21: 补充维持时间      Min
#define BAT0_Cur_Stream_CHARGE_L      para// F22: 涓流充电电流      mA
#define BAT0_Cur_Stream_CHARGE_H      para
#define BAT0_Time_Stream_CHARGE_L   para// F23: 涓流维持时间      Min
#define BAT0_Time_Stream_CHARGE_H   para
#define BAT0_PowerFull_Retain         para// F24: 满电保持功能      1:开启0:关闭
#define BAT0_Time_CHARGE_MAX          para// F25: 单次充电最大时间    Hour



//BAT1
#define Bat1_Class                  para// F1: 电池种类
#define Bat1_Volume_L               para// F2: 电池容量             mAH
#define Bat1_Volume_H               para

#define Bat1_Vol_Repair_Min_L         para// F3: 需修复电池电压下限   mV
#define Bat1_Vol_Repair_Min_H         para
#define Bat1_Vol_Charge_Min_L         para// F4: 可充电电压范围下限   mV
#define Bat1_Vol_Charge_Min_H         para
#define Bat1_Vol_Discharge_Min_L      para// F5: 需放电电压范围下限   mV
#define Bat1_Vol_Discharge_Min_H      para
#define Bat1_Vol_PowerFull_Min_L      para// F6: 满电电压下限         mV
#define Bat1_Vol_PowerFull_Min_H      para
#define Bat1_VOL_ClassErr_MIN_L       para// F7: 电池种类错误下限   mV
#define Bat1_VOL_ClassErr_MIN_H       para

#define Bat1_Cur_DisCharge_L          para// F8: 放电电流             mA
#define Bat1_Cur_DisCharge_H          para
#define Bat1_Vol_DisCharge_OVER_L   para// F9: 放电结束电压         mV
#define Bat1_Vol_DisCharge_OVER_H   para
#define Bat1_Cur_Repair_L             para// F10: 电池修复电流      mA
#define Bat1_Cur_Repair_H             para
#define Bat1_Vol_Repair_OVER_L      para// F11: 修复结束电压      mV
#define Bat1_Vol_Repair_OVER_H      para
#define Bat1_Time_Repair_MAX_L      para// F12: 最大修复时间      Min
#define Bat1_Time_Repair_MAX_H      para
#define Bat1_Cur_Pre_CHARGE_L         para// F13: 预充电流            mA
#define Bat1_Cur_Pre_CHARGE_H         para
#define BAT1_Vol_Rre_CHARGE_OVER_L    para// F14: 预充结束电压      mV
#define BAT1_Vol_Rre_CHARGE_OVER_H    para
#define BAT1_Cur_Fast_CHARGE_L      para// F15: 快充电流            mA
#define BAT1_Cur_Fast_CHARGE_H      para
#define BAT1_Vol_Fast_CHARGE_MAX_L    para// F16: 快冲最高电压      mV
#define BAT1_Vol_Fast_CHARGE_MAX_H    para
#define BAT1_Time_Fast_CHARGE_MAX_L   para// F17: 最高电压保持时间    S
#define BAT1_Time_Fast_CHARGE_MAX_H   para
#define BAT1_Mode_Fast_CHARGE_OVER    para// F18: 结束方式            1:转为涓流 0:直接结束
#define BAT1_DeltaV_Fast_VHARGE       para// F19: 快冲结束-△V      *10 mV   
#define BAT1_Cur_Add_CHARGE_L         para// F20: 补充充电电流      mA
#define BAT1_Cur_Add_CHARGE_H         para
#define BAT1_Time_Add_CHARGE          para// F21: 补充维持时间      Min
#define BAT1_Cur_Stream_CHARGE_L      para// F22: 涓流充电电流      mA
#define BAT1_Cur_Stream_CHARGE_H      para
#define BAT1_Time_Stream_CHARGE_L   para// F23: 涓流维持时间      Min
#define BAT1_Time_Stream_CHARGE_H   para
#define BAT1_PowerFull_Retain         para// F24: 满电保持功能      1:开启0:关闭
#define BAT1_Time_CHARGE_MAX          para// F25: 单次充电最大时间    Hour

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_231995.jpg

程序版本: PRMCharger_V0.048.rar    CVAVR 1.25.9 版本编译通过
点击下载:点击此处下载ourdev_231996.rar(文件大小:321K)

LCD Menu 补丁(Add by 村长)
点击下载:<LCD_MENU_PATCH_V0.048.rar(文件大小:10K)


==============================================================================================================================


PRMCharger_V0.049: (2008年03月21日23点08分)
备注:
    参数设置部分的下位机程序都完成了。

程序版本: PRMCharger_V0.049.rar    CVAVR 1.25.9 版本编译通过
点击下载:点击此处下载ourdev_236035.rar(文件大小:368K)

加入全功能测试的版本,包括GUI部分,PROTOCOL部分(已经可以和上位机通讯)(Add by 村长,2003-03-21)
PRMCharger_V0.0482.rar(文件大小:425K)

==============================================================================================================================

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_236696.jpg
2http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_236697.jpg
3http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_236698.jpg

PRMCharger_V0.1: (2008年03月23日01点23分)
备注:
    终于可以充电了。这个版本可以作为公测版了

    选择菜单 FunctionSelt 中的 Normol Charge 选项进入充电状态。
    可以进入 Battery Stat 选项下面察看电池通道1的充电状态,电压和电流。如果选择Both ,那么两个通道都可以看到。

    重点基本分为4个状态:
  当电池满足充电状态时,即正常充电的电池,因为现在放电程序还没有作,所以只支持没有电的电池充电。
   (1) 预充 400 mA 恒流   红灯闪
   (2) 快充 1.2A 恒流    绿灯闪
   (3) 补充 300 mA 恒流   红灯亮  为了测试方便 仅设了1分钟
   (4) 涓流 50 mA 恒流   绿灯亮  为了测试方便 仅设了1分钟

  充电完成          红绿灯一起亮

  目前时间不够,暂 -DV 还没有测试,别的功能都测试完成,一切正常。 
   

程序版本: PRMCharger_V0.1.rar    CVAVR 1.25.9 版本编译通过
点击下载:PRMCharger_V0.1.rar.rar(文件大小:421K)

==============================================================================================================================

PRMCharger_V0.11: (2008年03月23日19点55分)
备注:
   
    此版本修正了下 -DV 监测 的延时3秒钟测量。因为刚开始进入快充模式 PID 算法上面需要稳定的时间,必须等稳定了才能测量。

    -DV 监测正常。

    正常充满一节电池。开心中。。。。。
    无奈的是放电程序稍微有点问题 呵呵! 
   
    这个就留给各个网友去玩了。 最近比较忙,我暂时就玩到这里了。留下的功能慢慢完善了。
    接下来我还会做一版下位机程序,就是和村长配合,做完充放电程序。

    备注:目前只支持通道1,通道2程序我没有仔细测试,所以不敢冒然充电。

程序版本: PRMCharger_V0.11.rar    CVAVR 1.25.9 版本编译通过
点击下载:PRMCharger_V0.11.rar.rar(文件大小:427K)

==============================================================================================================================

PRMCharger_V0.12: (2008年03月23日22点24分)
备注:

    不好意思,发觉 -DV 设置的有点点大了 因此重新设置了个版本

    现调整参数

    -DV 的设置变为 -8 mV或者 - 10mV 的选择。

    放心充电吧!!

    程序版本: PRMCharger_V0.12.rar    CVAVR 1.25.9 版本编译通过
    点击下载:PRMCharger_V0.12.rar(文件大小:427K)



==============================================性感的分割线=================================================================

PRMCharger_V0.12b: (2008年04月02日)
注释:
呵呵,终于回来了,接手安哥的 0.12 版本继续开发。
0.12b 修改使用村长的新版本的LCDGUI,空出很多程序空间,
修改了AD 采集,使用中断集束采集21次,抛弃第一次,做后20次的平滑处理。
修改时间片调度方式,集中进行时间片处理。(main.c)
菜单操作进行MenuID的传递,触发进行事件管理和调度。(menu.c 和 application.c)
新增 application.c 用于放置充电函数 和 其它应用函数。
整理所有的 include 文件,集中放置在 main.c 的头部。

很傻、很天真地告诉各位童子,这个只是中间过渡版本,所有充电、放电的函数都剥离了,只能看看 ~ ~ !

充电器软件0.12b(中间过渡版本)ourdev_243940.rar(文件大小:375K) (原文件名:PRMCharger_V0.12b.rar)


**========================================** 终于等到新版本的分割线 **=====================================================**


PRMCharger_V0.12c: (2008年04月05日)

注释:
AD采集后的处理变异成为混合数字滤波,趋于稳定。
大范围的增加了全局数组的定义(详见 para.h),各种参数、运行控制均使用全局数组进行控制。
修改了PID和PWM的处理,接受全局数组控制,初步测试PID控制充电、放电均可以运行。
增加LED控制函数,通过全局数组(LED0_MODE 和 LED1_MODE)可以进行控制——常亮、闪烁、暴闪、三色轮闪、三色暴闪。

控制接口全部完成了,简单说一下,
首先需要设置,是控制电流还是电压(BAT0_CV / BAT1_CV)
如果使用PID,则需要打开全局的PID标志 PID_FLAG,非零为PID使能。
使用PID,就必须设置PID的参考值,请根据选择的电压或电流进行设置,是不一样的,BAT0_Ref_Cur_L / BAT0_Ref_Cur_H (电流);BAT0_Ref_Vol_L / BAT0_Ref_Vol_H (电压)
如果不使用PID,请把PID_FLAG清零,并请设置数组中相关的PWM直接设置单元,如BAT0_Charge_PWM_L / BAT0_Charge_PWM_H 等
然后,设置BAT0_MODE/BAT1_MODE 开启 充电/放电 模式,模式开启后也可以修改 PID的参考值 或 PWM的值。
BAT0_MODE/BAT1_MODE 具有关闭状态。

0.12c 中包含两个简单的演示应用程序,一个为慢速充电、一个为慢速放电,请在菜单中用enter键选取
1.Function Sel -> 1.Normal Charge    慢速充电 (菜单缩写 1-1)
1.Function Sel -> 5.Normal Discha    慢速放电 (菜单所写 1-5)
进去后可以通过按 cancel 键退出,退出同时将停止充放电。

菜单1-2 为红色LED暴闪,1-3为三色闪,1-4为三色暴闪。其他部分未变化。

菜单的新增、删除或修改,请使用 村长 的LCDGUI 2.0,具体使用方法可咨询 村长。 ^_^

目前程序中没有完整的充电功能,请不要用这个版本充电!!!!!
期待功能完整的充电应用函数的出现,欢迎测试0.12c!

0.12c 的目标是 —— 伪:没有蛀牙!! 真:只使用 para 数组,就能操作整个充电器。

智能充电器软件 PRMCharger V0.12courdev_245294.rar(文件大小:416K) (原文件名:PRMCharger_V0.12c.rar)     

   =================================== 只是修改了一点点,所以是未发育的分割线 ======================================

4月6日,听取一些童子的意见,做了一些很小的修改,主要集中在menu部分的事件处理简化(menu.c 和 application.c),并增加部分代码的注释(sio.c)。
继续吸收各类意见、建议,您将受到热烈的欢迎,如果带着香烟来的话,那将是更加热烈的欢迎。    当然指责、谩骂、殴斗也是可以的,但是将不受欢迎。

哈哈,下面让我们欢迎新的小号版本0.12ca

小号的版本,0.12ca,修改了少量代码 ====>> ourdev_245882.rar(文件大小:417K) (原文件名:PRMCharger_V0.12ca.rar)

   =================================== 畸形发育,需要整形矫正的分割线 ======================================
在虫子的抛头颅撒热血的努力奋斗下,我们终于解决了0.12改版发育畸形的问题,终于……………………………………


**============================================** 热烈欢迎 0.13虫版 的分割线 **=======================================================**


为了感谢小虫子的丰功伟绩,决定0.13版命名为 0.13虫版!
经过虫子辛苦的啃噬,问题这个大苹果已经只剩下核了。

代码已经梳理干净,功能均已完成,可以进行完整过程的充电了。

虫子还冒着电池爆炸的巨大危险,坚持进行调试,并不断完善参数与功能。

各位童鞋,为了让虫子的事业更加的发扬光大,我们坚决要立刻下载、立刻测试,并坚决地把测试情况汇报给广大人民群众!

充电器0.13虫版软件、源代码ourdev_249022.rar(文件大小:446K) (原文件名:PRMCharger_V0.13.rar)


**============================================** 新虫版 0.14 的分割线 **=======================================================**


虫子花了很大的心思,终于完成了具有历史意义的0.14版
点击此处下载 ourdev_253803.rar(文件大小:878K) (原文件名:0.14.rar)

**============================================** 听说 已经有第二版硬件 的分割线 **=======================================================**



**============================================** 村长修正LCDGUI 的分割线 **=======================================================**


村长修正LCDGUI,加入数字输入。Patch V0.13p.rarourdev_250964.rar(文件大小:15K) (原文件名:Patch V0.13p.rar)

mljda 发表于 2008-3-10 00:00:00

顶!关注。

avr-qq 发表于 2008-3-10 00:41:23

终于看见了

yzz163 发表于 2008-3-10 00:55:35

顶,好好学下菜单。

srygg 发表于 2008-3-10 06:04:49

终于看见好东西了,楼主辛苦了。

steven 发表于 2008-3-10 07:55:14

这个一定要学习,楼主辛苦了!

atommann 发表于 2008-3-10 08:25:18

发现一个单词错了:Bettery,应该是 Battery.

aleyn 发表于 2008-3-10 08:55:56

安哥利害!

piccode 发表于 2008-3-10 13:41:45

送一份老东东给你们

点击此处打开ourdev_227535.pdf(文件大小:694K)

lvhaian 发表于 2008-3-11 00:19:34

程序更新至 V0.042. 具体见顶楼。

aleyn 发表于 2008-3-11 09:06:48

我更新了LCD Menu 的一个补丁,具体见顶楼。
该补丁修正了LCD 显示 ChooseRadioMenu 时的标题错误。
同时,优化了内存的使用状况。

Grant 发表于 2008-3-11 09:55:54

访问量234,回帖11。

回帖与访问比例过于悬殊,希望各位参与者能够积极测试代码,多多参与设计方面的讨论。否则这个活动的目的就失去了。

_yuming 发表于 2008-3-11 11:56:46

我潜水已久,上来透透气!!顶起来

diannaoza 发表于 2008-3-11 16:06:19

这个活动的目的,多多参与设计

apcfy 发表于 2008-3-11 16:30:32

关注

mowin 发表于 2008-3-12 16:05:11

感谢安哥!
终于看到安哥的作品了!
支持,学习中

lvhaian 发表于 2008-3-13 02:26:07

程序更新至 V0.044,增加PID,优化菜单,修改死机 bug。

hemjidn 发表于 2008-3-13 07:29:46

不知买CVAVR要多少钱呢?未见管先打30大板。

yzz163 发表于 2008-3-13 15:21:45

没有板子,只有看看代码了。。。。

ch2003_23 发表于 2008-3-13 19:56:41

学习
辛苦了……谢谢!

lvhaian 发表于 2008-3-13 23:35:42

程序更新至 V0.045, 修正 P参数,和I参数,已经可以精确控制电压电流。

STM32_PLC 发表于 2008-3-14 09:39:42

好久都没时间上来,一上来就被安哥感动的痛哭流涕,我实在太对不起大家了,我有罪!

老板要求3月20号交项目的,程序都还没有完呢,来不及ing
只能对不起大家了,以后一定补上。

armok 发表于 2008-3-14 09:49:37

安哥,阿力等主力技术人员,你们看一下,是否需要我们邮购部正在推广的“完美”版本Dragon.

如果需要,告诉我数量,我会送给你们。所有费用由网站支付。 以表示我对大家辛苦工作与共享精神的支持。

rainbow 发表于 2008-3-14 19:07:38

看了一下程序,很好。
只是按键部分是用74XX166的,而不是原理图的的那个。

一个小建议:
按键部分有5个键可以与LCD的D4-D7,RS共用,LCD的E不能用,用了会影响LCD的正常显示,其它需串一个470~1K之间的电阻经开关到地,以达到不影响LCD的正常显示。

原图中有6个键,如用上述的文法,可以将“确认”与“取消”两键合并一下,短按为“确认”功能,长按(1-2S)为“取消”功能。

以上供参考。
谢谢!

lvhaian 发表于 2008-3-14 22:21:29

【24楼】 rainbow 老陈
谢谢您的建议,呵呵!

不过既然硬件作了,底层也开通了,改起来麻烦了。
多个74HC166 没有设备那么关系,也很便宜,几毛钱的东西 无所谓了。

litteworm 发表于 2008-3-15 10:57:16

早上被太阳晒起来呵呵 到论坛顶贴感谢安哥的无私奉献啊 只是可惜手上没板子调试 伤心一下,,,,,
安哥和村长都是好样的。。。。。

lvhaian 发表于 2008-3-15 17:09:18

【23楼】 armok 阿莫

谢谢 Armok ,我玩 AVR 不多的,就不浪费了 呵呵

村长作了很大的贡献,我帮他申请一个吧!他只用 AVR ,目前都是 ISP ,可能有了 JTAG 调程序会更加方便一点。

你联系他一下吧。

armok 发表于 2008-3-15 21:40:31

【28楼】 lvhaian 安哥,

你帮我联系一下吧。 将收件地址发到我的手机就行。我会安排工作员发过。

另:这个项目用了的钱快报销吧,上次收的捐款一分钱也没有用,老摆在我这里不舒服啊 :)

lvhaian 发表于 2008-3-15 23:15:02

好的,我明天帮你问好。

钱不及,等出成果再报吧,不然太不好意思了。

也没有多少钱呵呵

lvhaian 发表于 2008-3-15 23:33:54

程序更新到 V0.047 ,充电部分的基本功能写完,待实战测试了 呵呵

sbeqj 发表于 2008-3-16 11:17:34

安哥和村长都是好样的

lvhaian 发表于 2008-3-16 19:49:01

程序更新到 V0.048 ,完成参数部分的菜单。

aleyn 发表于 2008-3-17 09:15:49

谢谢阿莫和安哥,我直接去邮购部下个“完美”版本Dragon的单就可以了吧?

lvhaian 发表于 2008-3-17 13:34:00

村长 你单子下了么,注明 开源活动村长 应该就可以了。

armok 发表于 2008-3-17 14:43:46

呵呵,现在我才看到这个帖子。
村长的下的订单我已经通知邮购部工作人员处理了。

阿力的订单也已经处理了。 这两个订单今天内会发货。全部费用由我们网站负责。谢谢两位的对本项目的大力支持。

另:martin7wind枫仔申请的一台也同时会寄出。即总共为充电器活动送出三台。

lvhaian 发表于 2008-3-17 14:51:37

【36楼】 armok 阿莫

谢谢 ARMOK!

STM32_PLC 发表于 2008-3-17 18:12:05

我还需要几天时间才能保证每天抽出时间来处理充电器的事,目前手上有4块PCB要画,所以还需要3-4天。
我现在每天都是会关注,但是还没有时间来做点什么,实在不好意思。

实在是对不住大家,能够干活的时候,我会把QQ开起来的。

oilgas 发表于 2008-3-17 22:21:50

支持一下

lvhaian 发表于 2008-3-17 22:48:52

【38楼】 trinove 阿力

没有关系,欢迎你的归队。呵呵!

Grant 发表于 2008-3-17 23:35:55

最近对充电器活动偶是有些低调的,不过测试这一部分我要参与的。要不我辛辛苦苦焊好的编程器不就白费了。在公司抱了台安捷伦的示波器外带一个电流探头回家就想看看充电电流如何。可惜示波器上用的是磁片,我的小黑早没这个咚咚了,要不也可以抓一些图片给大家看看。

lvhaian 发表于 2008-3-17 23:39:51

【41楼】 Grant

当然欢迎 GRANT 归队!!

Grant 发表于 2008-3-17 23:59:58

申明,我没有离队,呵呵。我说过会支持你的,自然要保持低调点,要不偶说的话就不能向你兑现了,那就没脸上来混了。


充电这东西要测试充的效果好不好,电子负载是少不了的。唉,我这的电子负载被人借给客户了,好像有大半年没瞧见这咚咚了。

qxs5264 发表于 2008-3-18 08:51:02

不错

ddh19 发表于 2008-3-20 12:30:10

不错,这才是技术的交流,不其他网站,尽是广告

yzz163 发表于 2008-3-20 21:18:53

等第二版板子到手,就先搞个通宵过下瘾。。。

aleyn 发表于 2008-3-21 22:15:20

加入全功能测试的版本,包括GUI部分,PROTOCOL部分(已经可以和上位机通讯)
点击此处下载ourdev_235995.rar(文件大小:425K)

lvhaian 发表于 2008-3-23 01:20:54

激动人心的时候到了,哈哈 能充电拉。

见楼主位。

sunke9 发表于 2008-3-23 08:16:56

辛苦了楼上2位,感谢你们的无私!

AVR0UR 发表于 2008-3-23 18:13:12

想问下充电电流最大是多少?

soulmate 发表于 2008-3-23 19:17:56

牛~顶一下~如果可以考虑做一些板子给大家玩玩就好了~./emotion/em009.gif

lvhaian 发表于 2008-3-23 20:10:48

【50楼】 AVR0UR
最大充电电流支持2A

==============================



好了,顺利充满电池。

修正了下程序,程序版本升级到 V0.11,见搂主位, 这般程序已经完完全全给大家做电池充电试验拉 呵呵!

因此,为公测版拉。

TonyCai 发表于 2008-3-23 21:16:27

感谢奉贤,不过没有硬件,帮不上忙

liming 发表于 2008-3-23 21:50:08

呵呵!没有硬件呀!没法测试!继续支持!

lvhaian 发表于 2008-3-23 22:17:53

不好意思,发觉 -DV 设置的有点点大了 因此重新设置了个版本

现调整参数

-DV 的设置变为 -8 mV或者 - 10mV 的选择。

PRMCharger_V0.12.rar

见楼主位。

rainbow 发表于 2008-3-23 23:42:42

-DV这个参数不是所有的电池都一样的,应根据实际情况做相应的变更,统一用一个参数不太好。
以上供参数。

lvhaian 发表于 2008-3-23 23:48:50

【56楼】 rainbow 老陈

你说的没有错 和不同的容量和快充电流的比例有关。

不过只要快充电流大于 0.5C, 这个值应该还行

jizzll 发表于 2008-3-24 18:33:07

路过,呵呵

lvhaian 发表于 2008-3-25 09:48:10

经过两天测试下来。

成功充满

2000mAH 两节 镍氢电池
1800mAH 两节 镍氢电池
1300mAH 两节 镍氢电池

sjjc2008 发表于 2008-3-25 20:16:39

thanks!

ajoe 发表于 2008-3-26 10:36:56

好东西,不顶没有道理!可以下来看看了.
感谢奉献!

eagle2006 发表于 2008-3-26 17:20:00

有空下来研究下

apcfy 发表于 2008-3-26 21:46:04

现在是不是宣布成功啦?

ltby00 发表于 2008-3-27 16:07:07

楼主辛苦了,先看看程序

jetbo 发表于 2008-4-1 10:27:27

太好了,刚知道的,那个是最新版本啊

jetbo 发表于 2008-4-1 11:14:01

sch与PCB 那个是最新版本啊

liming 发表于 2008-4-1 23:21:28

现在到此结束了吗?

mowin 发表于 2008-4-2 12:27:16

下载了,回家测试去

lee40039 发表于 2008-4-4 10:36:12

好东西,没有道理不顶!

STM32_PLC 发表于 2008-4-5 22:19:58

0.12C 发布,新的第二版的硬件正在设计中,很快了!

loves123 发表于 2008-4-6 00:06:59

等待第二板,第一板没有赶上...

lvhaian 发表于 2008-4-6 02:43:05

【70楼】 trinove 阿力

V0.12C


几个小建议:
1: SIO 里面的按键处理部分还有问题,我没有很明白你的代码。请再查一下。
2: 你把全局变量和参数的概念有些混淆了,参数是配置我们充电过程的。比如像LED的状态,应该为一个全局变量,而不是一个Para。
3:我们看来得定义一下程序风格,因为需要大家多人写一个程序,风格不一致将会让代码看起来乱七八糟。
4: 建议我们的程序中不含有 TAB ,全部用空格。这样在不同的编译环境下面都不会显示变乱。

awfi 发表于 2008-4-6 17:09:45

第二版什么时候会出.

bjj9217 发表于 2008-4-8 11:30:09

学习!

litteworm 发表于 2008-4-8 18:40:18

嗯 呵呵 加油加油
工作在第一战线的兄弟们辛苦了 呵呵

loves123 发表于 2008-4-10 22:58:16

第二板什么时候出来,没赶上第一板,呵呵,参加第二板啊.

milanzhiyi 发表于 2008-4-12 08:48:32

我也要参加第二板啊,现在有大把的时间,就是技术次点.

apcfy 发表于 2008-4-12 09:22:44

等待第二版的人还真不少,我也一样,期待中......

         专家们辛苦了!

jizzll 发表于 2008-4-13 16:30:12

嘿嘿,我也申请个第2版的,最好阿莫能够代买元器件,部分不好买呀

yzz163 发表于 2008-4-13 22:37:30

板子没有,看看代码。

qingqingzijin 发表于 2008-4-14 22:15:48

maskiss 发表于 2008-4-15 16:16:46

时刻关注着^

liming 发表于 2008-4-15 21:24:28

支持

litteworm 发表于 2008-4-16 16:27:07

0.14版具有的功能

1.nimh电池充电功能 充电流程是:预冲--快充--补充--涓充
充电过程中计算充电容量 每隔一分钟进行判断和累加
其中预冲有最少控制时间 建议6min到10min 现在代码设置的是预冲最少10min
如果有需要修改的 在这里修改 case 1:{//预冲 p
                              if( Bat0_count > 6000 ) //至少预冲6分钟 再察看电池状态 6min - 10min
(其他地方的时间修改 类似这个)
进入快充 至少充4分钟才进行最高电压(1700mv)判断 至少充10min才进行负压判断 负压值设置为8mv

补充电流是200ma 充3min

涓充电流50ma 时间30min


2.nimh电池放电功能 以恒定的电流放电 放电电流现在是180ma放电过程中计算放电容量 可以作为电池电量仪
放电截止电压是1100mv

3. nimh电池修复功能 过程:放电--充电--停止15分钟--放电---充电--停止15分钟-- ....循环   现在设定的是5次一次放电和充电是一个循环

liming 发表于 2008-4-17 23:09:46

第二版我要申请一块

winter 发表于 2008-4-18 15:25:39

暂无能力测试代码的正确性,不过还是下了代码琢磨中……代码写的很舒服,学习!

taishandadi 发表于 2008-4-19 19:05:26

不知道,怎么能买板子?

taishandadi 发表于 2008-4-21 19:26:55

希望邮购部能发套件。

n0831 发表于 2008-4-26 09:46:04

希望邮购部能发套件。

ZRWZR 发表于 2008-4-30 06:59:21

学习之中……
向工作在第一线的强人们表示敬意,呵呵o(∩_∩)o...
继续加油!!~~~

xingzhang 发表于 2008-5-9 23:51:18

学习中,支持...

Qiuxian 发表于 2008-5-19 21:32:44

横流充电时,电流的波动是多少mA?

litteworm 发表于 2008-5-21 11:51:46

我现在板子上的是+-2ma 如果电池质量比较好 可以稳定在一个数值(我的品胜2300mah 快充用540ma来充 好长时间稳定不跳动)其他的工包电池是+-2ma 嗯

dy008 发表于 2008-5-22 21:14:38

还是希望能够出一个套件,方便我们偏远山区的TX!我也想定一个!呵呵!

coldx06 发表于 2008-5-24 01:19:17

还是一个在校学生啊,最近参加校内比赛,
晚上刚看到贴,已经学到了很多,像各位强人表示敬意。
尤其是安哥,村长,阿力几位大哥实战坚持的作风,
下载代码好好学习下~~~

cyberjok 发表于 2008-6-22 11:47:00

真的很好啊,安哥高手啊,还这么热心~~~

tonghe 发表于 2008-6-26 11:01:51

各位辛苦了!有套件就更好了!

graffiti 发表于 2008-6-26 14:23:53

佩服 学习~

zwei99999999 发表于 2008-6-27 10:35:26

安哥!
佩服佩服佩服
   支持,学习,学习
         有售套件吗,哪怕有PBC板子也行呀!!!./emotion/em210.gif

dahaisun 发表于 2008-7-3 22:30:24

支持各位老大!辛苦! 不过有没有套件啊!强烈建议出售套件!!!!!我等小鸟还要学习啊!

chengyabcd 发表于 2008-9-9 13:59:01

放电检测和充电检测不能用一个运放吧?放电时运放输出应该是负电压吧,这个单片机可是采样不了的呀。
页: [1] 2
查看完整版本: [OurDev开源充电器]源代码(最新版本 0.14虫版+村长版 04月16日)