简介

DFRobot Raspberry Pi UPS HAT是一款针对Raspberry Pi的不间断电源扩展板。UPS HAT可以在系统断电的情况下持续为树莓派提供一定时间的供电,避免诸如用于路由等项目时经常因为突然断电导致系统损坏,有必要使用UPS进行安全的关机。另外在一些移动项目中,例如树莓派照相机、平板、野外数据采集系统中也需要一块电池提供稳定的电源。 我们使用了一颗MAX17043做精确电量检测,并且板载一颗MCU做数据处理,树莓派主板只需要通过基本的I²C通信就可以直接获取电量、电池电压等信息。板载5颗LED灯可以在无需编程的情况下直观的指示当前电池电量。 我们使用了非常好的电源方案,高达90%以上的电源转换效率以及无二极管设计使得我们的UPS扩展板即使在树莓派连续高负荷工作下也能够保持较低的发热。

技术规格

注意事项

1、3.7V锂电池由于运输限制,并不包含在配送清单中 2、请选择使用满足技术规格参数的3.7V锂离子电池 3、产品工作时电源区域会有正常的一定程度发热,请根据实际应用场景避免其可能带来的安全隐患

功能示意

** 序号 ** ** 功能描述 ** ** 状态描述 **
1 USB充电口 5V直流充电
2 充电指示灯 常量充电/闪烁未检测到电池/熄灭未充电
3 功能按键 固件版本更新及功能说明
4 电量指示 指示当前电量
5 锂电池焊接点 焊接锂电池
6 树莓派40Pin插口 连接树莓派
** 电量 ** ** LED灯状态(未充电时) ** ** LED灯状态(充电时)**
电量<10% 第一格LED灯为慢闪(频率约为3HZ) 第一格LED灯为快闪(频率约为6HZ)
10%≤电量<20% 第一格LED常亮 第一格LED灯为快闪(频率约为6HZ)
20%≤电量<40% 第一格、第二格LED常亮 第一格LED常亮,第二格LED灯为快闪(频率约为6HZ)
40%≤电量<60% 前三格LED常亮 前两格LED常亮,第三格LED灯为快闪(频率约为6HZ)
60%≤电量<80% 前四格LED常亮 前三格LED常亮,第四格LED灯为快闪(频率约为6HZ)
电量≥80% LED全亮 前四格LED常亮,第五格LED灯为快闪(频率约为6HZ)

固件版本更新及功能说明

*版本号 * ** 变更日期 ** ** 按键功能 ** ** 其它 **
V1.0 2018/11/19 显示电池当前电量约10秒 当电池电量小于10%,5V电源输出将被自动断开。
V1.1 2019/09/20 1、短按显示电池当前电量约3秒2、长按(>2S)实现开、关5V电源输出。 当电池电量小于5%,5V电源输出将被自动断开。

寄存器说明

寄存器(8bit) 名称 读写 数据范围 默认值 描述
0x00 设备地址 R/W 0x01-0x7F 0x10 I2C从机地址,默认地址为0x10,改变地址后,模块重新上电后新地址才生效
0x01 产品ID R 0x00-0xFF 0xDF 用于产品校验
0x02 固件版本 R 0x00-0xFF 0x10 0x10表示V1.0,0x11表示V1.1
0x03
0x04
电压值寄存器高位(VCELL_H)
电压值寄存器低位(VCELL_L)
R
R
0x00-0xFF
0x00-0xFF
0x00
0x00
LSB表示1.25mV,与电压值寄存器高位一起组成12位的电压值. 例:VCELL_H = 0x0A, VCELL_L = 0x50, VCELL =0x0A50 * 1.25 = 3300mV
0x05
0x06
电量值寄存器高位(SOC_H)
电量值寄存器低位(SOC_L)
R
R
0x00-0xFF
0x00-0xFF
0x00
0x00
LSB代表0.003906%电量。例:SOC_H = 0x3C,SOC_L = 0xFF,读出的电量值SOC = 0x3CFF * 0.003096 ≈ 60.99%

使用教程

如何开启树莓派I2C外设

 一般情况下,树莓派系统默认没有开启I2C外设,需要手动进行开启,才能通过I2C总线访问DFRobot Raspberry Pi UPS HAT相关数据,如电池当前电量、设置定时开机时间等等。

命令如下:

sudo apt-get install i2c-tools

测试是否安装正确,命令:

sudo i2cdetect -y l

step 7:检测到总线上的I2C设备

如果出现如下图所示问题

step 8:什么设备也没连接

则需要更改'' raspi-blacklist.conf 配置, raspi-blacklist.conf /etc/modprobe.d/ ''目录下,输入命令:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

在i2c设备驱动前加“#”,例如:#blacklist i2c-bcm2835,这样I2C外设就可以正常使用了。

查看UPS电量

新建ups.py文件,输入内容如下:

   import smbus
   addr=0x10 \#ups i2c地址
   bus=smbus.SMBus(1) \#i2c-1
   vcellH=bus.read_byte_data(addr,0x03)
   vcellL=bus.read_byte_data(addr,0x04)
   socH=bus.read_byte_data(addr,0x05)
   socL=bus.read_byte_data(addr,0x06)

   capacity=(((vcellH&0x0F)\<\<8)+vcellL)\*1.25 \#容量
   electricity=((socH\<\<8)+socL)\*0.003906 \#当前电量百分比

   print("capacity=%dmV"%capacity)
   print("electricity percentage=%.2f"%electricity)

在终端中输入:python3 ups.py 即可查看电量信息。

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png [Link DFRobot商城购买链接]