Quantcast
Channel: MakerHero
Viewing all articles
Browse latest Browse all 416

Medidor de corrente não invasivo com Arduino

$
0
0

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:

Circuito_Arduino_Sensor_Corrente_SCT013

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:

Circuito Medidor de Corrente com Arduino

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


Viewing all articles
Browse latest Browse all 416