发新帖本帖赏金 10.00元(功能说明)我要提问
12下一页
返回列表
打印
[应用方案]

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

[复制链接]
14478|37
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 小叶三千 于 2021-5-13 22:30 编辑

#申请原创#  @21ic小跑堂
   我们通常使用的可调电源,普通的可调电源一般会有两个内容的显示,一个是当前调至的电压值,一个是当前用电器的电流值。下面介绍一下使用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_INA226.c


2. INA226的读写
INA22610个寄存器,其中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,采样时间为204*128,设置模式为分流和总线连续模式。


五.实物调试

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


PCB工程.rar

3.67 MB

ina226功率表.rar

98.97 KB

ina226.pdf

1.26 MB

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2021-05-14
理由:恭喜通过原创文章审核!请多多加油哦!

沙发
Harvard| | 2021-5-13 23:41 | 只看该作者
不错 明星单片机003  .原来是个最具性价比的方案.. 现在尴尬了

使用特权

评论回复
板凳
小叶三千|  楼主 | 2021-5-14 08:09 | 只看该作者
Harvard 发表于 2021-5-13 23:41
不错 明星单片机003  .原来是个最具性价比的方案.. 现在尴尬了

哎,现在贵的要死

使用特权

评论回复
地板
caojihui521| | 2021-5-14 21:55 | 只看该作者
性价比高,精度看着也可以啊,也打算搞个玩玩

使用特权

评论回复
5
小叶三千|  楼主 | 2021-5-15 11:06 | 只看该作者
caojihui521 发表于 2021-5-14 21:55
性价比高,精度看着也可以啊,也打算搞个玩玩

mA没问题,uA好像就不行了,我也不知道是我调参数的问题,还是这个芯片的精度问题

使用特权

评论回复
6
caojihui521| | 2021-5-15 20:06 | 只看该作者
小叶三千 发表于 2021-5-15 11:06
mA没问题,uA好像就不行了,我也不知道是我调参数的问题,还是这个芯片的精度问题 ...

估计电压准一些,电流误差,可能是电阻精度或者噪音,调整一下试试看

使用特权

评论回复
7
yangjiaxu| | 2021-5-15 21:15 | 只看该作者
不错不错 很奈斯

使用特权

评论回复
8
小叶三千|  楼主 | 2021-5-16 10:50 | 只看该作者
caojihui521 发表于 2021-5-15 20:06
估计电压准一些,电流误差,可能是电阻精度或者噪音,调整一下试试看

感觉像是参数调试的问题

使用特权

评论回复
评论
caojihui521 2021-5-17 10:53 回复TA
也是有可能的,比如CT bit, 1.25mv 的LSB ,都可以改改试试 
9
tianran08| | 2021-5-18 10:16 | 只看该作者
你那一排LED打算用来做什么用

使用特权

评论回复
10
小叶三千|  楼主 | 2021-5-18 10:35 | 只看该作者
tianran08 发表于 2021-5-18 10:16
你那一排LED打算用来做什么用

哪有一排LED,那是测试电流的负载。。。

使用特权

评论回复
11
leshak| | 2021-5-18 17:09 | 只看该作者
谢谢分享

使用特权

评论回复
12
tianxj01| | 2021-5-18 18:23 | 只看该作者
这个还是不错的,就是新唐003现在很尴尬了。

使用特权

评论回复
13
风动随心| | 2021-6-6 21:02 | 只看该作者
看着不错  有没有那位大佬上传一下可直接烧录的hex文件

使用特权

评论回复
14
小叶三千|  楼主 | 2021-6-7 08:45 | 只看该作者
风动随心 发表于 2021-6-6 21:02
看着不错  有没有那位大佬上传一下可直接烧录的hex文件

要什么hex文件

使用特权

评论回复
15
风动随心| | 2021-6-7 22:39 | 只看该作者

想制作一个板子玩一下,但是不会代码啊!要是有可直接烧录的文件,就可以打个板用了

使用特权

评论回复
16
小叶三千|  楼主 | 2021-6-8 08:17 | 只看该作者
风动随心 发表于 2021-6-7 22:39
想制作一个板子玩一下,但是不会代码啊!要是有可直接烧录的文件,就可以打个板用了 ...

直接把代码烧进去就行啊

使用特权

评论回复
17
单片小菜| | 2021-6-8 16:07 | 只看该作者
楼主是做的双面板还是四层板?感谢分享。

使用特权

评论回复
18
小叶三千|  楼主 | 2021-6-8 19:27 | 只看该作者
小叶三千 发表于 2021-6-8 08:17
直接把代码烧进去就行啊

不客气,简单的小玩意,双层板就够了哈

使用特权

评论回复
19
NIMENG2015| | 2021-12-28 16:30 | 只看该作者
不错,有空也做一个

使用特权

评论回复
20
dragon20100708| | 2021-12-30 08:58 | 只看该作者
不错,有空也做一个

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:清智科技嵌入式工程师
简介:单片机嵌入式底层开发,汽车电子

43

主题

497

帖子

16

粉丝