简 介: 测试了基于HALL原理的电流传感器ACS712,验证了它的基本功能,测试了这款5A容量的电流传感器的实际测量电流的范围。实际上比它的标称值大了一倍多。

关键词: HALL,霍尔,ACS712电流传感器

▌电流传感器模块 ACS712


  电流 传感器 在工程应用和科学研究中被广泛应用。在 如何进行电流测量 - NI 中,给出了关于电流检测的基本方法方法:

  • 基于电磁学方法:与早期的动圈式(达松瓦尔)仪表有关系
  • 基于电学方法:主要与欧姆定律有关系

  下面是从TB购买到的 ACS712ELCTR-05A 电流 传感器 模块 (¥:8.80: - 4.80),来初步检测该模块的基本性能。

▲ ACS712 模块

1、模块特点

  √ □ 电流 传感器 芯片:ACS712ELC-05B;

  √ □ 插针5V供电,板载电源指示灯;

  √ □ 模块可以测量正负5安电流,对应模拟量输出185mV/A;

  √ □ 没有检测电流通过时,输出的的电压是VCC/2;

  √ □ PCB板子尺寸:31(mm)x13(mm);

  注: ACS712 是基于霍尔检测的原理,使用时请尽量避免磁场对此造成影响!

2、IC ACS712

  Fully Integrated, Hall Effect-Based Linear Current Sensor IC with 2.1 kVRMS Isolation and a Low-Resistance Current Conductor 使得ACS712的数据手册。其中给出了它的基本特性。

  • 频率响应:80kHz
  • 输出误差:1.5%
  • 内部电阻:1.2毫欧
  • 工作电压:+5.0V

▲ 基本应用电路

▲ 内部功能框图

▲ 通过外部运放将输出信号的灵敏度增加

▲ 芯片的管脚定义

▌基本功能测试


1、静态测试

测量基本参数:
工作电压:+5.003V
工作电流:14mA
输出电压:2.4940V

▲ 模块加电(+5V)之后

2、测量直流电流输出

  由 DH1766线性三路可编程直流电源 产生0~ 31V的直流电压,施加在5.1Ω的功率上产生0 ~ 6A左右的电流。测量ACS712模块的输出。

▲ 输出电流电压的可编程直流电源 DH1766

测量方式:
电流测量:由DH1766读出输出电流;
输出电压:使用FLUKE45测量输出电压;

(1)正向电流测量

  如下显示了电流正向输入和模块输出信号。

【Ⅰ.数据曲线】

▲ 输入电流与输出电压

【Ⅱ.测试数据】
idim=[0.0000,0.1140,0.2337,0.3503,0.4668,0.5827,0.6995,0.8163,0.9334,1.0500,1.1674,1.2847,1.4016,1.5180,1.6351,1.7531,1.8722,1.9905,2.1092,2.2276,2.3452,2.4626,2.5810,2.6990,2.8174,2.9361,3.0544,3.1722,3.2907,3.4089,3.5271,3.6455,3.7643,3.8823,4.0006,4.1189,4.2363,4.3543,4.4720,4.5892,4.7073,4.8254,4.9427,5.0596,5.1771,5.2946,5.4141,5.5311,5.6502,5.7692]
vdim=[2.4996,2.5219,2.5437,2.5656,2.5878,2.6088,2.6301,2.6520,2.6736,2.6954,2.7170,2.7389,2.7607,2.7822,2.8044,2.8259,2.8480,2.8700,2.8918,2.9141,2.9366,2.9586,2.9806,3.0021,3.0228,3.0454,3.0673,3.0897,3.1114,3.1332,3.1550,3.1769,3.1989,3.2205,3.2423,3.2641,3.2860,3.3080,3.3298,3.3518,3.3735,3.3953,3.4171,3.4393,3.4608,3.4825,3.5043,3.5259,3.5478,3.5695]
【Ⅲ.直线拟合】

Vout=0.1854I+2.5009V_{out} = 0.1854I + 2.5009Vout​=0.1854I+2.5009

(2)反向电流测量

  下图显示了电流反向输入的时候,输入电流与输出电压信号。

【Ⅰ.测试曲线】

▲ 输入电流与输出电压

【Ⅱ.测试数据】
idim=[0.0000,0.1130,0.2317,0.3476,0.4629,0.5788,0.6948,0.8111,0.9268,1.0435,1.1603,1.2761,1.3922,1.5075,1.6232,1.7397,1.8571,1.9731,2.0904,2.2081,2.3303,2.4496,2.5674,2.6856,2.8034,2.9202,3.0378,3.1557,3.2736,3.3925,3.5101,3.6295,3.7484,3.8671,3.9853,4.1048,4.2239,4.3417,4.4601,4.5805,4.6995,4.8198,4.9382,5.0572,5.1778,5.2958,5.4160,5.5345,5.6534,5.7736]
vdim=[2.5003,2.4780,2.4570,2.4354,2.4142,2.3928,2.3711,2.3497,2.3281,2.3065,2.2847,2.2632,2.2417,2.2202,2.1984,2.1770,2.1550,2.1335,2.1114,2.0896,2.0667,2.0447,2.0226,2.0008,1.9789,1.9575,1.9360,1.9137,1.8914,1.8693,1.8469,1.8247,1.8026,1.7806,1.7585,1.7361,1.7140,1.6918,1.6693,1.6465,1.6244,1.6018,1.5796,1.5575,1.5348,1.5127,1.4901,1.4679,1.4455,1.4227]
【Ⅲ.直线拟合】

Vout=−0.1865I+2.5011V_{out} = - 0.1865I + 2.5011Vout​=−0.1865I+2.5011

(3)将上面两个测量结果合并

▲ 测量电流与输出电压

  线性拟合后的公式:Vout=0.18592I+2.49939V_{out} = 0.18592I + 2.49939Vout​=0.18592I+2.49939

3、测量电流范围极限

  根据上面测测量线性拟合,如果按照+5V的范围,那么理论上该模块可以测量的电流范围应该是:Imax⁡=2.50.18592=13.44AI_{\max } = {{2.5} \over {0.18592}} = 13.44AImax​=0.185922.5​=13.44A

  那么,增加输入电流,测试输入输出的关系。

(1)改造负载

  在原有的5Ω的基础上,再并联上两个5Ω的电阻,形成 5/3=1.667Ω5/3 = 1.667\Omega5/3=1.667Ω。考虑到线路其它部分的阻抗,整个回路的电阻大约为2欧姆左右。

(2)测量数据

  设置电压范围为 0V~19V ,便可以获得±10A的电流。如下是测量得到的数据曲线。

▲ 输入电流与输出电压

  输入输出之间的线性拟合公式为:

UOut=0.1855I+2.497U_{Out} = 0.1855I + 2.497UOut​=0.1855I+2.497

  从上面测量结果来看。在±10A左右,输入与输出之间仍然呈现出线性关系。

▌动态特性测量


  测量模块测量电流信号的动态特性。

1.测量方法

  利用DG1062产生峰峰值为8V的方波信号,驱动AOT254L功率MOS管。带动2.5Ω电阻。

  下面是MOS管的驱动电压与电流信号。

▲ MOS驱动信号(蓝色)与电流信号(青色)

  由于只是简单的测试,没有进行良好的共地,所以在信号的上升与下降沿出现很多的振荡信号。

  分析电流信号的变化,可以看ACS712输出电压的响应情况。

  如下是在 ACS712数据手册 给出了ACS712的输出信号变化情况。

▲ 数据手册中给出的ACS712的电流响应曲线


  ■ 相关文献链接:

  • 如何进行电流测量 - NI
  • ACS712ELCTR-05A 电流传感器模块
  • Fully Integrated, Hall Effect-Based Linear Current Sensor IC with 2.1 kVRMS Isolation and a Low-Resistance Current Conductor
  • DH1766线性三路可编程直流电源

▌附件文件


1、测量模块特性程序

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2021-04-24
#
# Note:
#============================================================from headm import *
from tsmodule.tsvisa        import *
from tsmodule.tsstm32       import *vset = linspace(0, 31, 50)
vdim = []
idim = []for v in vset:dh1766volt(v)time.sleep(1.5)meter = meterval()vdim.append(meter[0])curr = dh1766curr()idim.append(curr)printff(v, meter[0], curr)tspsave('meas', idim=idim, vdim=vdim)dh1766volt(10)plt.plot(idim, vdim)
plt.xlabel("Current(A)")
plt.ylabel("Voltage(V)")
plt.grid(True)
plt.tight_layout()
plt.show()#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

2.对于测量结果进行线性拟合

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY                     -- by Dr. ZhuoQing 2021-04-24
#
# Note:
#============================================================from headm import *
from scipy.optimize        import curve_fitidim0, vdim0 = tspload('meas1', 'idim', 'vdim')
idim1, vdim1 = tspload('meas2', 'idim', 'vdim')def linefun(x, a, b):return a*x + bx1 = list(idim0)
y1 = list(vdim0)
x2 = [-x for x in list(idim1)]
y2 = list(vdim1)x1.extend(x2)
y1.extend(y2)printf(x1, y1)x = array(x1)
y = array(y1)
param = (1, 0)
param, conv = curve_fit(linefun, x, y, p0=param)
printf(param)plt.plot(x1, y1)
plt.xlabel("Current(A)")
plt.ylabel("Voltage(A)")
plt.grid(True)
plt.tight_layout()
plt.show()#------------------------------------------------------------
#        END OF FILE : TEST2.PY
#============================================================

ACS712模块 ACS712ELCTR-05A电流传感器模块相关推荐

  1. php 5.2 模块路径,5.2 模块和操作

    # 模块和操作 [上一页](# "上一页")[下一页](# "下一页") ThinkPHP采用模块和操作的方式来执行,首先,用户的请求会通过入口文件生成一个应用 ...

  2. 简述python中怎样导入模块_Python中导入模块的两种模式,import

    import import pandas import pandas as pd 使用函数方式:.(),或者.() 比如 pandas.read_csv("data/stock.csv&qu ...

  3. 龙邱 MPU9250 模块接口 | 基于ESP32模块

    简 介: 制作了MPU9250的转接接口,并利用舵机带动起旋转测量了模块测量角度功能. 关键词: MPU9250,ESP32 #mermaid-svg-dGY7dbxoXuc3EI5H {font-f ...

  4. py文件 添加模块映射_Python模块的定义,模块的导入,__name__用法实例分析

    本文实例讲述了Python模块的定义,模块的导入,__name__用法.分享给大家供大家参考,具体如下: 相关内容: 什么是模块 模块的导入 模块的导入 自模块的导入 同级目录导入 不同级目录导入 目 ...

  5. IntelliJ-将Java项目/模块转换为Maven项目/模块

    本文翻译自:IntelliJ - Convert a Java project/module into a Maven project/module I have a project on Bitbu ...

  6. 电气simulink常用模块_16种常用模块电路分析,电气工程师的必备

    电路图一大张,看似复杂,但也都是由一小块一小块的功能模块组成的.因此要根据大的功能先划分成块,再在块里面看是通过什么电路形式实现的,有些起辅助作用,有些起主要作用.下面小编给大家整理了16种常用的模块 ...

  7. python3 模块编写_python3 _pickle模块详解

    python3 中cpickle更名为_pickle,pickle模块由python编写,_pickle有C编写. python程序运行中得到了一些字符串,列表,字典等数据,想要长久的保存下来,方便以 ...

  8. python怎么导入时间-python模块导入和time模块

    1.模块格式 为了方便管理模块,python中又引了包(Package)这个概念.每个包下面都有一个__init__.py文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是 ...

  9. python必学的模块_Python常用的模块

    模块和包 1.1模块介绍模块定义:一系列功能的集合体 模块使用: import导入模块 或者 from ... import... 导入模块 模块分类:内置模块 自定义模块 第三方模块 模块加载顺序: ...

最新文章

  1. 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui
  2. 林华达视角-概率图模型与计算机视觉
  3. es6中的块级作用域
  4. 对一道基础string题及其变式题的思考与解析
  5. Java Web:session
  6. 从linux使用sz命令下载大于4g的文件到windows
  7. 每天花30分钟看OGRE--(13)Ogre的渲染流程,在渲染时材质是如何起作用的,材质加载和解析...
  8. Receive 163 mails
  9. Activiti 7 配置及相关流程一站式介绍(包含基础流程及网关应用)
  10. python绝对值_如何在Python中获得数字的绝对值?
  11. Madoko - Markdown 在线编辑器
  12. js调用打印机打印网页字体总是缩小一号的解决方法
  13. 已有企业认证的微信公众号快速创建一个企业小程序
  14. 数模新版视频课程第11讲.时间序列分析
  15. 【算法】贪婪算法——每步都是最优解
  16. NOIP2016呵呵记
  17. web前端开发学习路线
  18. 程序员:不要自称码农
  19. h5开启摄像头拍照+腾讯云接口人脸验证
  20. 《流血的仕途-李斯与秦帝国》——读后感

热门文章

  1. 微商当革新,微电商将立
  2. 解决Sqlite UTF-8中文数据格式在DOS窗口下中文乱码
  3. 做网站应用应注意的那几点
  4. 32.突然弹出很多IE窗口怎么办:
  5. 学习C#中调用COM,后期绑定(以及对WinHttp COM对象的C#封装)
  6. SDN/NFV:现状,挑战和未来
  7. Echarts的坐标调整,调整内部网格和外部的间隔
  8. C#获取存储过程返回值和输出参数值的方法
  9. 网络之NSURLSession
  10. Java - 错误: quot;java.lang.ArrayIndexOutOfBoundsException: length=1; index=1quot;