Pular para o conteúdo principal

Grove - Sensor de Corrente CC/CA ±5A (ACS70331)

O Grove - Sensor de Corrente CC/CA ±5A (ACS70331) é um sensor de corrente CC/CA de alta precisão baseado no ACS70331. O ACS70331EESATR-005B3 é o CI sensor de corrente de alta sensibilidade da Allegro para aplicações de medição de corrente <5 A. Ele incorpora tecnologia magnetorresistiva gigante (GMR) que é 25 vezes mais sensível do que sensores tradicionais de efeito Hall para detectar o campo magnético gerado pela corrente que flui através do condutor primário integrado de baixa resistência.

O Grove - Sensor de Corrente CC/CA ±5A (ACS70331) pode medir tanto corrente contínua quanto corrente alternada até 5 A com uma sensibilidade básica de 200 mV/A.

dica

Há uma tabela de dados de medição sobre corrente para sua referência na parte de Resources abaixo.

Características

  • Suporta carga CC e CA
  • Largura de banda de 1 MHz com tempo de resposta <550 ns
  • Baixo ruído: 8 mA(rms) a 1 MHz
  • Resistência do condutor primário de 1,1 mΩ resulta em baixa perda de potência
  • Alto PSRR em CC permite uso com fontes de alimentação ou baterias de baixa precisão (funcionamento de 3 a 4,5 V)
  • Saída analógica

Especificação

ParâmetroValor
Tensão de alimentação3.3V / 5V
Temperatura ambiente de operação-40 – 85℃
Temperatura de armazenamento- 65°C – 125°C
Tensão de trabalho<100V
Faixa de detecção de corrente0 – 5A
Sensibilidade200mV/A(Típ.)
Interface de saídaGrove Analógico
Interface de entradaTerminal parafuso

Princípio de Funcionamento

Existem dois tipos de detecção de corrente: direta e indireta. A classificação é feita principalmente com base na tecnologia usada para medir a corrente.

Detecção direta:

  • Lei de Ohm

Detecção indireta:

  • Lei de Indução de Faraday
  • Sensores de campo magnético
  • Efeito Faraday

O Grove - Sensor de Corrente CC/CA ±5A (ACS70331) usa tecnologia de sensores de campo magnético. E existem três tipos de tecnologia de sensores de campo magnético:

  • Efeito Hall
  • Sensores de fluxgate
  • Sensor de corrente magnetorresistivo

O Grove - Sensor de Corrente CC/CA ±5A (ACS70331) é baseado no princípio do sensor de corrente magnetorresistivo, que também é conhecido como GMR. Um magnetorresistor (MR) é um dispositivo de dois terminais que altera sua resistência de forma parabólica com o campo magnético aplicado. Essa variação da resistência do MR devido ao campo magnético é conhecida como Efeito Magnetorresistivo.

A construção interna do encapsulamento QFN do ACS70331 é mostrada na Figura 2. O chip fica acima do caminho de corrente primário de forma que o campo magnético seja produzido em plano com os elementos GMR no chip. Os elementos GMR 1 e 2 detectam o campo na direção +X para fluxo de corrente IP positivo, e os elementos GMR 3 e 4 detectam o campo na direção –X para fluxo de corrente IP positivo. Isso permite a medição diferencial da corrente e a rejeição de campos externos parasitas.

Figure 1. Construção Interna do ACS70331

Os quatro elementos GMR são organizados em uma configuração de ponte de Wheatstone, como mostrado na Figura 2, de forma que a saída da ponte seja proporcional ao campo diferencial detectado pelos quatro elementos, rejeitando campos comuns.

Figure 2. Configuração da Ponte de Wheatstone

Visão Geral de Hardware

Figure 3. Pinagem

Plataformas Suportadas

ArduinoRaspberry Pi

Primeiros Passos

cuidado

É proibido o corpo humano tocar o módulo durante o teste, caso contrário há risco de choque elétrico.

Brincar com Arduino

Materiais necessários

Seeeduino V4.2Base ShieldSensor de Corrente CC/CA ±5A (ACS70331)
Adquira agoraAdquira agoraAdquira agora

Além disso, você pode considerar o nosso novo Seeeduino Lotus M0+, que é equivalente à combinação de Seeeduino V4.2 e Base Shield.

nota

1 Conecte o cabo USB suavemente, caso contrário você pode danificar a porta. Use o cabo USB com 4 fios internos, o cabo de 2 fios não pode transferir dados. Se você não tiver certeza sobre o cabo que possui, pode clicar aqui para comprar

2 Cada módulo Grove vem com um cabo Grove quando você compra. Caso perca o cabo Grove, você pode clicar aqui para comprar.

Demo CC

Conexão de Hardware
  • Passo 1. Conecte o Grove - Sensor de Corrente CC/CA ±5A (ACS70331) à porta A0 do Base Shield.

  • Passo 2. Conecte os polos positivo e negativo do circuito a ser testado aos polos positivo e negativo correspondentes do terminal de parafuso.

dica

Se você inverter os polos positivo e negativo, a leitura será invertida. Este sensor precisa de calibração antes do uso, portanto, não ligue o circuito primeiro.

  • Passo 3. Conecte o Grove - Base Shield ao Seeeduino.

  • Passo 4. Conecte o Seeeduino ao PC via cabo USB.

Figure 4. Usamos a fonte de alimentação CC neste demo, por favor ajuste a corrente para 0A ou não a ligue no início
Software
cuidado

Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.

  • Passo 1. Baixe a biblioteca Grove Current Sensor do Github.

  • Passo 2. Na pasta /example/, você pode encontrar o código de demonstração. Aqui nós usamos o Grove - ±5A DC/AC Current Sensor (ACS70331) como exemplo. Basta clicar em Grove_5A_DC_Current_Sensor.ino para abrir a demo. Ou você pode copiar o código a seguir:

#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define RefVal 3.3
#define SERIAL SerialUSB
#else
#define RefVal 5.0
#define SERIAL Serial
#endif
//An OLED Display is required here
//use pin A0
#define Pin A5

// Take the average of 500 times

const int averageValue = 500;

long int sensorValue = 0;

float sensitivity = 1000.0 / 200.0; //1000mA per 200mV


float Vref = 1508;

void setup()
{
SERIAL.begin(9600);
}

void loop()
{
// Read the value 500 times:
for (int i = 0; i < averageValue; i++)
{
sensorValue += analogRead(Pin);

// wait 2 milliseconds before the next loop
delay(2);

}

sensorValue = sensorValue / averageValue;


// The on-board ADC is 10-bits
// Different power supply will lead to different reference sources
// example: 2^10 = 1024 -> 5V / 1024 ~= 4.88mV
// unitValue= 5.0 / 1024.0*1000 ;
float unitValue= RefVal / 1024.0*1000 ;
float voltage = unitValue * sensorValue;

//When no load,Vref=initialValue
SERIAL.print("initialValue: ");
SERIAL.print(voltage);
SERIAL.println("mV");

// Calculate the corresponding current
float current = (voltage - Vref) * sensitivity;

// Print display voltage (mV)
// This voltage is the pin voltage corresponding to the current
/*
voltage = unitValue * sensorValue-Vref;
SERIAL.print(voltage);
SERIAL.println("mV");
*/

// Print display current (mA)
SERIAL.print(current);
SERIAL.println("mA");

SERIAL.print("\n");

// Reset the sensorValue for the next reading
sensorValue = 0;
// Read it once per second
delay(1000);
}

  • Passo 3. Faça o upload do demo. Se você não souber como fazer o upload do código, consulte How to upload code.

  • Passo 4. Abra o Serial Monitor da Arduino IDE clicando em Tool-> Serial Monitor. Ou pressione as teclas ctrl+shift+m ao mesmo tempo. Defina o baud rate para 9600.

  • Passo 5. Calibração
    Quando não há corrente fluindo, o sensor ainda terá um pequeno valor de saída. Chamamos esse valor de offset de zero.

Figura 5. O offset de zero desta placa é 595,70mV, convertido em corrente é -4561,48mA

Devido à presença do offset de zero, o sensor também terá uma leitura quando não houver corrente. Então definimos um parâmetro Vref para corrigir isso; você pode encontrá-lo no bloco de código acima.

Linha 21:

float Vref = 1508;  
//Vref is zero drift value, you need to change this value to the value you actually measured before using it.

No código de demonstração, definimos o Vref para 1508, porém, o valor do offset de zero varia de placa para placa. Como você sabe, a placa que usamos neste demo é 595,70. Então vamos modificar a Linha 21:

float Vref = 596;  
//Vref is zero drift value, you need to change this value to the value you actually measured before using it.

Agora vamos fazer o upload do código modificado e verificar o resultado:

Figura 6. Agora o offset de zero da corrente passa a ser 0,02mA

Quando a saída de corrente se torna 0mA ou um valor pequeno, você concluiu a calibração.

  • Passo 6. Agora é com você, você pode energizar a carga de corrente. Sinta-se à vontade para usá-lo, lembre-se de que este é um Sensor de Corrente de 5A, a corrente não pode exceder 5A!

Se você quiser conhecer a fórmula de cálculo do resultado, consulte o FAQ Q1

Demonstração AC

cuidado

Quando você usar energia AC, preste atenção à segurança e evite choque elétrico.

Para a parte de conexão de hardware e calibração, consulte a Demonstração DC, a única diferença é o código. Use o código a seguir para carga AC.

#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define RefVal 3.3
#define SERIAL SerialUSB
#else
#define RefVal 5.0
#define SERIAL Serial
#endif
//An OLED Display is required here
//use pin A0
#define Pin A5

// Take the average of 500 times

const int averageValue = 500;

long int sensorValue = 0;

float sensitivity = 1000.0 / 200.0; //1000mA per 200mV


//float Vref = 244;
float Vref = 1494;

void setup()
{
SERIAL.begin(9600);
}
static float tempval;
void loop()
{

// Read the value 500 times:
for(int i=0;i<20;i++)
{

for (int i = 0; i < averageValue; i++)
{
int temp;
temp= analogRead(Pin);
if(temp>sensorValue)
{
sensorValue=temp;
}
delayMicroseconds(40);
}
tempval+=sensorValue;
}

sensorValue=tempval/20.0;
tempval=0;
// The on-board ADC is 10-bits
// Different power supply will lead to different reference sources
// example: 2^10 = 1024 -> 5V / 1024 ~= 4.88mV
// unitValue= 5.0 / 1024.0*1000 ;
float unitValue= RefVal / 1024.0*1000 ;
float voltage = unitValue * sensorValue;

//When no load,Vref=initialValue
SERIAL.print("initialValue: ");
SERIAL.print(voltage);
SERIAL.println("mV");

// Calculate the corresponding current
float current = ((voltage - Vref) * sensitivity)*0.707;

// Print display voltage (mV)
// This voltage is the pin voltage corresponding to the current

voltage = unitValue * sensorValue-Vref;
SERIAL.print(voltage);
SERIAL.println("mV");


// Print display current (mA)
SERIAL.print("current: ")
SERIAL.print(current);
SERIAL.println("mA");

SERIAL.print("\n");


// Reset the sensorValue for the next reading
sensorValue = 0;

// Read it once per second
delay(1000);
}

FAQ

Q1# Qual é a fórmula de cálculo da corrente?

A1: Se você acha que a parte do princípio é muito complicada, vamos colocar de uma forma simples. A corrente no circuito a ser testado excita o campo magnético, o que faz com que o valor de resistência dos elementos GMR mude. E a mudança de resistência na ponte causa uma mudança na tensão na saída do chip. Chamamos a tensão de saída de VIOUT.

VIOUT = Sens × Ip + VIOUT(Q)

Sens: Sens é o coeficiente que converte a corrente em uma tensão de saída. Para este módulo é 200mA/V.
Ip: Ip é o valor de corrente no circuito a ser testado, unidade mA.
VIOUT(Q): VIOUT(Q) é a tensão de saída quando o Ip é 0mA (o que significa que não há corrente no circuito a ser testado), unidade mV.

Aqui está o valor da corrente:

Ip = (VIOUT - VIOUT(Q)) / Sens

Agora, vamos revisar a figura 5, explicaremos por que o valor de corrente da saída não é 0 quando o valor real de corrente no circuito a ser testado é 0. Como você pode ver na figura 5, o initialValue é 595,70mV, que é o VIOUT; a corrente é -4561,48mA, que é o Ip. Quanto ao VIOUT(Q), ele é o Vref que definimos no código. Na figura 5, ele é 1508. E o Sens é 200mA/V, que é 200mA/1000mV. Agora, é só fazer algumas contas:

{(595.70mV-1508mV ) / (200mA/1000mV)} = -4561.50mA

Então, na figura 6, quando definimos o Vref para 595,70, o Ip passa a 0mA.

Visualizador de Esquemático Online

Recursos

Suporte Técnico & Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...