这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【Let'sdo第1期-功率检测与控制系统DIY】-基础任务3-INA219读取

共1条 1/1 1 跳转至

【Let'sdo第1期-功率检测与控制系统DIY】-基础任务3-INA219读取&显示-OrangeBig大桔

菜鸟
2025-05-21 14:37:35     打赏

基础任务3-------INA219测量电压电流

欢迎来到基础任务3

这篇文章对数字的显示有不同的用法

希望能够帮助到你

本节所有代码均已放置在末尾附件中~


图片6.png


一、配置引脚

INA219详细参数请参考上一篇开箱文,

对于接线和配置已经很清楚,这里不赘述

重新用cubemx打开刚刚配置的文件的.ioc文件,

通信栏中任选一组i2c进行使能,这里我选择了i2c1

配置为I2C

图片9.png


图片34.png

  

参数基本上保持默认

右侧选择I2C1右侧map图会高亮被自动配置的引脚,

如果你不需要重新映射,直接将INA219的通讯接口接入即可

(如果需要指定重映射引脚,请先配置引脚)



屏幕截图 2025-05-21 140121.png



图片35.png


生成后,加入INA219驱动代码(驱动代码在本章最后)

值得注意的是,模块上有拨动开关,其拨动开关用于配置模块的I2C地址。

该模块提供了4个可通过拨码开关配置的I2C地址,

分别是0x40、0x41、0x44、0x45。

在实际应用中,如果一个系统中有多个I2C设备,

为了避免地址冲突,就可以通过拨动SEN0291上的开关来设置不同的I2C地址,

让主控能够正确识别该功率计模块

屏幕截图 2025-05-21 141333.png

我这里默认的0x40


需要将传感器上的拨动开关拨到0

微信图片_2025-05-21_140940_883.jpg


千万别忘了配置路径,与上一篇OLED配置相同,这里不赘述


二、调用数据并显示--sprintf函数的妙用

在main函数中添加


INA219_Init(&hi2c1);                //使能


值得一提的是,对于数据的显示,我使用的

sprintf函数,如下

sprintf(current_OLED, "%.2f", current);//舍弃小数点后两位直接使用  %.2f

可以将数据直接写入字符型数组中,

数据长度和浮点数,

小数点什么的就不需要担心影响显示,

对于省略小数点后两位更是手拿把掐~~

2296994498.jpeg


使用方式与printf相似。

我之前使用过数字显示,很麻烦且需要控制位数,

小数点位置,超出范围显示就会异常

变得异常麻烦~


#include <stdio.h>                 //sprintf引用


    char voltage_OLED[30];        //负载电压
    char current_OLED[30];        //总线电流
    char power_OLED[30];         //负载功率

  while (1)
  {


       float busVoltage = INA219_GetBusVoltage_V();
       float shuntVoltage = INA219_GetShuntVoltage_mV();
       float current = INA219_GetCurrent_mA();
       float power = INA219_GetPower_mW();

// OLED显示
       sprintf(current_OLED, "%.2f", current);
       OLED_ShowString(45,16,current_OLED,16,1);

       sprintf(voltage_OLED, "%.2f", busVoltage);
       OLED_ShowString(45,32,voltage_OLED,16,0);

       sprintf(power_OLED, "%.2f", power);
       OLED_ShowString(45,48,power_OLED,16,1);

       OLED_Refresh();
       HAL_Delay(1000);

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }



最终效果如下

2fa81e8cef2f.mp4.gif


上述驱动代码放置于此,请结合上述使用

此附件不需要支付积分~

INA219.zip


以上就是环境搭建与基础任务的全部内容,希望能够帮助到你

如果你觉得这篇文章还不错的话,


麻烦点个赞支持一下,


你的鼓励将会是我进步最大的动力!

  图片41.png

这里是大桔,我们下一篇见!






关键词: 功率检测与控制系统     基础任务     OLED     INA21    

共1条 1/1 1 跳转至

回复

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