A grande vantagem de um sensor não invasivo está no fato de ele não precisar ter contato com os fios elétricos, pois trabalha com variação do campo magnético, trazendo segurança e fácil instalação para seus projetos industriais ou residenciais. A sua utilidade está em análise de eficiência energética, proteção contra surtos de corrente ou qualquer outra aplicação que seja necessário mensurar a corrente elétrica.
Este blog vai falar sobre como usar o sensor de corrente não invasivo com o ESP32, ou seja, a tensão máxima lida na entrada analógica será de 3,3V.
Passo a Passo:
1 - EXPLICAÇÃO SOBRE O SENSOR NÃO INVASIVO
O SCT 013 lê somente sinal de corrente alternada, pois trata-se de um transformador de corrente e para ter corrente no secundário, é preciso de variação de fluxo magnético, sendo assim, não lê corrente contínua.
Como falamos anteriormente sua grande vantagem está na segurança e fácil instalação, com ele não precisamos abrir o circuito para medir a corrente, basta “abraçar” o fio no qual se deseja fazer a medição, esse fio que passa pelo meio do sensor funciona como o primário do transformador, gerando no secundário uma corrente proporcional. Para lermos o sinal de saída, temos que converter a corrente de saída para uma tensão dentro da faixa de medição, no nosso caso, do ESP32.
2 - CARACTERÍSTICAS DO SENSOR
Nosso sensor em questão, será o de 100A para 50mA, ou seja, ao passar uma corrente de 100 amperes no fio envolvido pelo sensor, saíra 50mA no sensor, e para tornar esta corrente mensurável, usa-se normalmente o seguinte circuito.
O RA e o RB servem para deslocar o nível zero de medição, eles formam o divisor de potencial. Em nosso caso, a entrada analógica estará lendo sempre 1,65 volts que é a metade de 3,3 volts.
O mais importante é o resistor de Burden (carga), que conheço mais como shunt, tendo a função de fazer a lei de OHM para nós (Tensão = Corrente x Resistência), pois sabendo o resistor e a tensão que mediremos, calcularemos a corrente elétrica, e como a relação do sensor / transformador é 2000 ( relação = 100 / 0,05), saberemos a corrente que passa pelo fio.
Outro ponto muito importante é que a corrente será alternada, então geraremos uma tensão alternada em torno de 1,65 volts, sendo que o pico positivo não poderá ser superior a 3,3 volts e o inferior não poderá ser menor que zero, já que a entrada analógica lê tensão de 0 a 3,3 volts.
Se colocarmos num osciloscópio, teremos o gráfico abaixo:
O sensor é capaz de medir 100A rms então a corrente de pico neste caso seria 100 / 0,7071 = 141,4 A com isto se quisermos medir 100A rms, precisamos que o resistor de shunt esteja preparado para isto, sendo que, quando houver 141,4A de pico, a tensão não pode passar de 3,3 volts.
Então sendo 141,4 A de pico e a relação de 2000, teremos 0,07071 A de pico no secundário e para esta condição ter 1,6 volts de pico (já que em zero ampere dá 1,65 volts). O resistor será 1,6 / 0,07071 = 22,6 Ohm e o valor comercial é 22 R.
3 - UTILIZANDO A BIBLIOTECA PARA FAZER A MEDIÇÃO
Para fazer a medição vamos utilizar a biblioteca Emonlib.h, ao utilizar essa biblioteca é preciso ter atenção, pois nesse blog vamos utilizar uma especial para ESP32 que pode ser encontrada nesse link https://github.com/Savjee/EmonLib-esp32 .Ela é uma especial para o ESP32 pois diferente do Arduino, o conversor analógico para digital tem 12 bits de resolução ou de tamanho de dado da leitura, assim converte a entrada de 0 a 3,3 volts em um valor de 0 a 4095 impactando significativamente no comportamento.
Agora usando a Emonlib.h, esta library menciona uma linha usando um fator de calibração de 111.1. O que significa este número?
No link https://github.com/openenergymonitor/learn/blob/master/view/electricity-monitoring/ctac/emonlib-calibration-theory.md podemos ver que o número 111.1 é o número que define a relação de calibração do sensor e é calculado pela relação do transformador de corrente, dividido pelo resistor de shunt, que em nosso caso será 2000/22 = 90.91, sugiro usar no mínimo 4 algarismos significativos já que o AD do ESP32 tem 4096 combinações possíveis.
Mas logo na sequência do código temos o seguinte:
Do que se trata esse 1480? nas pesquisas que fiz, este significa a quantidade de amostras / leituras que serão realizadas para calcular a corrente. Então criei um ensaio para medir quanto tempo leva esta leitura variando o valor da quantidade de amostras.
Gerando a seguinte tabela para o ESP32, sabendo que 1 semiciclo de senoide dura 8,3333 milissegundos.
Fazendo o mesmo ensaio para um Arduino Uno e mantendo os dados anteriores, temos:
Perceba que o ESP32 é bem mais rápido que o Arduino também na prática.
Este número de amostras é uma maneira de fazer um filtro digital pois calculando a média de muitos semiciclos, atenuará o erro de instabilidade. Note também que o número de amostras é a mesma quantidade de medidas, mas o tempo de leitura dependerá do microcontrolador em uso.
Com o sensor SCT 013, biblioteca Emonlib e as dicas que passamos nesse blog, você já consegue colocar em prática seus projetos para medir corrente de acordo com sua necessidade. Para mais detalhes, você pode consultar o link da biblioteca Emonlib.h https://github.com/openenergymonitor/learn/blob/master/view/electricity-monitoring/ctac/emonlib-calibration-theory.md.
Aplicação na prática em vídeos:
Parte 1:
Parte 2:
O que achou deste blog?
Avalie-nos no google para que possamos alcançar e auxiliar cada vez mais pessoas a fazerem seus projetos e produtos! Contamos com você!