hlw8012电能测量芯片(多组功率电流测量)


软件设计、硬件设计

简介

合力为官网,hlw8012规格书中资料:
在这里插入图片描述
HLW8012 为单相多功能计量芯片,其提供高频脉冲 CF 用于电能计量和高频 CF1 用于指示电流有效值或者电压有效值。
高频脉冲 CF,指示有功功率,满足 50/60Hz IEC 687/1036 标准的准确度要求,在 1000:1 范围内达到±0.2%的精度。
[说明]在满幅输入是 1000W 的条件,在 1W 到 1000W 的量程范围内,有功功率的测量精度(线性度)是 0.2%。  高频脉冲 CF1,可配置成为输出电流有效值或者电压有效值,在 500:1 范围内达到±0.5%的精度。

硬件设计

厂家推荐电路

参考合力为推荐的方案
在这里插入图片描述

互感器采样方案
220v情况下,将采样电阻换成1Ω,并且与电流互感器相连
关注获取方案

软件设计

使用GPIO中断测量的方案网上有很多,所以不做介绍
此处介绍的是需要测量很多组电能时,需要使用mcu上20,30甚至更多gpio的情况,每个hlw8012芯片测量时需要至少2个gpio,所以其他带uart、spi的芯片也不适合使用。

使用单片机测量频率或周期,通常是利用单片机的定时计数器来完成的,测量的基本方法和原理有两种:
测频法:在限定的时间内(如1秒钟)检测脉冲的个数。(采用此法)
测周法:测试限定的脉冲个数之间的时间。
  1. 采样频率根据实际测量频率决定,设置为100us测量一次引脚电平状态-----采样函数在100us的定时器中断函数中。
  2. 假设总共测量时间为200ms,启动测量时,先记录一次电平状态begin,之后每100us判断一次,当两次电平状态不一致时,count++,到200ms后停止测量。
  3. 此时 count/2 = 脉冲个数 , 脉冲个数/200ms = 频率。

在这里插入图片描述

代码讲解

第一部分限定时间控制与逻辑控制,在1ms软件定时器中执行(可先看第二部分),可参考我的其他文章参考单片机框架。

static float PulseTemp = 0;		//脉冲个数
static float TimeTemp = 0;			//总时间

if(GbHlw200MsTimerEnable)     //需要启动测量时,此标志位置1
{
	GbHlw100UsScanEnable = 1;	//启动采样
	
	if(Gu16HlwTimeCnt++ == 200)    //200ms的总时间
	{
		GbHlw100UsScanEnable = 0;		//到时间先关
		Gu16HlwTimeCnt = 0;
		GbHlw200MsTimerEnable     = 0;
	
		PulseTemp = 0;
		TimeTemp = 0;
		PulseTemp = ((Gu16PulseJumpCount*1.0 + 1.0) / 2.0); 	//脉冲个数 +1为补偿
		TimeTemp = 200 * 0.001;   //总时间	//换算成 S
		Gu16HlwTempFrequency = PulseTemp / TimeTemp;  //最终的频率
		Gu16PulseJumpCount = 0;                    //翻转次数清零
	}
}

第二部分为采样函数,每100us访问一次

void  HlwPinScan(void)       //在100us定时器中扫描
{
	static bit SbTempPin;	 //临时
	static bit SbBeginFlag;  //记录刚进来时电平状态
	bit TempStatus;
	
	if(GbHlw100UsScanEnable)     		//在1ms定时器中开启扫描后
	{
			if(SbBeginFlag == 0)		//记录第一次判断时的电平状态
			{
				SbBeginFlag = 1;		//开始采样
				Gu16PulseJumpCount = 0; 
				SbTempPin = Pin5;      //读取电平状态	
			}
			else
			{
				if(Pin5 != SbTempPin)
				{
					SbTempPin = Pin5;    			//记录当前状态
					Gu16PulseJumpCount++;	//记录翻转次数,全局变量,配合使用
				}
			}
	}
	else
		SbBeginFlag = 0;
}

计算部分

高精度:
最好分段校正,分段计算斜率
用固定交流负载,例如100w,频率实际测得f1,110w时,频率测得f2,计算小区段的斜率,通过多次测量校正,最后得到的结果会很准确。

低精度:
按照计算格式来即可:
在这里插入图片描述
使用8012测量10组以上的功率、电流,可评论获取代码

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MECHT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值