BL0942是一颗内置时钟免校准电能计量芯片,适用于单相多功能电能表、智能插座、智能家电等应用,具有较高的性价比。能够测量有效电压、有效电流、有功功率、有功电能量(用电量)参数。支持通过UART或者SPI输出数据,本文介绍的模块仅支持UART输出。BL0942模块需要外部发送读取指令给BL0942芯片,BL0942才会输出一次电参数;而HLW8032是固定50ms间隔输出一次电参数。模块的3V3引脚是需要外部给模块提供3.3V电压的,而不是模块能对外提供3.3V供电,也不能用5V供电!!!
BL0942模块链接:https://t.hk.uy/bzpx
资料下载链接:
https://download.csdn.net/download/qishi3250/89240585
BL0942模块测试流程:
1.模块接线
USB转TTL模块 | BL0942模块 |
---|---|
3V3 | 3V3 |
TXD | RXD |
RXD | TXD |
GND | GND |
注:串口线是交叉接线,TXD接RXD,RXD接TXD;模块必须使用3.3V供电,不支持5V供电。串口模块只能使用TTL类型的模块,不支持232类型的。
2.驱动安装
把上面接好线的USB转TTL模块的USB头插入电脑,如果电脑正常安装了串口驱动,就会正常显示COM号:我用的是CH340串口模块,所以显示的是CH340,其他类型的TTL串口模块也是可以的。
如果没有显示COM号,则需要安装串口驱动,安装方法直接百度:你用的串口芯片+驱动即可,例如CP2102驱动、CH340驱动。
附一个CH340的官方驱动下载链接:CH341SER.EXE - 南京沁恒微电子股份有限公司
附一个CP2102的官方驱动下载链接:CP210x USB to UART Bridge VCP Drivers - Silicon Labs
3.软件查看电参数
暂时先不要接交流220V电压;打开资料里面提供的测试软件;按下图指示操作,如果模块正常,软件会显示有数据出现。
1.测试软件支持的COM号为1-16;如果超出这个序号,建议换一个USB口插即可;
2.如果点击打开串口提示打开失败,检查一下是不是其他软件占用了这个COM号,实在不行重新拔插一下;
3.选择合适的模块类型,看您购买的类型,也可以看模块的电流采样电阻丝印,丝印R003的最大电流为10A;丝印R001的最大电流30A ;
3.打开串口后,没有数据;检查一下串口接线有没有对,是交叉接线的;然后检查USB转TTL模块是否正常;BL0942模块上有一个蓝色的灯,这个灯闪一下说明有数据输出,不闪就是没有输出数据。
测试到这里如果没什么问题的话,基本就正常的了,接下来就是接入交流220V电进行测试了;接线之前一定不要通电,接完后一定要检查后再通入220V电。串口这边是和强电有隔离的,所以连接的USB转TTL模块是安全的。
4.用电器测试
把电源线和用电器插板接入BL0942模块,务必确认安全后通电,BL0942模块背后不要放金属,也不能直接放金属桌面上!!!
接线是要先拧松螺丝,然后把线插进去,再把螺丝拧紧的。通电后,不要触碰模块了
下面是介入220V电压,没有接用电器的测试截图:
下面是接了手机充电器的截图:功率跳变比较大,偶尔会跳到1W左右,因为功率比较低;不过平均基本在5W左右。
PS:BL0942比HLW8032在小功率(100W内)情况下,BL0942的数据更新速率会比HLW8032快很多;例如HLW8032在1W的用电器时,功率更新需要8秒左右,而BL0942则在2秒内就更新完成。所以如果需要实时性比较高的情况下,推荐使用BL0942模块。
5.数据解析
串口发送指令16进制的58 AA;就可以返回全电参数数据包,模块默认波特率是9600。下图是介绍全电参数数据包的介绍。
5.1 电流有效值计算
芯片数据手册提供的公式如下;这里提供的公式不适合我们使用,这个公式是原理公式,是芯片内部计算的公式。
在另一个应用手册文档提供了计算公式:
公式里面的电流有效值寄存器值就是全电参数数据包里面的有效电流值;Vref=1.218;RL这个和采用的电流采样电阻阻值有关,10A量程的模块的是3毫欧,30A量程的模块是1毫欧(链接标注20A量程也是1毫欧);
举例:
其中:70 27 01是电流有效值,高字节在后,所以就是0x012770,10进制就是75632;最大电流 是10A,所以RL=3毫欧;代入公式就是:
实际电压有效值=(75632*1.218)/(305978*3)=0.1A
5.2 电压有效值计算
公式里的R1和R2是啥?是电压分压电阻网络的值,用原理图来看就是下图这部分;
R2=390*5=1950K欧;R1=0.51K欧
用上面的例子计算;电压有效值寄存器值=0x384F32(16进制)=3690290(10进制);代入公式:
实际电压有效值=(3690290*1.218*(1950+0.51))/(73989*0.51*1000)=232.34V
疑问解答
- 模块支持测量直流吗?---不支持,模块用来测量交流电参数的,测量电压建议交流50V~280V内。个人建议,如果想测量直流,直接设计一个电阻分压网络,然后直接使用单片机的ADC采样即可。
- 模块支持多大电流?---购买10A模块,则最大支持10A的电流;如果购买的是30A,考虑到电路板空间有限,建议最大接20A电流,并且必须要把正反面的交流走线加厚焊锡。
- 模块是隔离采样还是非隔离采样?---模块是非隔离采样,串口隔离输出,交流电与串口输出是光耦隔离,所以不会影响到单片机或者电脑这边的安全。