精华内容
下载资源
问答
  • 交流电流怎么测
    千次阅读
    2021-11-15 21:15:10

    电流检测的原理

    电路检测电路常用于:高压短路保护、电机控制、DC/DC换流器、系统功耗管理、二次电池的电流管理、蓄电池管理等电流检测等场景。
    对于大部分应用,都是通过感测电阻两端的压降测量电流。
    一般使用电流通过时的压降为数十mV~数百mV的电阻值,电流检测用低电阻器使用数Ω以下的较小电阻值;
    检测数十A的大电流时需要数mΩ的极小电阻值,因此,以小电阻值见长的金属板型和金属箔型低电阻器比较常用,而小电流是通过数百mΩ~数Ω的较大电阻值进行检测。

    测量电流时, 通常会将电阻放在电路中的两个位置。第一个位置是放在电源与负载之间。这种测量方法称为高侧感测。通常放置感测电阻的第二个位置是放在负载和接地端之间。这种电流感测方法称为低侧电流感测。
    两种测量方法各有利弊,低侧电阻在接地通路中增加了不希望的额外阻抗采用高侧电阻的电路必须承受相对较大的共模信号。低侧电流测量的优点之一是共模电压, 即测量输入端的平均电压接近于零。这样更便于设计应用电路, 也便于选择适合这种测量的器件。低侧电流感测电路测得的电压接近于地, 在处理非常高的电压时、 或者在电源电压可能易于出现尖峰或浪涌的应用中, 优先选择这种方法测量电流。由于低侧电流感测能够抗高压尖峰干扰, 并能监测高压系统中的电流。

    电流检测电路

    1、低侧检测

    在这里插入图片描述低侧电流感测的主要缺点是采用电源接地端和负载、系统接地端时,感测电阻两端的压降会有所不同。如果其他电路以电源接地端为基准,可能会出现问题。为最大限度地避免此问题,存在交互的所有电路均应以同一接地端为基准, 降低电流感测电阻值有助于尽量减小接地漂。
    如上图,如果图中运放的 GND 引脚以 RSENSE 的正端为基准,那么其共模输入范围必须覆盖至零以下,也就是GND - (RSENSE × ILOAD)。Rsensor将地(GND)隔开了。

    2、高侧检测

    在这里插入图片描述随着大量包含高精度放大器和精密匹配电阻的IC的推出,在高侧电流测量中使用差分放大器变得非常方便。高侧检测带动了电流检测IC 的发展,降低了由分立器件带来的参数变化、器件数目太多等问题,集成电路方便了我们使用。

    应用电路

    在这里插入图片描述电路采用高侧检测电路,电流经0.01欧采样电阻,产生电压,INA213电流检测芯片将采样的电压放大,输出放大的电压用于后级ADC采集。
    INA213芯片说明INA213手册

    更多相关内容
  • 基于顺势无功功率理论的无功电流和谐波电流检测,这里是两个,交流电流中的谐波电流是相同的。用来滤除电路中的无功功率。
  • 基于51单片机的交流电流检测系统设计(程序+原理图+PCB) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0024 完整下载链接: 链接:...

    本设计:
    基于51单片机的交流电流检测系统设计(程序+原理图+PCB)
    原理图:Altium Designer
    程序编译器:keil 5
    编程语言:C语言
    编号C0024

    完整链接:
    https://pan.baidu.com/s/1bj94SLEVgEcHD17uILAkTQ?pwd=8pvz 
    

    本设计由51单片机电路+数码管显示电路+交流电压检测电路+交流电流检测电路+电源电路组成。数码管实时显示交流电流值和交流电压值。

    原理图(提供源文件):
    在这里插入图片描述

    PCB(提供源文件):
    在这里插入图片描述

    源程序(提供源文件):

    
    #include<reg51.h> 
    #include "intrins.h"
    #include "delay.h"	
    #include "display_seg.h"  
    #include<timer.h>
    sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pull
    sfr P1M0 = 0x92;    //                  =10--->pure input,  11--->open drain
    sfr P0M1 = 0x93;
    sfr P0M0 = 0x94;
    sfr P2M1 = 0x95;
    sfr P2M0 = 0x96;
    sfr P3M1 = 0xB1;
    sfr P3M0 = 0xB2;
    sfr P4M1 = 0xB3;
    sfr P4M0 = 0xB4;
    sfr P5M1 = 0xC9;
    sfr P5M0 = 0xCA;
    sfr P6M1 = 0xCB;
    sfr P6M0 = 0xCC;
    sfr P7M1 = 0xE1;
    sfr P7M0 = 0xE2;
    
    sfr ADC_CONTR   =   0xBC;           //ADC控制寄存器
    sfr ADC_RES     =   0xBD;           //ADC高8位结果
    sfr ADC_LOW2    =   0xBE;           //ADC低2位结果
    sfr P1ASF       =   0x9D;           //P1口第2功能控制寄存器
    
    #define ADC_POWER   0x80            //ADC电源控制位
    #define ADC_FLAG    0x10            //ADC完成标志
    #define ADC_START   0x08            //ADC起始控制位
    #define ADC_SPEEDLL 0x00            //540个时钟
    #define ADC_SPEEDL  0x20            //360个时钟
    #define ADC_SPEEDH  0x40            //180个时钟
    #define ADC_SPEEDHH 0x60            //90个时钟
     
    
    void InitADC();
    unsigned char adVtab[5];
    unsigned char adAtab[5];
    unsigned char count = 0;
    unsigned char GetADCResult(unsigned char ch);
    
    void main (void)
    {
    unsigned int result_voltage = 0;
    unsigned int result_current = 0;
    unsigned int acV= 0;
    unsigned int acA= 0;	   //扩大100倍
    Init_Timer0();	
    	  //初始化端口
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;
        P6M0 = 0x00;
        P6M1 = 0x00;
        P7M0 = 0x00;
        P7M1 = 0x00;
    
        InitADC();                      //初始化ADC
      while (1)  {                        /* endless loop                         */ 							 
    	  result_voltage = GetADCResult(7);//采集电压值					 
    	  result_current = GetADCResult(6);//采集电流值
    	  //显示电压值
    	  adVtab[count] = result_voltage;
    	  adAtab[count] = result_current;
    	  count++;
    	  if(count >= 5)
    	  {
    	  	acV = ((adVtab[0] +adVtab[1] +adVtab[2] +adVtab[3] +adVtab[4] )/5 )*220/125;  //  ad值为127实时 1.57v ad电压220
    		acA =  ((adAtab[0] +adAtab[1] +adAtab[2] +adAtab[3] +adAtab[4] )/5 )*72/100;  //  ad为   时 电流为0.72A 1.24V 扩大100倍电流
    	   	count = 0;
    	  }
    //	  acV = result_voltage * 220 / 125 ;
    //	  if(acV < 20 ) acV = 0;
    
    	 displayDat[0] = SEG_DATA[acV/100];
    	 displayDat[1] = SEG_DATA[(acV%100)/10];
    	 displayDat[2] = SEG_DATA[acV%10];
    	 //高位为0时的消除处理
    	 if(displayDat[0]==SEG_DATA[0]){
    		displayDat[0] = 0xff;
    		if(displayDat[1]==SEG_DATA[0]){
    			displayDat[1]=0xff;
    		}
    	 }
    	
    //	 }
    	DelayMs(100);
      }
    }
    /*----------------------------
    读取ADC结果
    ----------------------------*/
    unsigned char GetADCResult(unsigned char ch)
    {
        ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
        _nop_();                        //等待4个NOP
        _nop_();
        _nop_();
        _nop_();
        while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
        ADC_CONTR &= ~ADC_FLAG;         //Close ADC
    
        return ADC_RES;                 //返回ADC结果
    }
    
    
    /*----------------------------
    初始化ADC
    ----------------------------*/
    void InitADC()
    {
        P1ASF = 0xc0;                   //设置P1口为AD口
        ADC_RES = 0;                    //清除结果寄存器
        ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
        DelayMs(2);                       //ADC上电并延时
    }
    

    在这里插入图片描述

    资料清单如下:
    在这里插入图片描述

    展开全文
  • 电力检测芯片 ADE7878 实现三相交流,电压 电流,有效、无效功率测量
  • 基于STM32F103单片机智能电表交流电压电流设计 包含: 实物图 原理图 源程序 模块框图 ElectricEnergyMeter_STM32_986-V2.0.1
  • LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无...

    方案框图:

    在这里插入图片描述

    硬件电路:

    在这里插入图片描述
    5V电源电路设计
    本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。
    在这里插入图片描述
    PCF8591 A/D采样电路设计
    本系统选择PCF8591作为A/D采样芯片。PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。

    在这里插入图片描述
    TA1005-1M交流电流互感器模块电路设计
    本交流电流互感器模块型号为TA1005M。
    电流互感器是依据电磁感应原理将一次侧大电流转换成二次侧小电流来测量的仪器。电流互感器是由闭合的铁心和绕组组成。它的一次侧绕组匝数很少,串在需要测量的电流的线路中。
    在本电路中J1为220V交流电输入端,J2为负载输出端,D1是1N4148,单向导电,电容均为滤波电容。R5为分压电阻,将互感器转化后的模拟量信息转化为模拟电压供A/D芯片采集。其电路图如下图所示
    在这里插入图片描述
    部分代码:

    #include <reg52.h> 
    #include <intrins.h>
    #include <stdio.h>
    #include "i2c.h"
    #include "1602.h"
    #include "delay.h"
    
    sbit key1 =P1^0;   //引脚定义
    sbit key2 =P1^1;
    sbit buzzer =P1^3;
    
    bit rekey =0;		//按键防止重复
    unsigned char disFlag ;	  //显示更新标志
    unsigned long time_20ms=0;	//定时变量
    float setData=1.0;	 		//电流值及设置值
    unsigned char dis0[16];
    
    float Acurrent;//电压值
    float sumAcur,midA;//多次采集电流 求平均量 变量
    unsigned char Acount =0;//采集次数
    
    void Init_Timer0(void);//定时器初始化
    void UART_Init(void);
    void uartSendByte(unsigned char dat);
    void uartSendStr(unsigned char *s,unsigned char length);
    
    void main (void)
    {
    	Init_Timer0();        //定时器0初始化	
    	UART_Init();	//串口初始化
    
    	buzzer = 0;		//蜂鸣器响一声
    	DelayMs(200);
    	buzzer =1;		//关闭蜂鸣器
    
    	LCD_Init();           //初始化液晶
    	DelayMs(20);          //延时有助于稳定
    	LCD_Clear();          //清屏
    
    	LCD_Write_String(0,0,"My designer!");
    	uartSendStr("ready ok!",9);
    
    	while(1)         //主循环
    	{
    		if(disFlag ==1)	//显示标志
    		{
    			disFlag =0;		//显示标志	
    
    			midA=ReadADC(0)*3.2*5.1/255;				//读取电流值	
    			sumAcur = sumAcur + midA;	//多次测量求平均
    			Acount++;//采集次数
    			if(Acount  >= 5) //采集到5次
    			{	  
    				Acount  = 0;	  //重新计数
    				Acurrent = 	sumAcur/5;  //求平均
    				if(Acurrent < 0.06) Acurrent= 0;//滤波微小波动
    				sumAcur = 0;	//清空累计
    			}	
    				
    			sprintf(dis0,"Now:%3.1fA   %2.1f",Acurrent,setData);//打印
    			LCD_Write_String(0,1,dis0);//显示	
    						
    			if(Acurrent>=setData)//值对比
    			{
    			 	buzzer =0;	  //打开蜂鸣器
    			}
    			else
    			{buzzer =1;}	  //关断蜂鸣器									
    		}
    		if((key1==0)||(key2==0)) //检测到按键按下
    		{
    		 	if(rekey == 0)
    			{
    				DelayMs(20);   //防止抖动
    				if(key1==0)
    				{
    					rekey =1;
    					if(setData>0.1)	   //值-0.1
    					{
    						setData =setData-0.1;
    					}
    				}
    				else if (key2==0)
    				{
    					rekey =1;
    					if(setData<9.9) //小于9.9  值+0.1
    					{
    						setData =setData+0.1;
    					}
    				}
    			
    			}
    		}
    		else
    		{rekey =0 ;}	//防止重复按下
    
    	}
    }
    
    void Init_Timer0(void)
    {
     TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
     TH0=(65536-20000)/256;		  //重新赋值 20ms
     TL0=(65536-20000)%256;
     EA=1;            //总中断打开
     ET0=1;           //定时器中断打开
     TR0=1;           //定时器开关打开
    }
    
    void Timer0_isr(void) interrupt 1 
    {
    	TH0=(65536-20000)/256;		  //重新赋值 20ms
    	TL0=(65536-20000)%256;	
    	time_20ms++;
    	if(time_20ms%5==0)
    	{disFlag = 1;}
    
    }
    void UART_Init(void)
    {
        SCON  = 0x50;		        // SCON: 模式 1, 8-bit UART, 使能接收  
        TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装
        TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz  
        TR1   = 1;                  // TR1:  timer 1 打开                         
        EA    = 1;                  //打开总中断
        ES    = 1;                  //打开串口中断
    }
    
    void uartSendByte(unsigned char dat)
    {
    	unsigned char time_out;
    	time_out=0x00;
    	SBUF = dat;			  //将数据放入SBUF中
    	while((!TI)&&(time_out<100))  //检测是否发送出去
    	{time_out++;DelayUs2x(10);}	//未发送出去 进行短暂延时
    	TI = 0;						//清除ti标志
    }
    
    void uartSendStr(unsigned char *s,unsigned char length)
    {
    	unsigned char NUM;
    	NUM=0x00;
    	while(NUM<length)	//发送长度对比
    	{
    		uartSendByte(*s);  //放松单字节数据
    		s++;		  //指针++
    		NUM++;		  //下一个++
      	 }
    }
    void UART_SER (void) interrupt 4 //串行中断服务程序
    {
    	unsigned char u_buf;
        if(RI)                        //判断是接收中断产生
        {
    	  RI=0;                      //标志位清零
    	  u_buf = SBUF;
    	}
       if(TI)  //如果是发送标志位,清零
    	TI=0;
    }
    
    
    
    

    链接:https://pan.baidu.com/s/1IdQqR1PCuOmH9tXAWz5qDw
    提取码:96tf

    展开全文
  • 电子政务-带有交流电流检测功能的万用表.zip
  • 1、通过电压互感器TV1005M和电流互感器TA1005M分别检测交流电压和交流电流值, 2、手机APP和WiFi模块互联后,可以实时显示交流电压、交流电流、功率和电量实时显示在手机上。 3、当功率超过200W时,继电器自动断开。...
  • 针对目前现有电流检测方法存在的不足,提出了一种磁隔离的交流电流峰值检测电路,结合峰值电流控制技术可有效抑制初级电流的直流偏置,实现高可靠控制。给出了检测电路的电路拓扑,详细分析了工作原理和设计准则。最后...
  • 近年来随着消防报警设备在各类建筑中的推广普及,市场上对消防设备电源监控系统的需求与日俱增。在一项目中笔者就需要设计一种针对消防设备...根据实际应用需求,交流电压检测范围为AC200V-AC400V,交流电流检测范围为A
  • 测试交流电压和电流

    2021-01-20 04:54:28
    使用电流互感器测试交流电流:  电流互感器原理是依据电磁感应原理的。电流互感器是由闭合的铁心和绕组组成。下图就是所使用的电流互感器。  将交流电的零线或者火线中的一根,穿过这个电流互感器的小孔,互感...
  • 基于单片机控制的交流电流信号检测装置的设计.pdf
  • 组成双向电流检测放大器  许多电流检测应用中需要双向电流检测功能。图1所示电路是电流检测...当VRS->VRS+时(交流适配器向电池充电),器件B工作。利用一个通用的运算放大器将两个放大器的输出电流转换成适当的输出电
  • RN7302主要用于交流电压、电流 实时采样。采样精度高,外围电路少。
  • 近年来随着消防报警设备在各类建筑中的推广普及,市场上对消防设备电源监控系统的需求与日俱增。在一项目中笔者就需要设计一种针对消防设备...根据实际应用需求,交流电压检测范围为AC200V-AC400V,交流电流检测范围为A
  • 交流检测模块读取电流电压参数,电流,电压,电能,功率因数
  • 使用电流互感器测试交流电流:  电流互感器原理是依据电磁感应原理的。电流互感器是由闭合的铁心和绕组组成。下图就是所使用的电流互感器。  将交流电的零线或者火线中的一根,穿过这个电流互感器的小孔,互感...
  • 一般漏电流分为四种,分别为:半导体元件漏电流、电源漏电流、电容漏电流和滤波器漏电流。 1、半导体原件漏电流 PN结在截止时流过的很微小的电流。D-S正向偏置,G-S反向偏置,导电沟道打开后,D到S才会有...
  • 三相桥式不控整流主电路仿真模型,根据控制框图搭建交流测谐波电流检测模块,并给出检测所得谐波电流的波形
  • 回路电阻测试仪是用于测量开关、断路器、变压器等设备的接触电阻、回路电阻的专用测试设备,其测试电流为 100 A 或更大的直流电流,也被称为“接触电阻测试仪”[1]。直阻仪是用于测量变压器、互感器、电机绕组等...
  • 基于51单片机毫安微安电流表设计(包含源程序原理图PCB)
  • 4~20ma电流输出型到接口一般有哪些处理方法?电流输出型变送器的输出范围常用的有0~20ma及4~20ma两种,电流变送器输出最小电流及最大电流时,分别代表电流变。
  • 电流检测放大器

    千次阅读 2022-08-27 08:04:39
    在实际应用中,要保证上面的RB/RA等于下面的RB/RA,需要...有多种方法可以实现高侧法测量电流,包括仪表放大器,差动放大器等。增益级:由输入的两个运放还有RF+RG来决定。内部电阻也是集成工艺生成的,匹配性很好。

    电流检测电阻的高侧接法与低侧接法的比较

    在这里插入图片描述

    连接方式优缺点
    高侧法优点:负载的地是稳定的——缺点:用于测量电位差的放大器,输入端需要承受很高的共模电压
    低测法优点:对放大器要求不高,容易测量——缺点:负载的底端不稳定(不是牢靠的GND)

    有多种方法可以实现高侧法测量电流,包括仪表放大器,差动放大器等。

    以下为差动放大器电路

    在这里插入图片描述

    以下为集成电流检测电路INA219

    实际上测量负载电流更常用的方法是利用集成电流检测放大器。
    在这里插入图片描述

    我们来说一下INA199内部功能框图

    在这里插入图片描述
    增益计算 :G=R1/R3
    1.支持高的输入共模电压
    2.内部采用差分放大电路
    3.单个型号往往有多种不同增益版本
    4.一般来说集成的芯片支持高的共模电压

    它有多个增益版本

    型号增益(GAIN)
    INA199x150V/V
    INA199x2100V/V
    INA199x3200V/V

    仪表放大器

    在这里插入图片描述
    下图为常用增益和电阻器值
    在这里插入图片描述
    各模块功能总结:
    1.增益级:由输入的两个运放还有RF+RG来决定
    2.第三个运放还有四个电阻构建成一个差动放大器,实现对共模信号的抑制。因此仪表放大器具有极高的CMRR
    3.REF管脚:用于设置输出的直流偏置

    在这里插入图片描述

    减法器放大差模信号的不足之处:

    输入电阻较小。

    增益调节需要至少两个电阻同时变化,既有难度也不够灵活。

    对电阻的一致性要求很高。在实际应用中,要保证上面的RB/RA等于下面的RB/RA,需要缜密挑选电阻,难度也很大。

    减法器到差分放大器的改进:
    在这里插入图片描述
    集成差分放大器:内部包含一个运放+4个电阻

    最大的优点就是将电阻集成到芯片里面,解决了电阻一致性的问题。但是依然面临两个问题,输入电阻小,调节增益困难。

    再进一步升级蜕变成三运放仪表放大器
    在这里插入图片描述
    芯片上的Vref相当于直流偏置电压
    在这里插入图片描述

    仪表放大器彻底解决了减法器存在的那三个问题:

    输入端是高阻,即输入电阻接近无穷大。

    增益调节灵活:通常用一个电阻RG即可调节,使用者非常容易实施控制。

    内部电阻也是集成工艺生成的,匹配性很好。

    INA282内部功能框图

    在这里插入图片描述

    各模块功能总结:

    增益级:由输入的两个运放还有RF+RG来决定。

    第三个运放还有四个电阻构建成一个差动放大器,实现对共模信号的抑制。因此仪表放大器具有极高的CMRR。

    REF管脚:用于设置输出的直流偏置。

    展开全文
  • ACS712 直流/交流电流测量传感器具有量程大、简单易用、体积... float readACCurrent(int Pin) ,该函数用来测量交流电流得的是交流电流的有效值。 根据被电流,选择相应的函数调用即可,不能两个函数同时调用。
  • GIS设备内置避雷器交流泄漏电流测试方法.zip
  • 标准的测试方法是采用大容量工频变压器,截取市电交流波形来产生时间常数为10ms、导通角为0°~180°的正弦半波脉冲,如图1。  用这种方法产生几百上千安培的正弦脉冲电流,所用到的变压器体积重量都非常可观
  • 220V交流电压电流采样终端,本文档仅为竞标时示意性展示方案书,目的是向客户展示我方具有完成该项目的实力和具体方案目标,最终文档以实际设计生产实物为准。
  • 交流电机驱动器中采用霍尔电流传感芯片与过采样技术的电流检测.pdf
  • 高压隔离电流检测电路、电子技术,开发板制作交流
  • AD637电流检测

    2018-04-12 15:01:10
    AD637是一款完整的高精度、单芯片均方根直流转换器,可计算任何复杂波形的真均方根值。它提供集成电路均方根直流转换器前所未有的性能,精度、带宽和动态范围与分立和模块式设计相当。AD637提供波峰因数补偿方案,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,639
精华内容 7,455
关键字:

交流电流怎么测