一.所需硬件
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_INA226.c
2. INA226的读写
INA226有10个寄存器,个中4个是可读可写,6个只能读取
每个寄存器的意义请看下图,程序里也有。
之后便是INA226的读寄存器和写寄存器
INA226_data.Read_Data[1]是输入的电压值,也便是iread(0x80,2),读取的0x80的地址(本机地址),0x02是读取的寄存器,由手册可知,0x02代表的是总线电压。如果不准的话,可以变动后面的系数1.25。我这里觉得还挺准的。
INA226_data.Read_Data[0是输入的电流值,也便是iread(0x80,4),0x04是读取的寄存器,由手册可知,0x04代表的是电流,INA226_data.Var_Iref是系数,也是同理,校准用的。
3. OK,紧张的已经搞定,接下来便是OLED12864的驱动了,我利用的是大字体显示,本来屏幕就小,那么字就大一点。
下图是电流和电压的数值显示
4. 基本差不多了,还有把稳的是初始化的时候,INA226须要写入采样韶光和电流的校准值
寄存器0x05,校准寄存器,0x0036是怎么算出来的呢,手册上面有公式。
公式:0.00512/( 电流分辨率0.001A 取样电阻0.1)=51.2=0x0033
之后觉得不是很准,我把数值上调到了=0x0036
寄存器0x00,采样韶光寄存器。设置转换韶光204us,求均匀值次数128,采样韶光为204128,设置模式为分流和总线连续模式。
五.实物调试
接下来便是把程序烧录到单片机中,进行调试了,下图是我制作完成的实物,大家凑合看吧,看着有点Low,哈哈,调试了好永劫光,也换过好多硬件调试,上面是我制作的履历心得,分享给大家。
原标题:基于新唐单片机的电压电流表头制作(INA226)原作者:小叶三千本文为21ic有奖征文作品,详情请见21ic论坛活动专区:第二届万元红包——蓝V达人有奖征文活动,如果您也有兴趣参与征文,欢迎进入论坛参与活动~







