0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嘿!用Arduino造一个太阳能充电控制器吧

454398 来源:电子发烧友网编译 作者:程弢 2014-12-15 09:27 次阅读

一年前我在房子内设计了一套太阳能系统来供电,开始用的是基于LM317的充电控制器和一个能量计来监视这一套系统。最后换成了PWM控制器。在今年4月份把这个PWM控制器分享到网上后,瞬间就引起了大量关注。每天都收到了关于修改太阳能电池板和电池软硬件的邮件,很大一部分都是建议把该系统换成12V电池供电。

为改进上述问题,我设计了一套新的硬件和软件系统,这个全新版本可以让大家使用起来更方便。在这次设计中,我把能量计和充电控制器整合在一起。

第二代充电控制器的规格

1、 内含充电控制器与能量计

2、 可选择6V与12V电池

3、 可依据不同的电池电压自动进行充电调节的PWM充电模式

4、 LED显示电量状态以及负载状态

5、 20*4 LCD显示电压、电流、功率、能量以及温度

6、 雷电保护

7、 反向电流保护

8、短路和过载保护

9、充电温度补偿

电气特性

1、 额定电压=6V/12V

2、 最大电流=10A

3、 最大负载电流=10A

4、 6V系统开路电压=8-11V

12V系统开路电压=15-25V

第一步:准备材料

电子元件:

1、 Arduino Nano

2、 P沟道MOSFET IRF9540*2

3、 MBR 2045功率二极管

4、 稳压器(LM7805)

5、 温度传感器(LM35)

6、 电流传感器ACS712)

7、 TVS二极管(P6KE36CA)

8、 三极管(2N3904或2N2222)

9、 电阻(100k*2,20k*2,10k*2,1k*2,330Ω*5)

10、 陶瓷电容(0.1μF*2)

11、 电解电容(100μF和10μF)

12、 20*4 I2C LCD

13、 RGB LED

14、 Bi Color LED

15、 跳线

16、 头针

17、 散热器

18、 保险丝和熔丝架

19、 按钮

20、 穿孔板

21、 外壳

22、 接线端

23、 螺母/螺丝/螺栓

24、 塑料基板

工具:

1、 电烙铁

2、 钢丝钳和剥模器

3、 螺丝刀

4、 钻孔机

5、 Dremel工具

6、 喷胶枪

7、 小刀

第二步:控制器工作

嘿!用Arduino造一个太阳能充电控制器吧

充电控制器的核心是Arduino nano主板,arduino MCU可感应太阳能电池板和电池电压。该主板依据这个电压值来对改变电池充电方式,并且控制负载。

充电电流的大小是由电池电压和充电电压设定值之差决定,该控制器使用了两阶段充电算法。按照此算法,控制器将发送一个固定频率的PWM信号到太阳能电池板的P沟道MOSFET。

第三步:太阳能控制器的主要功能

以下是控制器的主要功能:

1、 电池过冲保护:当电池充满后,通过太阳能电池板来限制供电,这一功能由我的程序的周期代码来实现。

2、 电池过度放电保护:当电池到了低电量状态时,会自动断开与电路负载的连接。由负载控制代码完成。

3、 负载控制功能:在特定的时间内连接和断开负载,当日落时断开负载,日出则进行连接。

4、 监视功率和能量:监视负载功率和能量,并通过显示器显示。

5、 异常状况保护:在雷电、过压、过流和短路的情况下保护电路

6、 显示功能:所有参数都可显示。

7、 串行通信

----------------------
本文选自电子发烧友网11月《测试测量特刊》EE SHOW栏目,转载请注明出处!


第四步:感应电压、电流和温度

嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧

1、 电压传感器

电压传感器用来感应太阳能电池板和电池的电压,可通过两个分压器电路来实现。这两个电路均由100k和20k的电阻分别感应太阳能电池板和电池电压,R1和R2的输出端与arduino A0脚相连,R3和R4与arduino的A1脚连接。

2、 电流传感器

电流传感器在这里是用来测量负载电流的,然后用这个电流值来计算负载功率及能量,我用的是ACS712-20A。

3、 温度传感器

用来感应室内温度,我用的是LM35,使用温度范围在-55℃-150℃范围内。

为何需要温度监控?

首先,随着温度的变化,电池的化学反应也在改变。因此,在温度变化时进行充电调整非常重要。温度传感器专门监控电池温度,同时太阳能控制器还可通过此输入端来调整合适的设定值。酸式电池的补偿值为- 5mv /℃/cell(12V的电池为–30mV/ºC,6V电池是15mV/ºC)。这里的负号表示温度升高时需要调低充电设定值。

第五步:校准传感器

电压传感器:

以arduino Vcc 的5V作为参考,校准电压等于5/1024,即0.0048828V

Vout=Vin*R2/(R1+R2)

Vin = Vout*(R1+R2)/R2 R1=100 and R2=20

Vin= ADC count*0.00488*(120/20) Volt

电流传感器:

灵敏度为100mV/A

无测试电流的输出电压为VCC/2=2.5V

ADC count= 1024/5*Vin ,Vin=2.5+0.100*I

ADC=204.8(2.5+0.1*I) =512+20.48*I

可推出I =(ADC count/20.48)- 512/20.48=0.04882*ADC -25

温度传感器:

灵敏度为10 mV/°C

补偿为(5/1024)*ADC count*100

第六步:充电过程

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

1、大电流快充,在此模式下预设的恒定电流会经过电池,而这个过程不需要PWM,因为电池正在进行充电,所以电池电压也随之增长。

2、恒压充电,当电池电压到达快充设定值后,PWM会进行控制,保持电压不变。以免过热等反应,同时电流也会降低至安全等级,电池将完全充电。

3、 涓流充电:电池完全充电后,充电电压会逐渐降低。

上述是理想的充电过程。

充电循环过程:

当太阳能电池板的电压大于电池电压时,进行大电流快速充电过程。但电池电压到达14.4V时,将进入恒压充电模式。随后PWM信号会管理充电电流,以使电池电压在14.4V的状态维持1小时。涓流充电过程的电池电压为13.6V,当电池电压值低于13.6V超过10分钟,充电将进一步循环。

第七步:负载控制

通过监控日出、日落来进行负载控制。负载控制的主要作用是断开负载与电池的连接,以防止深度放电而损坏电池。

当太阳能电池电压大于5V是表示日出,反之则为日落。

接通情形:晚上PV电压低于5V,电池电压高于LVD设定值时,控制器将接通负载,并且负载指示灯将变亮。

断开情形:以下两种情形负载会断开:

1、 早上PV电压大于5V时

2、 电池电压低于LVD设定值时

红灯亮即表示负载已经断开(LVD表示低电压断开)

第八步:功率与能量

功率是电压与电流的乘积,即P=U*I

能量则是功率和时间的乘积,E=P*t

为监控负载功率以及能量,参数均会在20*4LCD上显示。

第九步:保护

1、 太阳能电池板的反极性保护

2、 过充保护

3、 深度放电保护

4、 短路和过载保护

5、 反向电流保护

6、 太阳能电池板输入端过压保护

可用功率二极管MBR2045来实现反极性和反向电流保护。而过冲和深度放电保护是通过软件来控制。过流和过载保护只需两个保险丝(一根是在太阳能电池板的一端,另外一个是在负载端)

很多因素可导致暂时性的过压现象,但是雷电的影响最严重。在这个设计中采用了双向TVS二极管P6KE36CA来抑制雷电和过压带来的危害。上一个设计用的是整流二极管,你也可以在负载端加上同样的TVS二极管。

第十步:LED指示灯

嘿!用Arduino造一个太阳能充电控制器吧

电池电量指示灯:这是电池电量的主要表示方式,用RGB LED按照上图进行连接。

Battery LED灯表示电池状态

红色表示电压过低

绿色表示电压正常

蓝色表示完全充

Load LED灯表示负载状态

绿色表示负载连接

红色表示负载断开

最后一个LED是显示太阳能电池板的状态

第十一步:LCD显示

嘿!用Arduino造一个太阳能充电控制器吧

上图20x4 I2C LCD显示了电压、电流、功率、能量和温度。显示的内容可在代码中进行改变。

第十二步:面包板测试

嘿!用Arduino造一个太阳能充电控制器吧

焊接之前在面包板上进行测试是很棒的办法。在连接好所有器件后,上传代码。根据用户的需要,在代码中进行修改即可。

第十三步:电源接线端子

嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

接线端:为太阳能输入端、电池和负载端连接增加三个螺丝接线端,中间的是连接电池的,左边连接太阳能电池板,右边连接负载。

电源:在上一版本里使用了9V电池给arduino供电,现在用稳压器(LM7805)把电池电压调低到5V。经过几次测试后发现用LM7805容易发热而浪费能量,所以采用更高效的DC-DC降压变换器更可靠。

第十四步:装配

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

按上述图片装好各元件,并在板子背面焊接好。从图中可看到,我分别用红色和黑色线把稳压器的5V端和GND脚连接在板上。不过为了美观性,我把它们焊接在背面。

第十五步:焊接

嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

Show All 9 Items

按照原理图来焊接所有的元件。在两个MOSFET和功率二极管上均装上散热器。

备注:MBR2045有两个阳极和一个阴极,所以需要将这两个阳极短路连接。

第十六步:连接电流传感器

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

连接好所有元件后,在MOSFET的漏极和负载熔丝架的上端上焊接两根粗线。然后将这两根线连到螺丝接线端。

第十七步:制作LED指示和温度传感板

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

嘿!用Arduino造一个太阳能充电控制器吧

原理图上只有2个LED,但是为了显示太阳能电池板上的状态,另外增加了一个LED。

这里需要准备一个如上图的小型穿孔板,然后在板的两侧钻两个3.5mm的孔。

将LED插到板上并且在背面进行焊接,还有用来插入温度传感器的3脚的排母和一个连接外部设备的10PIN直角排针。然后把RGB LED的阳极连接到温度传感器的Vcc脚。

第十八步:最终测试

嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧
嘿!用Arduino造一个太阳能充电控制器吧

在主板和显示板都设计完后,用跳线连接各排母。每个连接都需按照原理图操作。将USB接线插入arduino,然后下载代码。如果你想看到连续的监控效果,就保持这个连接。

保险丝额定值:在样品中用的是5A的熔丝架,但是实际用途上使用的是120%-125%的短路电流保险丝。

控制器的连接

首先,将控制器与电池连接,而且需要线连接负极再连正极。然后连接太阳能电池板,同样是先负后正。最后连接负载。

测试方法

在这里我用的降压变压器和黑布来测试控制器。变换器的输入端连接电池,输出端连接控制器电池端。

电池状态

用螺丝刀旋转变换器的电位计,来模拟不同的电池电压。LED等也会随着电压的变化变亮和熄灭。注意在这过程中太阳能电池板需保持断开或者是用黑布/纸板将其覆盖。

日出/日落

用黑布来模拟即可

负载控制

按照电池的电量和日出、日落的变化,负载会进行连接或断开。

温度补偿

在温度传感器附近加热或者用冰块等降温,可以在LCD显示屏上立即看到温度的变化。

充电补偿的设定值可在串口监视器上显示。

第十九步-第二十四步,请参见11月《测试测量特刊》

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184862
  • 充电控制器
    +关注

    关注

    1

    文章

    50

    浏览量

    13413
收藏 人收藏

    评论

    相关推荐

    DC电源模块在太阳能系统中的应用及优化

    转换效率、稳定输出电压和延长电源模块的寿命等方面。 DC电源模块在太阳能系统中的应用及优化 在太阳能系统中,DC电源模块通常用于以下几个方面: 1. 充电控制器太阳能电池板产生的电能
    的头像 发表于 02-20 13:18 144次阅读
    DC电源模块在<b class='flag-5'>太阳能</b>系统中的应用及优化

    太阳能电池充电器电路图分享

    太阳能电池充电器是一种利用太阳能进行充电的装置,通常由太阳能电池板、充电控制器和蓄电池组成。其工
    的头像 发表于 02-07 17:14 1823次阅读
    <b class='flag-5'>太阳能</b>电池<b class='flag-5'>充电</b>器电路图分享

    如何选择一款优质的MOS管来让自身的太阳能控制器更加可靠呢?

    MOS管在太阳能控制器中是非常重要的存在,它直接影响到充电控制的精度,系统的效率和可靠性,以及最终影响整个太阳能系统的性能和寿命。
    的头像 发表于 01-11 16:56 1414次阅读
    如何选择一款优质的MOS管来让自身的<b class='flag-5'>太阳能</b><b class='flag-5'>控制器</b>更加可靠呢?

    关于LTC3119太阳能给锂电池充电电路设计问题求解

    我计划LTC3119做一个太阳能(电压可能高于锂电池也可能低于锂电池电压)给锂电池(两节,7.4V标称,充满8.2~8.4V)充电的电路,左边的蓝框框
    发表于 01-08 08:09

    逆变器不给接充电控制器原因,确保电池正确充电

    有两种类型的充电控制器,PWM和MPPT。MPPT控制器在优化太阳能方面做得更有效,并提供了更多的配置选项。MPPT控制器更昂贵,但脉宽调制仍然是最广泛使用的。为什么逆变器不能连接
    的头像 发表于 11-28 17:04 460次阅读
    逆变器不给接<b class='flag-5'>充电控制器</b>原因,确保电池正确<b class='flag-5'>充电</b>

    逆变器与充电控制器的辨别,过充和过载

    上述步骤适用于几乎所有使用这些组件的太阳能电池板系统。但是,您仍然应该参考手册中可能与您的系统相关的具体说明。充电控制器和逆变器的区别如果你想充分利用你的太阳能系统,了解逆变器和充电控制器
    的头像 发表于 11-27 16:03 266次阅读
    逆变器与<b class='flag-5'>充电控制器</b>的辨别,过充和过载

    太阳能蓄电池和普通蓄电池的区别

    解和选择适合自己需求的蓄电设备。 首先,太阳能蓄电池是一种能够将太阳能转化为电能并储存起来的设备。它由太阳能电池板、太阳能充电控制器和蓄电池
    的头像 发表于 11-17 11:41 1755次阅读

    太阳能LED灯如何实现节能和低功耗?

    单片机控制LED灯组循环显示,用了星期就没电了,加上太阳能板能到两星期,该如何实现节能和
    发表于 10-19 06:29

    ARM于太阳能电控制系统的应用

    电子发烧友网站提供《ARM于太阳能电控制系统的应用.pdf》资料免费下载
    发表于 10-11 10:59 4次下载
    ARM于<b class='flag-5'>太阳能</b>发<b class='flag-5'>电控制</b>系统的应用

    采用LM358N设计的便携式太阳能充电器电路

    该便携式太阳能充电器电路电子项目是使用些常见的电子部件设计的。 如您所见,便携式太阳能充电器电路基于
    发表于 09-11 17:20

    如何用太阳能板给锂电池充电

    太阳能
    YS YYDS
    发布于 :2023年06月25日 22:04:18

    太阳能电池板充电控制开源分享

    电子发烧友网站提供《太阳能电池板充电控制开源分享.zip》资料免费下载
    发表于 06-08 10:41 2次下载
    <b class='flag-5'>太阳能</b>电池板<b class='flag-5'>充电控制</b>开源分享

    用于100 Ah电池的太阳能充电控制器介绍

    这款全面的太阳能充电控制器旨在以最高效率有效地为12 V 100 Ah大电池充电太阳能充电器在电池过度
    的头像 发表于 05-17 17:46 1774次阅读
    用于100 Ah电池的<b class='flag-5'>太阳能</b><b class='flag-5'>充电控制器</b>介绍

    Nicd智能充电器模块能否与太阳能电池板起使用?

    我正在为我捡到的些 Nicd 电池寻找智能充电器模块。我从中国找到了几个便宜的充电器,但它们并不智能。电池空间有合适的,但我想知道是否
    发表于 05-15 07:01

    如何通过太阳能电池板的充电电池为wemos d1 mini供电?

    我的目的是通过太阳能电池板的充电电池为 wemos d1 mini 供电。在各种测试中,如果我将 wemos 与电源(电源插座或暴露在阳光下的太阳能电池板)断开连接,我有定比例的电池
    发表于 05-11 09:08