这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » Let'sdo2025第一期DIY功率检测与控制系统完成贴

共3条 1/1 1 跳转至

Let'sdo2025第一期DIY功率检测与控制系统完成贴

助工
2025-06-20 23:09:21     打赏

任务目标

使用开发板实现对INA219的负载测量5V,12V电压电流并显示在OLED

程序框图

connecte.drawio.png

INA219 是一款具备 I2C 或 SMBUS 兼容接口的分流器和功率监测计。该器件监测分流器电压降和总线电源电压,转换次数和滤波选项可通过编程设定。可编程校准值与内部乘法器相结合,支持直接读取电流值,电压与功率

hwspec.PNG

注意到芯片的输入范围。不要超过这个最大值 下图文档上提供一个推荐值

recom.PNG

推荐的VCC是3.3V  。然后IN+ 输入在12V正好是我们12V稳压电源的输出 。这里面我第一次给Vs的输入是板子上的5V,给INA219供电。刚开始还好用,只是在继电器多次打开,电机开始工作后。芯片烧坏了。怀疑是Vs在继电器打开过程中超过了6V,导致芯片不能正常工作了 .

1. INA219的读取 INA219器件的一个重要特性是:必须根据系统需求进行编程配置后,才能测量电流或功率。该器件同时测量IN+和IN-输入引脚之间的差分电压,以及IN-引脚上的电压。为了使器件能够正确报告电流和功率值,用户必须完成以下两项关键配置:
设置电流寄存器(04h)的分辨率确定电路中分流电阻(RSHUNT)的阻值(RSHUNT =0.1欧姆)这两个参数(电流寄存器最低有效位Current_LSB和分流电阻值)共同用于计算校准寄存器(Calibration Register)的值。器件正是通过这个校准寄存器,基于测量的分流电压和总线电压来计算对应的电流和功率值。
重要工作流程说明:
在完成校准寄存器编程之前,电流寄存器(04h)和功率寄存器(03h)将始终保持为零值。校准寄存器编程完成后,电流寄存器和功率寄存器会根据测量的分流电压和总线电压自动更新其数值。

#define INA219_CONFIG_value	INA219_CONFIG_BVOLTAGERANGE_32V|\
INA219_CONFIG_GAIN_8_320MV|INA219_CONFIG_BADCRES_12BIT|\
INA219_CONFIG_SADCRES_12BIT_1S_532US|\
INA219_CONFIG_MODE_SANDBVOLT_CONTINUOUS
[object Object]

对这几个寄存器进行读取 可以读到电压,电流,还有功率

unsigned int INA_GET_Voltage_MV(void)	{	
        unsigned char data_temp[2];
	INA_Read_Byte_s(0x02,data_temp);	
        return (int)((((data_temp[0]<<8)+data_temp[1]) >> 3)*4);	
}
        
s16 INA_GET_Current_MA(void){
	
	s16 temp;
	INA_REG_Write(INA219_REG_CONFIG,INA219_CONFIG_value);
	INA_Read_Byte_s(INA219_REG_CURRENT,data_temp);
	
	temp=(((data_temp[0]<<8)+data_temp[1]));	
        //temp=(((data_temp[0]<<8)+data_temp[1]))*IAN_I_LSB;
	if(temp<=0x7fff) return (s16)temp;	else
	{		//temp=-temp;
		return (s16) -temp*IAN_I_LSB;
	}
	

}
        


 unsigned int INA_GET_Power_MW(void){	
        unsigned char data_temp[2];
	INA_Read_Byte_s(INA219_REG_POWER,data_temp);	
        return (int)(((data_temp[0]<<8)+data_temp[1])*INA_Power_LSB);	
}
[object Object]

当我们接入12V 100欧姆的电阻 看一下它的电压,电流,功率情况

120.png

接入 5V 电源与小电机然后看一下结果 

dianji2.png

进一步的显示效果,利用st 生态环境软件,stm32cube monitor 做了一个显示电流电压,功率的页面

此图为12V电压输入,接入100欧姆电阻负载

12V100o.png

5V 供电,电机作为负载

5Vm.png

在实验中出现的问题

在使用继电器与开关在让电机工作的一瞬间。INA219 这颗芯片很容易就被击穿损坏掉这边挂掉了3颗芯片 。第一颗,INA219  3.3V与 GND 短路了。芯片非常的热 第二片 。 就是不工作了。也没有发热,发送IIC 信号没有响应 第三片。 开关打开一瞬间 也不工作了,状态与第二片一样。观察了一下 第二片与 第三片与那个原始版的芯片不一样。原版的在芯片上会有一个TI的标识,这两片上没有。不知道是不是买到假的了 。

分析原因

1. 接线没接好。导致电机在开机中有一个反向电压,可能损坏了这个芯片 

2.电机的浪涌,导致芯片损坏 

s.png

在群里有讨论在电机两端加 一个104 电容。这个电机上已经有一个电容了 。这个方法不知道是否可以解决

还有一个是在电机上并一个二极管 。到时回来试试。

结束

非常感谢EEPW与Digikey组办的这次活动。第一次接触电机控制,有学习很多之前没用过工具软件与编程方法,时间有限,进阶任务没有完成,等新的INA219 到货后完成打嗝模式等后续任务。在完成任务的过程,跟随视频学习以及在群里同学讨论中学到了不少知识,开拓了视野。希望以后的活动越办越好



菜鸟
2025-06-21 01:44:27     打赏
2楼

估计是买到假的了


专家
2025-06-21 18:02:19     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]