Hackaday.io上的树莓派项目-Arduino MPPT太阳能充电控制器
收藏
分享
脑图
Hackaday.io上的树莓派项目-Arduino MPPT太阳能充电控制器
关于项目
项目描述:这个项目的发展源于需要太阳能充电2S Lipo电池到8.4伏特的太阳能漫游车。在尝试了几个商业产品和基于 LT3652 的解决方案失败后,我决定尝试 Arduino 解决方案。该设计基于 Tim Nolan 的原始设计,经过多次修改:INA3221 芯片通过 I2C 提供电压和电流值,而不是更多离散部件,使用 PWM 库而不是计时器。Arduino UNO 在开发过程中使用,后来由 Arduino Pro Mini 替换。
项目图片
项目详情
细节
输入电压:10 伏至 20 伏
电池类型:Lipo 2S 7.4 伏至 8.4 伏
输出:
(1) 5 伏树莓派 
(2) 7.4 伏特至 8.4 伏特电机
太阳能控制器模式:可按 DIP 开关选择:
(1)固定 PWM 
(2) 由串行端口消息 
(3) MPPT 设置的可变 PWM
可选液晶外接板
介绍
什么是MPPT太阳能充电控制器?事实上,什么是太阳能充电控制器?如果将太阳能电池板直接连接到电池,可能会损坏电池,因为电池不喜欢过高的电压。充电控制器限制电压,有时限制电流,这样不会发生。
MPPT 代表"最大功率点跟踪"。太阳能电池板的电压和电流组合对应于最大功率(P=U*I)。与直觉对而言,降低电流可能会导致更高的功率,因为电压可能会上升超过电流下降!
那么,你是怎么做的呢?首先,您得到的太阳能电池板输出电压高于电池。然后使用脉冲宽度调制来降低输出电压,使太阳能电池板在其最大功率点下工作。
该板使用 Arduino 以 5 伏特生成 PWM 信号,为 MOSFET 生成 IR2104 半桥驱动器和三个 IRLZ44Z 逻辑级 MOSFET,以驱动更高的太阳能电池板和电池充电电压。
1 X 环形核心电感器电线风伤 100uH 33mOhm 5A 线圈 $5.42
1 X INA3221 突破板 $15.95
1 X IR2104PBF
3 X 奥伊尔兹44Z
1 X Velleman 610 电阻器 E12 系列
1 X 120 个电解电容器的维勒曼系列
1 X 维勒曼一套224陶瓷电容器
1 X 维勒曼 120 二极管组
1 X 1N5822-E3/73 肖特基二极管
1 X 5pc Arduino 专业迷你 ATMEGA328P 16MHz 5V $13.99
1 X 韦克菲尔德散热器 TO-220 垂直安装
1 X DROK 降压转换器 5V-30V 至 0.8-29V
1 X KEMET NEC-Tokin 低信号继电器 - PCB 5VDC 非锁
项目日志
自 2016 年 9 月以来,该系统一直自主运行。防止系统挂起的看门狗功能显然工作正常。太阳能电池板看起来很脏/粘,但仍然工作正常。下面是显示系统每天运行的小时数的图表:
增加了一个防水的室外外壳,用于长期测试。
经过三天的工作,系统进入一个状态,其中继电器到树莓派打开,但Pi没有运行。显然,可以打开 Pi 的电源,但 Pi 不会启动。我过去也观察到过这种行为。显然,这对于自治系统来说是不能接受的。我更改了 Arduino 上的代码,以便如果检测到 Pi 未运行,它将重新启动 Pi。确定 Pi 是否正在运行的一个很好的标准是什么?我选择了功耗。Pi 在运行时至少消耗 1000mW,因此,如果系统功率低于 900mW,即使电池电压足够高,Pi 才能运行,Pi 需要进行电源循环。但是,在启动过程中,功率可能低于 900mW,因此需要额外的电源循环预防措施。我决定连续测量三次功率,如果每个测量值都低于 900mW,那么 Pi 才被循环供电。
与网络上的设备通信的最便捷方式是通过 Web 浏览器。树莓派运行一个 Lighttpd Web 服务器,它提供网页。这导致了设备访问电荷控制器的问题,在python串行的帮助下很容易解决。LCD 板上的两个 DIP 开关用于配置 PWM 百分比控制方式
Mppt
电位器
串口
在串行模式下,通过串行端口向充电控制器发送命令,该端口设置 PWM 百分比,从而设置太阳能电池板上的电压和负载。网页有一个用于设置 PWM 的界面。使用远程接口手动更改 PWM 的能力使测试 MPPT 算法更加容易。MPPT 算法应自动查找最大功率点的正确 PWM,通过在相同条件下切换到手动模式并手动查找最大功率点,可以验证 MPPT 操作。
现在,我有一个数据记录器,我可以监控充电控制器的行为。第一个测试是确保电池的充电量不会超过 8.4 伏特,这意味着一旦电池充满,PWM 应降低脉冲宽度。在图表中,100% 脉冲宽度等效于数字 255(一个字节)。我在 Arduino 中的算法首先确定目标脉冲宽度,然后在每个循环周期中将实际脉冲宽度更改少量。这将平滑 PWM 更改。
通过 GPIO 引脚为树莓 Pi 零供电,并消除 USB 集线器,使整个系统的功率降至 1 瓦到 1.2 瓦之间:
从理论上讲,一个40瓦时的电池应该能够为系统供电超过33小时,因此系统应该能够轻松地度过一夜,直到太阳再次升起
我们可以使用 Ardunio 和 Pi 之间的直接串行连接来节省电力,而不是需要额外的串行到 USB 转换器的 USB 电缆?我们需要一个水平换档器来将 Arduino 5 伏特转换为 Pi 3.3 伏特。它肯定有一个示波器, 看看串行传输是否通过另一边:
与阿杜伊诺 UNO 和阿杜诺专业迷你合作。
功耗介于 1.3W 和 1.5W 之间。
第一次测试确认:充电控制器为 250mW,Pi 为 500mW,为 750mW(读数为 759mW)。
对于 Arduino 和 Pi 之间的 USB 通信,我们需要添加串行到 USB 适配器,从而产生 975mW 的功耗。
一个 USB 集线器添加几个 USB 端口,可将 100mW 再增加 100mW 到 1076mW。(图片中的 Wifi 适配器尚未通电。
随着 Edimax Wifi 适配器的通电和连接,功率高达 1541mW。
当我们在 Pi 上运行 minicom 时,功率在 1.5 到 1.8 瓦之间波动。
更强大的霍金Wifi适配器与天线有更好的连接,但它也使用更多的功率(系统功率 = 2346mW)比Edimax。

评论

0 / 100
查看更多
Sen
2020-08-22
1890
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号