Projetos que envolvem telemetria estão ganhando cada vez mais seu papel de destaque na IoT. Podemos citar sistemas que medem vazão, pressão, corrente, tensão, potência, etc. Pensando nisso, no projeto de hoje “Medindo Corrente AC com NodeMCU e SCT-013-000”, te ensinaremos a medir corrente AC que variam de 0 a 100 Ampères com uso do NodeMCU. Vamos lá?
O nosso protagonista
O sensor SCT-013-000, capaz de medir apenas corrente AC, consiste em um transformador com uma razão de enrolamento 1:2000 nos fornecendo em seu secundário uma variação de corrente que em conjunto com um resistor de carga, ao qual chamaremos de RL, nos dá uma variação de tensão que poderemos interpretar como a corrente a ser medida. Esse sensor está disponível em diversos modelos, cuja diferença se encontra apenas no seu range de medição e consequentemente na sua razão de enrolamento. No nosso caso, o “000” indica que podemos medir até 100 Ampères. Vale a pena ressaltar que o sensor vêm com um conector P2 para a conexão do circuito, e o projetista poderá utilizar um outro conector fêmea para a conexão adequada no circuito.
Entendendo o circuito
Nosso sensor funciona partindo do principio que descreve o surgimento de um campo eletromagnético perpendicular à direção que a corrente elétrica percorre em um determinado condutor.
A partir daí, podemos separar nosso circuito em duas etapas bastante importantes:
1 – Redução da amplitude da corrente induzida (por isso utilizamos o transformador de corrente)
2 – Condicionamento do sinal a ser interpretado pelo sistema embarcado.
Nosso resistor de carga tem um valor teórico de 18Ω para um sistema embarcado que funcione com 3.3V, esse valor é alterado para 33Ω caso seja utilizado um Arduíno Uno, por exemplo, que funciona com 5V. Você pode consultar esse endereço aqui para calcular o valor do resistor de carga. Na nossa prática, utilizamos dois resistores de 10Ω em série, o que nos dá uma resistência total de 20Ω, que é um número bastante próximo do ideal.
Perceba também que temos um divisor de tensão com dois resistores de valores iguais, R1 e R2. No nosso caso, ambos com 10kΩ. Isso significa que teremos a tensão aplicada dividida por 2. No nosso caso, Vcc=3.3V, logo, a tensão de saída será 1.65V. Esse circuito divisor em conjunto com o capacitor C1, possibilita que tenhamos um nível DC deslocado do zero entre o valor máximo e mínimo (3.3V e 0V).
Na captura feita por um osciloscópio com uma corrente de aproximadamente 8A, podemos ver uma forma de onda senoidal centrada em 1.65V, assim como esperávamos. Isso significa que seu valor de pico a pico pode chegar em até 3.3V.
Entendendo o código
Para que nosso sistema funcione, precisaremos instalar na IDE do arduíno a biblioteca EmonLib, disponível aqui , ou você pode instalar diretamente na IDE do arduíno indo em preferências, gerenciador de bibliotecas, digitando “emonlib” na janela de pesquisa de pesquisa. Mas isso fica ao seu critério.
Depois de instalar a biblioteca, vamos inserir o seguinte código:
#include "EmonLib.h" // Inclui a biblioteca EmonLib EnergyMonitor emon1; // Cria um objeto chamado emon01 float leitura = A0; void setup() { Serial.begin(115200); // Inicia a serial com uma taxa de 115200 emon1.current(leitura, 111.11); // Corrente: pino de leitura, calibração. } void loop() { double Irms = emon1.calcIrms(1480); //Calcula a corrente RMS com 1480 amostras Serial.print(Irms); // Irms Serial.println("A"); }
Com o código bastante simples, podemos destacar dois pontos principais: o primeiro é o número 111.11 que será usado como argumento pela biblioteca para realizar o cálculo da corrente em Ampères, e indica o valor de calibração para o resistor de carga utilizado.
Já o número 1480 indica o número de amostras que será coletado num intervalo de tempo, esse valor é padrão para quase todas as aplicações.
Esquema na protoboard
Componentes:
- 2 resistores de 10Ω
- 2 resistores de 10Ω
- 1 capacitor eletrolítico de 10uF/16V
- 1 NodeMCU
- 1 sensor de corrente SCT-013-000
- Protoboboard
- Fios jumper
Juntando tudo
Código compilado, circuito montado, hora de testar.
Observação 1: Ao abrir o monitor serial, é importante usar o baud rate em 115200, valor configurado no código.
Observação 2: O sensor deve envolver APENAS 1 CONDUTOR! Caso mais de um fio seja envolto pelo sensor, a leitura será completamente errada. Então fique atento.
Confira agora o funcionamento do circuito e sua comparação com o valor obtido por um Amperímetro True RMS.