SCT-013 – Sensor de Corrente Alternada com Arduino

Neste tutorial ensinaremos a você como medir corrente alternada e estipular a potência instantânea de um circuito utilizando o Sensor de corrente alternada não invasivo SCT-013 juntamente com Arduino. Para este projeto, iremos medir a corrente e a potência de um ferro de solda.

Esse tutorial é dividido em três partes.

  1. Introdução: Nessa parte você conhecerá um pouco mais o sensor SCT013
  2. Mãos à obra: Aqui você aprenderá a usar o Sensor de corrente SCT-013 na prática
  3. Entendendo a fundo: Por fim você entenderá como funciona o software e hardware usado na experiência da parte 2

[toc]

Sensor de corrente não invasivo SCT-013

O sensor de corrente SCT-013 é muito versátil e tem como principal vantagem o fato de não precisar de contato elétrico com o circuito para medir a corrente elétrica alternada. Ou seja, não precisamos abrir o circuito para ligá-lo em série com a carga, basta apenas “abraçar” um dos fios ligados ao equipamento a ser monitorado.

SCT013 sensor de corrente ac
Sensor de corrente SCT013

Um pouco de física

Para fazer a medição da corrente sem a necessidade de contato elétrico com o circuito esse sensor de corrente alternada utiliza as propriedades magnéticas da corrente elétrica.

– Lei de Ampère

A Lei de Ampère diz que todo condutor por onde flui uma corrente elétrica induz ao seu redor um campo magnético proporcional à corrente.

Linhas de campo geradas pela corrente elétrica
Linhas de campo geradas pela corrente elétrica

– Corrente Alternada

A corrente alternada tem uma peculiaridade de se comportar como uma senoide, sendo assim sua intensidade varia ao longo do tempo indo do máximo positivo ao máximo negativo. Esse comportamento oscilatório tem uma frequência que pode ser de 50Hz ou de 60Hz conforme o país ou região. No Brasil é adotado a frequência de 60Hz, ou seja: a corrente elétrica varia entre positivo e negativo 60 vezes em 1 segundo.

Corrente Alternada
Corrente Alternada

Como o campo magnético é proporcional ao valor de corrente, o campo magnético gerado ao redor do condutor percorrido por uma corrente alternada irá variar ao logo do tempo conforme a variação da mesma.

Lei de Faraday – lei da indução eletromagnética

A lei de Faraday diz que um campo magnético que varia ao longo do tempo induz em uma espira uma força eletromotriz que gera um corrente elétrica proporcional a intensidade do campo magnético.

Lei de Faraday
Lei de Faraday

Na figura acima podemos entender essa lei na prática. Veja que ao aproximar o imã das espiras estamos variando o campo magnético e está sendo indicado uma tensão no voltímetro (força eletromotriz) chegando quase a 20V. Depois, ao afastar o imã temos a tensão indo quase a 20V no sentido contrário.

Resumo

  1. Lei de Ampère: Um condutor percorrido por uma corrente induz a formação de um campo magnético ao seu redor de valor proporcional à corrente;
  2. Corrente Alternada: A corrente alternada varia ao longo do tempo gerando um campo magnético também variante ao longo do tempo;
  3. Lei da indução de Faraday: Um campo magnético variante no tempo induz numa espira uma tensão, e por consequência um corrente elétrica, proporcional à intensidade do campo magnético

Levando em conta essas três propriedades, podemos montar um transformador de corrente.

Transformadores de corrente

Existe uma grande gama de sensores de corrente que usam essas propriedades magnéticas. Esse sensores são conhecidos com TC (Transformador de Corrente), que em inglês é CT (Current Transformer).

Um transformador de corrente, nada mais é que um conjunto de espiras que são colocadas ao redor de um condutor ao qual queremos medir a corrente. O transformador de corrente (TC) terá em seus polos uma corrente alternada induzida Is, que é proporcional a corrente alternada Ic que percorre o condutor ao qual pretendemos medir a corrente elétrica.

 Esquema para exemplificar o SCT-013
Esquema para exemplificar o SCT-013

A corrente induzida no TC também será inversamente proporcional ao número de espiras de sua bobina.

Esse sensores são divididos em 2 modelos: Os split-core (núcleo dividido) e os solid-core (núcleo sólido).

Solid-core CT – Transformador de núcleo sólido ou núcleo anel – Não possui possibilidade de abertura
Split-core CT – Transformador de corrente de núcleo dividido – Permite a abertura

Transformador de corrente SCT-013

SCT é a sigla para Split-core Current Transformer, ou seja, Transformador de corrente de núcleo dividido. Para fazer fazer a medição da corrente elétrica o SCT-013 possui uma bobina interna em sua estrutura, como podemos ver na figura abaixo.

Bobina do Sensor de corrente não invasivo SCT-013
Bobina do Sensor de corrente não invasivo SCT013

Podemos ver essa bobina com mais detalhes na foto a seguir

Dentro do Sensor de corrente SCT-013
Dentro do Sensor de corrente SCT013

O circuito é bem simples:

Circuito interno do SCT-013
Circuito interno do SCT-013

– Os Modelos de SCT-013

Com base nesse princípio de funcionamento, foram criados diferentes tipos de sensores não-invasivos, como pode ser observado em seu datasheet, com o objetivo de atenderem os mais diversos cenários, de forma que não exista um “melhor”, mas sim o mais recomendado para a aplicação recorrente.

Tabela com os diferentes modelos do sensor de corrente não-invasivo

As duas principais diferenças são a Corrente eficaz máxima a ser medida (Input current)  e o Tipo de saída do sensor (Output type).

É possível observar que somente o modelo SCT-013-000 apresenta uma variação de corrente em sua saída de 0-50mA, já os outros modelos apresentam uma variação tensão de 0-1V, onde por meio destas variações é possível mensurar a corrente elétrica.

Para sabermos qual será a taxa variação tanto de corrente quanto de tensão basta dividirmos o valor máximo  da saída pelo valor máximo a ser medido. Abaixo temos alguns exemplos deste cálculo:

  • SCT-013-000:
    • 0,05 / 100 = 0,5mA. A cada um Ampere a mais ou a menos, sua saída será de 0,5mA para mais ou a menos;
  • SCT-013-005:
    • 1 / 5 = 0,2V. A cada um Ampere a mais ou a menos, sua saída será de 0,2V para mais ou a menos;
  • SCT-013-050:
    • 1 / 50 = 0,02V. A cada um Ampere a mais ou a menos, sua saída será de 0,02V para mais ou a menos.

– SCT-013-000 – 100A / 0-50mA

Para esse tutorial usaremos o SCT-013-000. Ele poder medir valores de 0 até 100A de corrente alternada. Em sua saída teremos valores entre 0 a 50mA proporcionais ao valor de corrente percorrido no condutor principal.

Como nosso Arduino só lê valores de tensão, iremos precisar montar um circuito auxiliar para que essa corrente percorra um resistor e assim possamos converter os valores de correntes gerado pelo sensor em valores de tensão. Explicaremos o passo a passo de como dimensionar esse circuito no tópico Entendendo o Hardware.


Mãos à Obra – Monitorando a corrente AC com o Sensor de corrente SCT-013

Componentes necessários

Serão necessários os seguintes componentes para a execução deste projeto:

Utilizaremos o SCT-013 100A e o Arduino Uno, além de um aparelho que terá sua corrente elétrica medida, no nosso caso, um ferro de solda. Você poderá medir a corrente elétrica de outros dispositivos.

O resistor de 330Ω foi dimensionado por meio de uma sequência de cálculos com o propósito de aumentar a precisão das medidas deste sensor de corrente. Os cálculos poderão ser visto na sessão “Entendendo o SCT-013”.

*Caso o seu SCT-013 seja de outro modelo ao invés de 100A, o passo a passo será diferente.

sct013 sensor de corrente

Montando o projeto

Esse sensor de corrente normalmente vem com um plugue P2 do tipo macho em sua ponta. Para esse tutorial nós removemos ele e conectamos os dois fios presentes no interior do cabo diretamente na protoboard. Caso você não queira remover o plugue P2, recomendamos que você adquira um plugue P2 do tipo fêmea para poder utilizar esse sensor de corrente.

Com os componentes em mãos, montaremos o seguinte circuito na protoboard:

Após realizar esta montagem, é necessário conectar o SCT-013 ao condutor por onde a corrente elétrica a ser medida passará.

AVISO: Não conecte este sensor de corrente de acordo com a imagem abaixo, pois não será possível medir a corrente elétrica. A explicação do por quê será feita mais abaixo.

Como a corrente elétrica produz campo magnético conforme seu sentido e o sentido da corrente em um fio é o oposto ao sentido do outro fio, os campos magnéticos produzido pelos dois acabam se anulando. Se não há campo magnético, não há indução magnética no transformador do sensor de corrente, fazendo com que não circule a corrente Is necessária para a medição da corrente Ic consumida. Por esse motivo não podemos conectar este sensor aos dois fios de alimentação.

Com isso finalizamos o hardware do nosso projeto. Agora, bora programar!

Programando

– Bibliotecas necessária

É necessário baixar a biblioteca EmonLib (download). Após baixar, descompacte e mova para a pasta libraries da IDE do Arduino. A EmonLib será utilizada para nos auxiliar a calcular o valor da corrente elétrica consumida.

– Código utilizado

Para sabermos quantos Amperes estão passando pelo condutor, basta realizar a seguinte programação:

#include "EmonLib.h"

EnergyMonitor SCT013;

int pinSCT = A0;   //Pino analógico conectado ao SCT-013

int tensao = 127;
int potencia;

void setup()
{
    SCT013.current(pinSCT, 6.0606);

    Serial.begin(9600);
}

void loop()
{
    double Irms = SCT013.calcIrms(1480);   // Calcula o valor da Corrente
    
    potencia = Irms * tensao;          // Calcula o valor da Potencia Instantanea    

    Serial.print("Corrente = ");
    Serial.print(Irms);
    Serial.println(" A");
    
    Serial.print("Potencia = ");
    Serial.print(potencia);
    Serial.println(" W");
   
    delay(500);

    Serial.print(".");
    delay(500);
    Serial.print(".");
    delay(500);
    Serial.println(".");
    delay(500);
}

Após compilar e enviar o código ao Arduino, os valores de corrente elétrica e potência instantânea serão mostrados no Monitor Serial da IDE do Arduino, e serão atualizados a cada 2 segundos.

Colocando para funcionar

Código compilado e circuito montado! Veja abaixo o resultado.

Circuito montado na prática
Circuito montado na prática
Monitor Serial aberto

Entendendo a fundo

Software

– Incluindo as bibliotecas a serem utilizadas no projeto

Inicialmente, observe que foi necessário incluir uma biblioteca no código para que o mesmo pudesse funcionar corretamente. A biblioteca EmonLib.h é a responsável por realizar os cálculos para encontrar o valor eficaz da corrente a ser medida, baseando-se nas amostras colhidas no pinSCT.

#include "EmonLib.h"

– Declarando o objeto SCT013

Em seguida, cria-se um objeto que será utilizado posteriormente para representar o sensor de corrente SCT-013 no código.

Lembre-se: SCT013 é apenas um nome, sendo assim, é importante ressaltar que este objeto poderia ser chamado por qualquer outro nome, como por exemplo, sensorSCT.

EnergyMonitor SCT013;

– Definindo as configurações iniciais

Declaramos pinSCT = A0 para poder facilitar e tornar intuitivo o uso da porta analógica do arduino.

int pinSCT = A0;    //Pino analógico conectado ao SCT-013

Declaramos duas variáveis, uma chamada Tensao, e atribuímos o valor de 127, que equivale a tensão da rede aqui no nosso estado, e outra chamada Potencia, que será utilizada para reservar o resultado da multiplicação da tensão e da corrente.

int tensao = 127;
int potencia;

No void setup(), chamamos a função SCT013.current(pinSCT, 6.0606) da biblioteca EmonLib, para que seja realizado o cálculo do valor eficaz da corrente, onde ele se baseará nas amostras lidas do pinSCT, e é empregado um valor de calibração de 6.0606 que ensinaremos como encontra-lo mais abaixo.

SCT013.current(pinSCT, 6.0606);

Habilitamos também a comunicação serial entre o arduino e o computador por meio do comando Serial.begin(9600).

Serial.begin(9600);

Caso você tenha dúvidas sobre como utilizar a comunicação serial do arduino, recomendamos que veja o tutorial Comunicação Serial Arduino (clique aqui), presente no portal.

– Aquisição do valor de corrente

Na função void loop(), utiliza-se primeiramente a função SCT013.calcIrms() para atribuir o valor de corrente à variável Irms. O valor entre parênteses representa o número de amostras que a função irá ler do pinSCT.

    double Irms = SCT013.calcIrms(1480);

Veja que SCT013 é o nome que definimos para o objeto. Para usar uma função ligada a esse objeto, colocamos seu nome seguido de ponto e o nome da função. Ex: nomeobjeto.calcIrms().

– Cálculo da potência instantânea

Por meio da multiplicação da corrente Irms pela tensão estipulada, conseguimos descobrir a potência do dispositivo.

    potencia = Irms * tensao;

Em seguida imprimimos o valor de corrente e da potência no monitor serial:

    Serial.print("Corrente = ");
    Serial.print(Irms);
    Serial.println(" A");

    Serial.print("Potencia = ");
    Serial.print(potencia);
    Serial.println(" W");

Esperamos um tempo para a próxima medição.

    delay(500);
    Serial.print(".");
    delay(500);
    Serial.print(".");
    delay(500);
    Serial.println(".");
    delay(500);

Hardware

– Corrente gerada pelo sensor

O sensor é calibrado para medir a corrente alternada máxima de 100A AC. Esse valor de 100A é o valor RMS, que também é chamado de valor eficaz. O valor RMS é igual ao máximo valor que a corrente pode alcançar (corrente de pico) dividido pela raiz quadrada de dois. 

sensor de corrente SCT013

Então, temos que a corrente de pico máxima medida é de 141.4A:

i (medido) = √2 * i (rms) = 1,414 * 100A = 141,4 A

Sabendo que para uma corrente de 100A no primário, ele produz 50mA no secundário, é só jogarmos na fórmula de relação de transformação. O resultado será:

N1 / N2 = I2 / I1

  • I1 = corrente no primário (corrente a ser medida);
  • I2 = corrente no secundário;
  • N1 = número de votas do primário (no caso deste sensor, N1 será igual a 1);
  • N2 = número de voltas do secundário.

N2 = 2000 espiras.

A corrente na saída do sensor é inversamente proporcional ao número de voltas (aqui é 2000):

i (sensor) = i (medido) / numero_de_espiras = 141,4A / 2000 = 0,0707A

Teremos na saída do sensor o sinal da corrente induzida semelhante ao da figura a seguir:

Sinal na saída do sensor de corrente SCT para um valor de corrente eficaz máxima de 100A
Sinal na saída do SCT013 para um valor de corrente eficaz  de 100A

– Transformando corrente em tensão – Calculando a resistência de carga

O Arduino UNO só realiza, em seus pinos de entrada analógica, a leitura de níveis de tensão (entre 0V a 5V). Dessa forma, precisamos converter o sinal de corrente alternada do SCT-013 para um valor de tensão que seja legível para o Arduino.

O primeiro passo é adicionar um resistor de carga entre os polos do sensor de corrente:

Sensor sct013 esquema de ligação

Como a corrente alterna em torno de zero, vamos escolher um resistor que de na saída um valor máximo de tensão de 2,5V.

R(carga) = U(sensor)/I(sensor) = 2,5V / 0,0707A = 35,4Ω

 

O resistor de carga ideal é de 35,4Ω para uma corrente de até 100A, nesse caso usariamos um resistor de 33Ω. Dessa forma teremos o seguinte sinal de tensão sobre o resistor de carga:

Sinal de tensão sobre o resistor de 33
Sinal de tensão sobre o resistor de carga de 33Ω para uma corrente eficaz de 100A

OBS: Para nosso projeto, não iremos medir valores maiores que 10A. Dessa forma, podemos considerar que nossa corrente máxima é 10 vezes menor. Logo:

i (sensor) = i (medido) / numero_de_espiras = 14,14A / 2000 = 0,00707A

R(carga) = U(sensor)/I(sensor) = 2,5V / 0,00707A = 354Ω

Portanto, para nosso projeto adotamos o resistor de 330Ω.

Ou seja, você pode calcular o resistor ideal para a faixa de operação que você precisa. Se for 100A, você pode adotar o de 33Ω, se for de 10A você pode usar um resistor de 330Ω. Para outros valores, basta você calcular.

Seguiremos essa explicação considerando a faixa de operação de 100A, que é o máximo para nosso sensor.

– Convertendo sinal de tensão AC para DC

Agora temos um sinal de tensão alternada variando entre 2,5V positivo e 2,5V negativo. O Arduino não pode medir tensão negativa, então precisamos somar 2,5 V ao sinal para que ele varie entre 0V a 5V.

O primeiro passo para isso é montar um divisor de tensão usando a alimentação de 5V que a placa Arduino fornece.  Assim, consideramos R1 e R2 iguais a 10kΩ, e com isso, a tensão sobre eles será igual, pois os 5V provenientes do Arduino se dividirá igualmente entre eles.

Circuito divisor de tensão
Circuito divisor de tensão

Em seguida adicionamos um capacitor entre o GND e a saída de 2,5V no meio do divisor de tensão:

Circuito de offset

Esse circuito funcionará como uma bateria de 2,5V adicionando essa tensão à fonte AC. Este valor de tensão que acrescentamos a forma de onda é chamado de offset.

Forma de onda da tensão no resistor de carga

 

Forma de onda com offset

Veja como vai fica nosso circuito:

Sensor sct013 esquema de ligação completo

Na figura a seguir mostramos o circuito com seus respectivos sinais:

Como explicado, o circuito de offset funciona como uma fonte tensão de 2,5V DC, somando essa tensão à senoide do SCT-013. O circuito poderia ser ilustrado como a figura a seguir:

– Calibrando o software

Agora que sabemos o sensor carga, modificamos a função SCT013.current onde definimos o pino de entrada e o valor de calibração.

SCT013.current(pinSCT, Valor_de_Calibracao);

Este valor é de calibração, destinado justamente para caso queiramos mudar o valor do resistor de carga. Para descobrir ele, basta dividir o número total de voltas (espiras) do secundário pelo valor do resistor de carga dimensionado:

  • Valor_de_Calibração = 2000 / 33
  • Valor_de_Calibração = 60,606

Dessa forma, teremos:

SCT013.current(pinSCT, 60,606);

obs: Para nosso projeto prático nosso resistor escolhido foi de 330Ω devido ao fato de trabalharmos com uma faixa de operação de 10A. Dessa forma o valor de calibração usado no projeto prático foi de 6,0606.

Valor_de_Calibração = 2000 / 330 = 6,0606

Mudando o range de medição

Calculamos até aqui o valor de uma resistência de carga e valor de calibração do software que possibilita nosso software medir valores de corrente eficazes de até 100A, que é o máximo valor de projeto do sensor. Só que conforme a aplicação, nunca chegaremos a correntes tão altas. Por isso, podemos calibrar nosso software e circuito para ler valores de máxima corrente distintos, desde que estejam dentro do permitido para esse sensor.

Talvez você tenha percebido inclusive que o valor de resistência encontrado em nossos cálculos (33Ω) foi 10 vezes menor que o usada em nossa experiencia (330Ω). Para nosso projeto adotamos uma corrente máxima de 10A, visto que a maiorias dos eletrodomésticos consomem correntes menores que esse valor.

Para calcular a resistência de carga adequada basta repetirmos os seguintes passos:

– Passo 1 – Escolher a corrente rms máxima que será medida pelo circuito

imax (rms) = 10A

– Passo 2 – Converter esta corrente para o valor de pico:

i (medido) = √2 * imax (rms) = 1,414 * 10A = 14,14 A

– Passo 3 – Descobrir o número total de espiras da bobina do secundário:

Sabendo que para uma corrente de 100A no primário, ele produz 50mA no secundário, é só jogarmos na fórmula de relação de transformação. O resultado será:

N1 / N2 = I2 / I1

  • I1 = corrente no primário (corrente a ser medida);
  • I2 = corrente no secundário;
  • N1 = número de votas do primário (no caso deste sensor, N1 será igual a 1);
  • N2 = número de voltas do secundário.

N2 = 2000 espiras.

– Passo 4 – Calcular a corrente de pico máxima do secundário do SCT-013:

i (sensor) = i (medido) / numero_de_espiras = 14,14A / 2000 = 0,00707A

– Passo 5 – Dimensionar o resistor de carga:

R(carga) = U(sensor)/I(sensor) = 2,5V / 0,00707A = 354Ω

Para o projeto, arredondamos este valor para 330Ω, que é um valor comercial de resistor.

R(carga) = 330Ω

– Passo 6 – Colocando o valor de calibração no software:

Agora que sabemos o sensor carga, modificamos a função SCT013.current onde definimos o pino de entrada e o valor de calibração.

SCT013.current(pinSCT, Valor_de_Calibracao);

Este valor é de calibração, destinado justamente para caso queiramos mudar o valor do resistor de carga. Para descobrir ele, basta dividir o número total de voltas (espiras) do secundário pelo valor do resistor de carga dimensionado:

Valor_de_Calibração = N2 / R(carga)

Valor_de_Calibração = 2000 / 330

Valor_de_Calibração = 06,0606

Dessa forma, teremos:

SCT013.current(pinSCT, 6.0606);

 

Pronto, agora você sabe como adaptar o hardware para o seu projeto.


Desafio

Desenvolva um projeto em que seja possível medir a potência requisitada por um determinado equipamento. Para isto, utilize o sensor de corrente SCT-013 (tratado com detalhes neste material) em conjunto com, por exemplo, o sensor de tensão GBK P8.

Considerações finais

Esperamos que este tutorial tenha esclarecido algumas dúvidas sobre os procedimentos necessários para realizar monitoramento das correntes elétricas utilizadas nos acionamentos dos seus equipamentos. Obrigado pela atenção e continue buscando conhecimento no portal do Vida de Silício.

Privacy Preference Center