您现在的位置是:首页 > 科技前沿

基于新唐单片机的电压电流表头制作(INA226)

智慧创新站 2025-05-21【科技前沿】240人已围观

简介我们通常使用的可调电源,普通的可调电源一般会有两个内容的显示,一个是当前调至的电压值,一个是当前用电器的电流值。下面介绍一下使用INA226的功率芯片制作这个既能显示电压值,又能显示电流值的表头制作。一.所需硬件1.INA226功率芯片,这个是采集数据的主要器件,下面会有介绍。2.屏幕(这里使用的O...

我们通常使用的可调电源,普通的可调电源一般会有两个内容的显示,一个是当前调至的电压值,一个是当前用电器的电流值。下面介绍一下使用INA226的功率芯片制作这个既能显示电压值,又能显示电流值的表头制作。

一.所需硬件

1.INA226功率芯片,这个是采集数据的主要器件,下面会有介绍。

2.屏幕(这里使用的OLED12864-7线SPI),用于显示电压电流值。

3.单片机(这里使用的是新唐N76E003),因为我们要把采集的数据转换成我们所需要的数值显示在屏幕上,所以不需要太强大的MCU,一般的最小的51即可。

4.采样电阻——100mΩ。INA226需要用采样电阻来获取电流值,所以这个电阻尽量选择精度高一点的,功率大一点的。

5.剩下的就是一些单片机的基本外设了,电容、电阻等等就不多说了。

二.INA226简介

直接放截图吧,更详细的内容看附件的芯片手册。


三.硬件PCB

根据INA226的手册,简单的画了一个PCB,将单片机、OLED屏也集成到了PCB中,AD工程请见附件。

原理图:

PCB图:

四.软件编写

1.INA226驱动,IIC通信,需要在单片机进行IIC驱动编写,具体可见附件的IIC_

2.INA226的读写

INA226有10个寄存器,其中4个是可读可写,6个只能读取

每个寄存器的意义请看下图,程序里也有。

之后就是INA226的读寄存器和写寄存器

INA226__Data[1]是输入的电压值,也就是iread(0x80,2),读取的0x80的地址(本机地址),0x02是读取的寄存器,由手册可知,0x02代表的是总线电压。如果不准的话,可以更改后面的系数1.25。我这里感觉还挺准的。

INA226__Data[0是输入的电流值,也就是iread(0x80,4),0x04是读取的寄存器,由手册可知,0x04代表的是电流,INA226__Iref是系数,也是同理,校准用的。

3.OK,主要的已经搞定,接下来就是OLED12864的驱动了,我使用的是大字体显示,本来屏幕就小,那么字就大一点。

下图是电流和电压的数值显示

4.基本差不多了,还有注意的是初始化的时候,INA226需要写入采样时间和电流的校准值

寄存器0x05,校准寄存器,0x0036是怎么算出来的呢,手册上面有公式。

公式:0.00512/(电流分辨率0.001A*取样电阻0.1)=51.2=0x0033

之后感觉不是很准,我把数值上调到了=0x0036

寄存器0x00,采样时间寄存器。设置转换时间204us,求平均值次数128,采样时间为204*128,设置模式为分流和总线连续模式。

五.实物调试

接下来就是把程序烧录到单片机中,进行调试了,下图是我制作完成的实物,大家凑合看吧,看着有点Low,哈哈,调试了好长时间,也换过好多硬件调试,上面是我制作的经验心得,分享给大家。

很赞哦!(189)