精华内容
下载资源
问答
  • acs712电流检测怎么用
    千次阅读
    2021-05-23 07:04:00

    #define uchar unsigned char//宏定义无符号字符型

    #define uint unsigned int  //宏定义无符号整型

    #define FOSC 11059200L

    #define BAUD  9600

    #define ADC_POWER   0x80            //ADC 电源控制位

    #define ADC_FLAG    0x10            //ADC 转换结束标志位

    #define ADC_START   0x08            //ADC 开始转换控制位

    #define ADC_SPEEDLL 0x00            //1080个时钟周期转换一次

    #define ADC_SPEEDL  0x20            //810 个时钟周期转换一次

    #define ADC_SPEEDH  0x40            //540个时钟周期转换一次

    #define ADC_SPEEDHH 0x60            //270个时钟周期转换一次

    sfr ADC_DATA=0xc6;           //70个时钟周期转换一次

    void display(void);                  //显示函数

    void t_to_dis(uint num);

    #define DUAN P2                   //P0口控制段

    #define WEI  P1                   //P2口控制位

    /********************************************************************

    初始定义

    *********************************************************************/

    //数码管显示段码

    code uchar seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0XBF};

    //数码管位控制端

    sbit wei1=P1^0;

    sbit wei2=P1^1;

    sbit wei3=P1^2;

    sbit wei4=P1^3;

    //继电器输出控制端

    sbit OUT=P3^7;

    //按键输入控制端

    sbit key1=P3^2;

    sbit key2=P3^3;

    sbit key3=P3^4;

    //两路输入控制端可做ad采样

    sbit IN1=P1^6;

    sbit IN2=P1^5;

    sbit IC=P1^7;

    uchar numb[4];              //定义字符串用于数值转换

    uint tcnt;

    uchar cnt,times,date;

    uint ad,ad2;

    float ad1;

    /********************************************************************

    命令定义

    *********************************************************************/

    #define CMD_IDLE     0         //EEPROM无操作

    #define CMD_READ     1         //读取字节

    #define CMD_PROGRAM  2         //写入字节

    #define CMD_ERASE    3         //擦除字节

    /********************************************************************

    编程周期由晶振决定

    *********************************************************************/

    #define ENABLE_IAP 0X83         //编程周期由晶振决定(如果<12MHZ选用此项)

    #define IAP_ADDRESS 0X0000                      //内部EEPROM地址

    /********************************************************************

    操作函数

    *********************************************************************/

    void IapIdle()

    {

    IAP_CONTR=0;

    IAP_CMD=0;

    IAP_TRIG=0;

    IAP_ADDRH=0X80;

    IAP_ADDRL=0;

    }

    /********************************************************************

    读取一个字节函数

    *********************************************************************/

    uchar IapReadByte(uint addr)

    {

    uchar dat;

    IAP_CONTR=ENABLE_IAP;

    IAP_CMD=CMD_READ;

    IAP_ADDRL=addr;

    IAP_ADDRH=addr>>8;

    IAP_TRIG=0X46;

    IAP_TRIG=0XB9;

    _nop_();

    _nop_();

    _nop_();

    dat=IAP_DATA;

    IapIdle();

    return dat;

    }

    /********************************************************************

    写入一个字节函数

    *********************************************************************/

    void IapProgramByte(uint addr,uchar dat)

    {

    IAP_CONTR=ENABLE_IAP;

    IAP_CMD=CMD_PROGRAM;

    IAP_ADDRL=addr;

    IAP_ADDRH=addr>>8;

    IAP_DATA=dat;

    IAP_TRIG=0X46;

    IAP_TRIG=0XB9;

    _nop_();

    _nop_();

    _nop_();

    IapIdle();

    }

    /********************************************************************

    擦除一个字节函数

    *********************************************************************/

    void IapEraseSector(uint addr)

    {

    IAP_CONTR=ENABLE_IAP;

    IAP_CMD=CMD_ERASE;

    IAP_ADDRL=addr;

    IAP_ADDRH=addr>>8;

    IAP_TRIG=0X46;

    IAP_TRIG=0XB9;

    _nop_();

    _nop_();

    _nop_();

    IapIdle();

    }

    /********************************************************************

    延时函数

    *********************************************************************/

    void delay(uint x)//延时程序 0.1秒

    {

    uint m,n,s;

    for(m=x;m>0;m--)

    for(n=20;n>0;n--)

    for(s=248;s>0;s--);

    }

    /********************************************************************

    AD转换初始化程序

    *********************************************************************/

    void InitADC()

    {

    P1=P1M0|=0xf0;

    P1M1=0x00;

    ADC_DATA=0;        //AD数据寄存器清空

    ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START;//打开AD电源,转换周期XX

    delay(10);                //延时

    }

    /********************************************************************

    AD转换控制程序

    *********************************************************************/

    uint GetADCResult(uchar px)          //转换输出的数据 (PX为通道口)

    {

    uint t;

    ADC_CONTR=ADC_POWER | ADC_SPEEDHH | px | ADC_START;//开始转换

    _nop_();                        //延时一个机器周期

    _nop_();                                                //延时一个机器周期

    _nop_();                                                //延时一个机器周期

    _nop_();                                                //延时一个机器周期

    while (!(ADC_CONTR & ADC_FLAG));//等待转换结束

    ADC_CONTR &= ~ADC_FLAG;       //关闭AD转换

    t=(ADC_DATA<<2)|ADC_LOW2;

    return t;

    }

    /********************************************************************

    IO口初始化函数

    *********************************************************************/

    void init_all(void)

    {

    P2M1=0;

    P2M0=0xff;

    P1M1=0x80;

    P1M0=0x0f;

    P3M1&=0x7f;

    P3M0|=0x80;

    }

    /********************************************************************

    定时器T1初始化

    *********************************************************************/

    void timer0init(void)

    {

    TMOD=0X01;                  //设定定时器工作方式

    TH0 =(655336-1000)/256;

    TL0 =(655336-1000)%256;

    ET0=1;

    TR0=1;

    EA=1;

    }

    /********************************************************************

    主函数

    *********************************************************************/

    void main()

    {

    init_all();         //初始化IO

    timer0init();//定时器初始化

    // InitADC();  //AD初始化

    date=IapReadByte(0);

    while(1)

    {

    c2c9ed493cd281aa86d8a6f5178c4c01.gif [1] [2] 610626052e95c7fbe3d254abc769d9ad.gif

    更多相关内容
  • 使用51单片机ACS712电流检测模块+AD采集芯片实现数字电流表电压表源程序原理图设计资料
  • ACS712 基于霍尔效应的线性模拟电流传感器交互的 Arduino 库。包括直流和 RMS 交流电流测量。支持ACS712-05B、ACS712-20A、ACS712-30A传感器。典型应用包括电机控制、负载检测和管理、开关模式电源和过流故障保护...
  • ACS712 直流/交流电流测量传感器具有量程大、简单易用、体积小巧、无需焊接、精度较高等特点,可用于直流电流和交流电流的测量,电流测量最高值可达20A。该ACS712 传感器电路板在设计上做了高压隔离,确保使用的安全...
  • ACS712 电流传感器

    万次阅读 多人点赞 2021-09-22 21:28:40
    ACS712 电流传感器    ACS712 是基于霍尔效应的电流传感器。 简介    ACS712 框图:    ACS712 引脚如下表,其中IP+IP+IP+和IP−IP-IP−分别是待测电流的流入和流出引脚。VCCVCCVCC和GNDGNDGND是模块供电电压...

    ACS712 电流传感器

       ACS712 是基于霍尔效应的电流传感器。

    简介

       ACS712 框图:
    在这里插入图片描述
       ACS712 引脚如下表,其中 I P + IP+ IP+ I P − IP- IP分别是待测电流的流入和流出引脚。 V C C VCC VCC G N D GND GND是模块供电电压, V I O U T VIOUT VIOUT是模块输出电压值。ACS712将待测的模拟电流转化为模拟电压输出,因此可以将 V I O U T VIOUT VIOUT接入到 A D AD AD,通过 A D AD AD测量出 V I O U T VIOUT VIOUT,由于 V I O U T VIOUT VIOUT和待测电流呈现线性关系,因此可以反向推导出待测电流。

    ACS712测电流是串联到电路里的!!!!

    在这里插入图片描述
       V I O U T VIOUT VIOUT和待测电流呈现线性关系,其具体关系可以参考官网说明书,这里以5A为例:
    在这里插入图片描述

    代码

       其实主要的代码就是 A D C ADC ADC,这里参考正点原子的 A D C ADC ADC代码,以 S T M 32 STM32 STM32为例。博主用了两个 A D C ADC ADC通道,分别是 A D C 1 ADC1 ADC1的通道 5 5 5 8 8 8

    #include "adc.h"
    #include "delay.h"		 
    //	 
    //本程序只供学习使用,未经作者许可,不得用于其它任何用途
    //ALIENTEK STM32F407开发板
    //ADC 驱动代码	   
    //正点原子@ALIENTEK
    //技术论坛:www.openedv.com
    //创建日期:2014/5/6
    //版本:V1.0
    //版权所有,盗版必究。
    //Copyright(C) 广州市星翼电子科技有限公司 2014-2024
    //All rights reserved									  
    // 	
    
    
    //初始化ADC															   
    void  Adc_Init(void)
    {    
    	GPIO_InitTypeDef  GPIO_InitStructure;
    	ADC_CommonInitTypeDef ADC_CommonInitStructure;
    	ADC_InitTypeDef       ADC_InitStructure;
    		
    	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟
    	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOA时钟
    	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //使能ADC1时钟
    	
    	  //先初始化ADC1通道5 IO口
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PA5 通道5
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入
    	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉
    	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化  
    		
    		  //先初始化ADC1通道4 IO口
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;//PA4 通道4
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入
    	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉
    	GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化  
    		
    		
    	 
    	RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE);	  //ADC1复位
    	RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,DISABLE);	//复位结束	 
    	 
    		
    	ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//独立模式
    	ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个时钟
    	ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; //DMA失能
    	ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;//预分频4分频。ADCCLK=PCLK2/4=84/4=21Mhz,ADC时钟最好不要超过36Mhz 
    	ADC_CommonInit(&ADC_CommonInitStructure);//初始化
    		
    	ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式
    	ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非扫描模式	
    	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//关闭连续转换
    	ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发
    	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐	
    		
    		    注意要改!!!!
    	ADC_InitStructure.ADC_NbrOfConversion = 2;//1个转换在规则序列中 也就是只转换规则序列1 
    		
    		
    	ADC_Init(ADC1, &ADC_InitStructure);//ADC初始化
    		
    	 
    	ADC_Cmd(ADC1, ENABLE);//开启AD转换器	
    
    }				  
    //获得ADC值
    //ch: @ref ADC_channels 
    //通道值 0~16取值范围为:ADC_Channel_0~ADC_Channel_16
    //返回值:转换结果
    u16 Get_Adc(u8 ch)   
    {
    	  	//设置指定ADC的规则组通道,一个序列,采样时间
    	ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_480Cycles );	//ADC1,ADC通道,480个周期,提高采样时间可以提高精确度			    
      
    	ADC_SoftwareStartConv(ADC1);		//使能指定的ADC1的软件转换启动功能	
    	 
    	while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
    
    	return ADC_GetConversionValue(ADC1);	//返回最近一次ADC1规则组的转换结果
    }
    //获取通道ch的转换值,取times次,然后平均 
    //ch:通道编号
    //times:获取次数
    //返回值:通道ch的times次转换结果平均值
    u16 Get_Adc_Average(u8 ch,u8 times)
    {
    	u32 temp_val=0;
    	u8 t;
    	for(t=0;t<times;t++)
    	{
    		temp_val+=Get_Adc(ch);
    		delay_ms(5);
    	}
    	return temp_val/times;
    } 
    	 
    
    adcx1=Get_Adc_Average(ADC_Channel_5,2);//获取通道5的转换值,2次取平均
    temp1 = (float)adcx*(3.3/4096);          //获取计算后的带小数的实际电压值,比如3.1111					
    printf("ADC ch5-- %f \r\n",temp1);
    printf("ADC ch5-- %d \r\n",adcx1);
    		
    adcx2=Get_Adc_Average(ADC_Channel_8,2);//获取通道8的转换值,2次取平均
    temp2 = (float)adcx*(3.3/4096);          //获取计算后的带小数的实际电压值,比如3.1111					
    printf("ADC ch8-- %f\r\n",temp2);
    printf("ADC ch8-- %d\r\n",adcx2);	
    

       获取后的 a d c x adcx adcx模拟电压可以通过待测电流和模拟电压的线性关系返推出来,这个就不算了,留给你们把哈哈哈,再强调一遍:

    ACS712测电流是串联到电路里的!!!!

    展开全文
  • Allegro的ACS712电流传感器是基于霍尔效应的线性电流传感器。
  • 基于51单片机+ACS712电流检测模块+AD采集芯片实现数字电流表电压表设计(包含源程序原理图等)
  • 基于51单片机的数字电流表设计,内附有具体实现的PCB图,原理图,源代码以及仿真图和芯片资料。
  • 电流电测电路的原理是基于霍尔传感器设计的,霍尔效应的本质是:固体材料中的载流子在外加磁场中运动时,因为受到洛仑兹力的作用而使轨迹发生偏移,并在材料两侧产生电荷积累,形成垂直于电流方向的电场,最终使...
  • 首先介绍一下我使用的板子和外设,首先是正点原子的ministm32,mcu为stm32f103rct6,使用的电流传感器为acs712霍尔电流传感器。 然后想要测量电流数据你还得需要一个电流互感器,我因为需要测量的是大电流所以...

    首先介绍一下我使用的板子和外设,首先是正点原子的ministm32,mcu为stm32f103rct6,使用的电流传感器为acs712霍尔电流传感器。

    然后想要测量电流数据你还得需要一个电流互感器,我因为需要测量的是大电流所以购买的是转化比比较低的版本。

    然后说说电流互感器的使用方法,一开始我直接将整根电线穿进去,发现没有电流的变化,后来经过老师指导发现你需要将插座导线的保护壳拆开,单独测量火线的值

    如图所示,我购买的是10/5A,穿心3匝(如果1匝则直接将火线穿过即可),所以需要多绕两圈(棕色的是火线),然后将电流互感器上的导线接到霍尔电流传感器上(接哪一头影响不大,可所以接)。

    然后讲讲霍尔电流测量电流的方法,理论上就是通过测量电流值,输出电压值,然后我们可以根据adc读取到的电压值结合原理图来反推电流值。如图所示(不同量程的图不同,根据自己购买的型号进行换算),举个例子,如果adc读取到3v电压,那么测量到的电流值大约为5A:

     说完原理我们再来通过stm32cubemx来生成相关代码,这里我直接转载西瓜大大的文章,根据他的教程来即可生成代码

    STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx_四臂西瓜的博客-CSDN博客_基于stm32的交流信号采集程序

    在tim3的设置教程中根据自己需要的采样率进行修改,比如我需要的是10Khz,则将其修改为7200-1

    这里只贴上需要修改的代码:分别在main.c的51和107行

    uint16_t adc_buff[1000];//存放ADC采集的数据
    	HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc_buff, 1000); //让ADC1去采集1000个数,存放到adc_buff数组里
    	while (!AdcConvEnd)	;	//等待转换完毕
    	for (uint16_t i = 0; i < 1000; i++)
    	{
    		  //printf("\r\n电流数据为:\r\n");		  
    			printf("\r%.5f %.3f\r\n",i*0.00001,adc_buff[i] * 3.3 / 4095*5 - 2.480*5); //数据打印,查看结果
    	}

    则打印出来的0电流(即排插没有接其他电器)时数据如下,左边是时间,单位为s,右边为电流数据,单位为A,记得将波特率设置为115200,否则会乱码。

     然后通过Python打印

    import matplotlib.pyplot as plt
    import numpy as np
    
    data = np.loadtxt('computer.txt')
    
    plt.plot(data[:,0],data[:,1])
    plt.xlabel("Time(s)")
    plt.ylabel("Current(A)")
    plt.show()

    图片如下

    该图为笔记本电脑充电时的数据。

    测试完毕。

    展开全文
  • 基于ACS712的直流电机电流监测系统的设计;电流检测
  • ACS712电流传感器说明书ACS712电流传感器说明书
  • 就是一个电流检测芯片的datasheet,说不定能的到哦
  • 浅谈霍尔电流传感器ACS785/ACS712系列电流检测方式

    万次阅读 多人点赞 2018-11-22 15:36:04
    电流检测方式 一、检测电阻+运放 优势: 成本低、精度较高、体积小 劣势: 温漂较大,精密电阻的选择较难,无隔离效果。 分析: 这两种拓扑结构,都存在一定的风险性,低端检测电路易对地线造成干扰;高端检测,电阻...

     

     

    电流检测方式
    一、检测电阻+运放
    优势:
    成本低、精度较高、体积小
    劣势:
    温漂较大,精密电阻的选择较难,无隔离效果。
    分析:
    这两种拓扑结构,都存在一定的风险性,低端检测电路易对地线造成干扰;高端检测,电阻
    与运放的选择要求高。
    检测电阻,成本低廉的一般精度较低,温漂大,而如果要选用精度高的,温漂小的,则需要
    用到合金电阻,成本将大大提高。运放成本低的,钳位电压低,而特殊工艺的,则成本上升
    很多。

     

    点击查看原图


    二、电流互感器CT/电压互感器PT
    在变压器理论中,一、二次电压比等于匝数比,电流比为匝数比的倒数。而CT 和PT 就是特
    殊的变压器。
    基本构造上,CT 的一次侧匝数少,二次侧匝数多,如果二次开路,则二次侧电压很高,会
    击穿绕阻和回路的绝缘,伤及设备和人身。PT 相反,一次侧匝数多,二次侧匝数少,如果
    二次短路,则二次侧电流很大,使回路发热,烧毁绕阻及负载回路电气。
    CT,电流互感器,英文拼写Current Transformer,是将一次侧的大电流,按比例变为适合通过
    仪表或继电器使用的,额定电流为5A 或1A 的变换设备。它的工作原理和变压器相似。也
    称作TA 或LH(旧符号)工作特点和要求:
    1、一次绕组与高压回路串联,只取决于所在高压回路电流,而与二次负荷大小无关。
    2、二次回路不允许开路,否则会产生危险的高电压,危及人身及设备安全。
    3、CT 二次回路必须有一点直接接地,防止一、二次绕组绝缘击穿后产生对地高电压,但仅
    一点接地。
    4、变换的准确性。
    PT,电压互感器,英文拼写Phase voltage Transformers,是将一次侧的高电压按比例变为适
    合仪表或继电器使用的额定电压为100V 的变换设备。电磁式电压互感器的工作原理和变压
    器相同。也称作TV 或YH(旧符号)。
    工作特点和要求:
    1、一次绕组与高压电路并联。
    2、二次绕组不允许短路(短路电流烧毁PT),装有熔断器。
    3、二次绕组有一点直接接地。
    4、变换的准确性
    三、模块型霍尔电流传感器
    模块型霍尔电流传感器分开环模式与闭环模式。
    开环模式又称为直接测量式霍尔电流传感器,输入为电流,输出为电压。这种方式的优
    点是结构简单,测量结果的精度和线性度都较高。可测直流、交流和各种波形的电流。但它
    的测量范围、带宽等受到一定的限制。在这种应用中,霍尔器件是磁场检测器,它检测的是
    磁芯气隙中的磁感应强度。电流增大后,磁芯可能达到饱和;随着频率升高,磁芯中的涡流
    损耗、磁滞损耗等也会随之升高。这些都会对测量精度产生影响。当然,也可采取一些改进
    措施来降低这些影响,例如选择饱和磁感应强度高的磁芯材料;制成多层磁芯;采用多个霍
    尔元件来进行检测等等。
    开环模式的结构原理见下图

    点击查看原图


    根据检测量程的需求,一般分为以下两种绕线模式,左图为小量程的结构图,右图为大
    量程的结构图。
    闭环模式又称为零磁通模式或磁平衡模式,其输入与输出端均为电流信号。原理见下图


    将霍尔器件的输出电压进行放大,再经电流放大后,让这个电流通过补偿线圈,并令补
    偿线圈产生的磁场和被测电流产生的磁场方向相反,最终达到磁平衡。
    这个平衡过程是自动建立的,是一个动态平衡。建立平衡所需的时间极短。平衡时,霍
    尔器件处于零磁通状态。磁芯中的磁感应强度极低(理想状态应为0),不会使磁芯饱和,
    也不会产生大的磁滞损耗和涡流损耗。恰当地选择磁芯材料和线路元件,可做出性能优良的
    零磁通电流传感器。
    现在市场上的模块霍尔电流传感器,一般体积较大,为双电源供电,价格较高,闭环模
    式的霍尔电流传感器其性能要比开环模式好,但价格也比开环模式的贵许多。
    四、其他的电流检测器件。
    除以上介绍的几种电流检测方式外,还有其他几种测量方式,分别为:
    AVAGO 的光耦隔离放大器。
    TI 的电容式隔离放大器
    ADI 的西格玛德尔塔式隔离放大器。
    这三种电流检测方式,芯片内部结构,原理是不一样的,但外围电路有许多共同点。
    一、三种方式均是通过检测精密电阻两端的电压来判定其被检测电流的大小。
    二、原边与负边均需加电源供电。
    三、输出为差分输出,需考虑共模抑制比,可做到零基准电压。
    四、响应时间与精度差不多,均为us 级,精度界于1%~5%。
    五、Allegro电流传感器
    介绍完了其他的电流检测方式,接下来,重点介绍一下Allegro 的电流传感器。鄙人代
    理此条线的产品。
    Allegro 电流传感器的共同点:
    1. 芯片级霍尔电流传感器,串联在电流回路中,外围电路简单。
    2. 开环模式的霍尔电流传感器(因体积问题,芯片级霍尔电流传感器无法做到闭环模
    式。)
    3. 可测交直流电流。
    4. 无需检测电阻,内置毫欧级路径内阻。
    5. 单电源供电,原边无需供电。
    6. 80~120KHz 的带宽,外围滤波电容可调整带宽与噪声的关系。
    7. 输出加载于0.5Vcc 上,非常稳定的斩波输出。
    8. us 级响应速度,精度在-40~85℃时小于2%
    9. 带抑制干扰的特殊封装工艺。
    10. 非常好的一致性与可靠性。年出厂不合格率小于1PPM。
    常推的几颗Allegro 霍尔电流传感器为:
    ACS712

    点击查看原图


    从ACS712 的内部框图与封装解剖图可以看出,原边电流只是从芯片内部流过,与副边
    电路并没有接触,原边与副边是隔离的,因为封装小,所以ACS712 的隔离电压为2100V。
    因为电流的流过会产生一个磁场,霍尔元件根据磁场感应出一个线性的电压信号,经过内部
    的放大、滤波、与斩波电路,输出一个电压信号。
    ACS712 根据尾缀的不一样,量程分为三个规格:5A、20A、30A,温度等级均为E 级(-40~85
    ℃)。输入与输出在量程范围内为良好的线性关系,其系数Sensitivity 分别为,185、100、
    66mV/A。因为斩波电路的原因,其输出将加载于0.5Vcc 上。ACS712 的Vcc 电源一般建议采
    用5V。输出与输入的关系为Vout=0.5Vcc+Ip*Sensitivity。一般输出的电压信号介于0.5V~4.5V
    之间。
    Ip+与Ip-之间流经芯片内部的那一部份,我们称之为内置路径内阻,其阻值为1.2mΩ.
    当大电流流经它时,所产生的功耗很小,如30A 满量程的电流流经它时,产生的功耗为
    P=30*30*1.2/1000=1.08W。
    ACS 712 的全温度范围的精度为±1.5%。在25~85℃时,精度特性更好。输入与输出之
    间的响应时间为5us。带宽为80KHz,通过调整滤波脚与地之间的滤波电容,可根据客户的
    要求来调整噪声与带宽的关系,电容取值大,带宽小,噪声小。
    ACS710
    与ACS712 相比,ACS710 多了一个过流保护功能。如上图所示,蓝色虚框为ACS710 的
    电流检测回路,红色虚框为ACS710 的过流保护回路。

    点击查看原图


    ACS710 与ACS712 的电流检测原理是一样的,所不同的有以下几点:
    1. ACS710 因为封装SOIC-16 体积比ACS712 稍大,所以原边与副边的隔离电压也比
    ACS712 大,为3000V。
    2. 内置路径内阻为1.0 mΩ。
    3. 量程不一样,根据尾缀不同,分12.5A 与25A 两种量程。这里的12.5A 量程与25A
    量程指的是优化量程,实际上,ACS710 有三倍过载能力,即,他们的实际量程分
    别为37.5A 与75A。但考虑到电流过大,温升的效应,不建议将ACS710 长期工作
    于过载条件下。
    4. ACS710 Vcc 可选用5V 与3.3V 两种。5V 与3.3V 时, 其输入输出的线性系数
    (Sensitivity)也为线性。如ACS710 25A 量程的IC,Vcc 为5V 时,Sensitivity
    为28mV/A. 3.3V 时,Sensitivity 为28*3.3/5=18.5mV。
    5. 温度等级不一样,ACS710 为K 级,-40~125℃.
    6. ACS710 的带宽为120KHZ,响应时间为4us,过流保护响应时间为2us。
    ACS710过流保护功能说明
    1. 16 管脚为使能脚。
    2. 调整15 脚外围的两个分压电阻值, 可设定过流保护的门限值。Vcc 为5V 时,
    ACS710KLATR-12CB-T(12.5A 量程的型号)其可设定的过流保护的门限范围为22.3A~35.7A;
    ACS710KLATR-25CB-T(25A 量程的型号)其可设定的过流保护的门限范围为44.6A~71.5A。
    3.13 管脚为Fault 输出脚,过流条件出现时,13 管脚将在2us 内输出一个低电平信号,其中
    外接电容Coc 为缓冲电容,以防止因干扰而产生的误报情况。
    4. 下图为过流保护过程的图解说明。
    ACS758


    ACS758 的原理是一样的。与ACS712、ACS710 相比,其特点是:
    1. 量程大,分为50A、100A、150A、200A 四个等级。
    2. 内置路径内阻小,为100uΩ.
    3. 温度等级,50A、100A 量程的等级为L 级,即-40~150℃;150A 量程的为K 级,即-40~125
    ℃;200A 量程的为E 级,即-40~85℃.
    4. 带宽为120KHz,响应时间为4us。
    5. 25℃时,原边1200A 大电流时,可承受时间为1 秒。
    85℃时,原边900A 大电流时,可承受时间为1 秒。
    150℃时,原边600A 大电流时,可承受时间为1 秒。
    以上介绍的为Allegro 的三颗代表型芯片级霍尔电流传感器,我介绍的均为双向的霍尔
    电流传感器(可测交直流),输出加载于0.5Vcc 上。Allegro 也有单向的霍尔传感器,其单
    向的霍尔电流传感器(可测正电流),输出加载于0.1Vcc 上。芯片级的霍尔电流传感器,目
    前其最大量程为200A,对于大于200A 的电流,可用Allegro 线性霍尔做成塻块型霍尔电流
    传感器。事实上,国内有部份品牌的模块型霍尔电流传感器,就是应用Allegro 的线性霍尔
    做为核心做成的。
    六.小结
    各种电流检测的方式原理各不同。
    检测电阻+运放与电流互感器属于低成本的方案,其可靠性与安全性较差,主要用于低端
    方案。
    模块式霍尔电流传感器,其体积较大,双电源供电,成本较高。
    隔离放大器,其原边,副边均需电源供电,在消除干扰方面的设计难度更大,成本比模
    块式霍尔电流传感器要低,比Allegro 的成本高。外围电路较复杂,需加检测电阻。
    Allegro 的霍尔电流传感器,量程相对于每一个型号来说,是固定的,最高量程为200A。
    小量程(50A 以下)的霍尔电流传感器成本低,ACS758 的成本比模块型霍尔电流传感器低。输
    出加载于0.5Vcc,输出信号为正电压。

     

    目前Allegro这种芯片级的电流传感器已经广泛应用于变频器,伺服驱动,控制器等多个工控领域,价格与体积,品质等具备绝对优势。

    展开全文
  • 早在1879年人们就在金属中发现了霍尔效应,1910年就有人铋制成了霍尔元件,以测量磁场。但由于这种效应在金属中十分微弱,当时并没有引起什么重视。1948年后,由于半导体技术的迅速发展,人们找到了霍尔效应较为...
  • CH701是工业、商业和通信系统交直流传感的精确经济的解决方案,小型封装非常适合空间狭小的应用,由于减少了电路板的面积,还降低了成本,典型应用领域包括电动机控制、载荷检测和管理、开关式电源和过电流故障保护...
  • ACS712 是 Allegro 公司新推出的一 种线性电流传感器,该器件内置有精确的 低偏置的线性霍尔传感器电路, 能输出与 检测的交流或直流电流成比例的电压。 具 有低噪声,响应时间快(对应步进输入电 流,输出上升时间...
  • 一种物联网智能光伏电路,包括主芯片,电源模块、按键电路、电流检测电路、电压检测电路、显示电路、报警模块、PWM输出电路、无线电路和IOT电路,所述按键电路、所述电流检测电路、所述电压检测电路组成输入模块为所...
  • 本文基于ACS712直流电流检测(protues仿真),检测电流,数码管显示!含电路,与代码。
  • ACS712电路传感器的典型电路,可用于电路检测,反馈环节
  • 更多霍尔传感器相关内容推荐: 霍尔传感器对电机的作用及在电机中的应用 250A隔离集成式霍尔电流传感器芯片--CH704介绍 一款专为电流检测应用开发的高隔离集成式霍尔电流传感芯片--CH701W 国产汽车级和工业级可编程...
  • 电流模块使用手册,基于霍尔传感器原理,注意磁场带来得影响
  • ACS712电流传感器分支输出一个模拟电压,该电压随检测到的电流线性变化。 储存库内容 /硬件-所有Eagle设计文件(.brd,.sch) 文献资料 -ACS712的基本连接指南。 产品版本 -初始版本; ACS712版本的评估板 许可...
  • ACS712: 带 2.1 kVRMS 电压绝缘及低电阻电流导体的全集成、基于霍尔效应的线性电流传感器 IC ACS712是Allegro推出的经典霍尔电流传感器,已经在国内市场使用十多年,可为工业、商业和通信系统中的交流或直流电...
  • ACS712PCB.rar

    2020-08-06 16:18:48
    这是我画的一个ACS712霍尔电流检测模块,有一阶滤波器,限幅等措施,亲测可用,传上来希望可以帮到大家!如果有什么问题欢迎讨论,我也是菜鸡一个!
  • 这两种器件与ACS712ACS713相似,后两种器件专门针对非汽车应用中的低流感测。当采用更为严格的覆盖整个汽车温度范围(-40℃至+150℃)的测试系统,且更为详细地划分误差分量时,差别便显现出来。后者让客户可以确定...
  • 芯片内部通流电阻仅为0.8mohm,大大改善了ACS712电流时芯片发烫的问题。最大支持电流也提高到了±50A的范围。 全温度范围内线性度误差可以做到±2%(实测1%),相对于ACS712的±4%,在测量误差方面有了极大的提升...
  • 在霍尔传感器芯片领域,意瑞拥有国内最全的产品序列,包括开关型霍尔,单芯片电流霍尔传感器,线性霍尔(电流传感器模组)和齿轮传感器等。其产品按照车规级设计,一直以性能好、稳定性高、失效率低著称。失效率甚至...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 236
精华内容 94
热门标签
关键字:

acs712电流检测怎么用