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).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
//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.