Medidor de corrente não invasivo com Arduino
Já vimos no post Como Fazer um Medidor de Energia Elétrica com Arduino o esquema de utilização de um sensor de corrente não invasivo de 20A. Neste post, vamos apresentar um projeto muito parecido, um medidor de corrente utilizando o Sensor de Corrente Não Invasivo 100A SCT013:
Esse sensor também é do tipo não invasivo, ou seja, você não precisa interromper o circuito para realizar a medição, bastando envolver um dos fios de energia para medir a corrente.
Cálculo do resistor de carga
Segundo informações do datasheet, o sensor de corrente SCT-013-020 (20A) tem na saída uma variação de tensão, e o SCT-013-000 (100A), tem na saída uma variação de corrente.
Assim, no microcontrolador conseguimos ler quase que diretamente a variação de tensão, mas no de 100A vamos precisar de um componente adicional: o “burden resistor” (“resistor de carga”), para gerar a variação de tensão que precisamos para efetuar a leitura no Arduino.
Para calcular o resistor de carga, vamos seguir alguns passos:
1 – Determinar a corrente máxima que vamos medir
No nosso caso, é um sensor de 100A, logo vamos determinar esse valor como corrente máxima
2 – Converter a corrente máxima RMS para corrente de pico, multiplicando-a por √2
Primary peak-current = RMS current × √2 = 100 A × 1.414 = 141.4A
3 – Dividir a corrente de pico pelo número de voltas do CT (2000) para determinar a corrente de pico na bobina secundária:
Secondary peak-current = Primary peak-current / no. of turns = 141.4 A / 2000 = 0.0707A
4 – Para melhorar a resolução da medição, a voltagem através do resistor de carga no pico de corrente deve ser igual a metade da tensão de referência do Arduino (AREF/2). Como a tensão de referência no Arduino é de 5V, teremos:
Ideal burden resistance = (AREF/2) / Secondary peak-current = 2.5 V / 0.0707 A = 35.4 Ω
Resumindo o cálculo anterior:
Burden Resistor (ohms) = (AREF * CT TURNS) / (2√2 * max primary current)
Se preferir pode utilizar uma ferramenta online que faz o cálculo deste resistor, neste link.
Circuito sensor de corrente 100A
Agora que já temos o valor do resistor de carga, vamos montar o circuito para ligação do sensor, que basicamente é o mesmo circuito do sensor de 20A, mas agora adicionando o resistor de carga. Temos então a seguinte lista de material:
- Sensor de Corrente SCT-013-000
- 2 resistores de 10K
- Display Nokia 5110
- 1 resistor de 33 Ω (para o resistor de carga)
- Capacitor 10 µF
Como não temos um resistor de 35.4 Ω disponível , o valor mais próximo é o de 33 Ω. Vamos usar esse valor para a montagem do circuito:
Esse sensor vem com um plug P2 e você pode conectá-lo ao Arduino usando um adaptador, ou pode retirar o plug e ligar os fios diretamente, como fizemos no circuito acima.
Medidor de corrente com o sensor SCT-013-000 100A
Carregue o programa abaixo, que usa a biblioteca EmonLib (download). Descompacte a pasta e coloque dentro da pasta LIBRARIES da IDE do Arduino. Para utilizar o display gráfico, faça o download também das bibliotecas Adafruit_GFX (download) e Adafruit_PCD8544 (download).
//Programa : Medidor de corrente com Arduino e SCT-013 100A //Autor : FILIPEFLOP //Baseado no programa exemplo da biblioteca EmonLib //Carrega as bibliotecas #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> #include "EmonLib.h" #include <SPI.h> EnergyMonitor emon1; Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12); //Tensao da rede eletrica int rede = 220; //Pino do sensor SCT int pino_sct = A1; void setup() { Serial.begin(9600); //Pino, calibracao - Cur Const= Ratio/BurdenR. 2000/33 = 60 emon1.current(pino_sct, 60); //Ajuste iniciais display display.begin(); //Ajusta o contraste do display display.setContrast(48); //Apaga o buffer e o display display.clearDisplay(); //Define tamanho do texto e cor display.setTextSize(1); display.setTextColor(BLACK); //Retangulo principal display.drawRect(0, 0, 84, 48, 2); //Retangulo corrente display.fillRect(0, 0, 84, 15, 2); display.setTextColor(WHITE, BLACK); display.setCursor(18, 4); display.println("Corrente"); display.setTextColor(BLACK, WHITE); display.setTextSize(2); } void loop() { //Calcula a corrente double Irms = emon1.calcIrms(1480); //Mostra o valor da corrente no serial monitor e display Serial.print("Corrente : "); Serial.print(Irms); // Irms display.fillRect(4, 15, 55 , 20, 0); display.setCursor(8, 22); display.println(Irms, 2); display.display(); display.setCursor(67, 22); display.println("A"); delay(1000); }
Para realizar a medição, abra o sensor e envolva um dos fios de energia. Será mostrado no display o valor da corrente que está passando naquele momento:
Não esqueça de ajustar o valor da rede elétrica (110 ou 220V), na linha 17 do programa.
Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP !
Site: Blog FILIPEFLOP