/*
Medidor de Corrente e Energia com Arduino
Eletrogate 13 de setembro de 2017Atualizado em: 25 ago 20229 min
Introdução
Neste artigo vamos montar um medidor de energia CA (corrente alternada) usando o Arduino UNO.
Medidores de energia fazem parte do dia a dia de qualquer residência, prédio ou comércio.
Vários modelos de empresas tradicionais como a Clamper e Nansem estão disponíveis no mercado
com faixas de preço variadas.
Os componentes chave do medidor são os sensores de corrente e tensão. Dependendo da tecnologia
e das especificações de medição, o produto final pode ficar mais caro ou mais barato. Para essa
montagem vamos utilizar um sensor de corrente CA não invasivo 100A SCT-013.
O medidor de energia consiste basicamente em um sensor de corrente e um de tensão conectados a
um circuito microprocessado, que no caso é o Arduino UNO. Fazemos a leitura das duas variáveis
elétricas básicas e a partir delas determinamos a potência elétrica instantânea e a energia
consumida em um determinado intervalo de tempo, que é dado pela potência instantânea integrada
no período de tempo de medição.
Caso a potência elétrica seja constante, basta multiplicar a potência pelo tempo de consumo.
Assim, uma lâmpada de 100W ligada por 2 horas irá consumir 200 Wh(watt-hora). Caso a potência
elétrica seja dada por uma função, digamos p(t), a energia é calculada fazendo-se a integral
de p(t) no período de medição.
No nosso caso, vamos medir a potência instantânea a partir do sensor de corrente. A energia será
calculada por meio de um somatório (que na prática é o que uma integral faz). Assim, vamos
considerar um passo de integração de 1 segundos. Para cada passo vamos medir a potência elétrica
e encontrar a energia correspondente a esse intervalo e ir somando todos esses valores em uma
variável, que será apresentado na LCD.
Vamos apresentar em um display LCD os valores de corrente e energia calculada a partir do momento
que o Arduino é energizado.
Sobre o Autor
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura,
tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle,
desenvolvimento de projetos eletrônicos e sua estante de livros.
https://blog.eletrogate.com/medidor-de-corrente-e-energia-com-arduino-sensor-de-corrente-e-tensao/
*/
#include "EmonLib.h"
#include <LiquidCrystal.h>
#define Vrede 129 // define a tensão RMS da rede(valor lido com multimetro)
#define InputSCT 2 // define o canal analógico para o sinal do SCT = pino A2
#define LCD_RS 9 // definição dos pinos do LCD
#define LCD_E 8
#define LCD_D4 3
#define LCD_D5 4
#define LCD_D6 5
#define LCD_D7 6
#define I_calibration 60 // fator de calibração da corrente - leia minhas dicas no tutorial
EnergyMonitor EnerMonitor; //Cria uma instancia da classe EnergyMonitor
LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
double Irms = 0 ;
float Tempo = 0;
void setup()
{
lcd.begin(16, 2); // configura LCD 16 colunas x 2 linhas
lcd.clear(); // limpa tela do LCD
EnerMonitor.current(InputSCT, I_calibration); // configura pino SCT e fator de calibração
lcd.setCursor(0,0); // seleciona coluna 0, linha 0
lcd.print("Irms(A)="); // mostra texto
lcd.setCursor(0,1); // seleciona coluna 0, linha 1
lcd.print("Ener(Wh)="); // mostra texto
}
void loop()
{
Irms = EnerMonitor.calcIrms(1480); // calculo da corrente RMS
lcd.setCursor(9,0); // seleciona coluna 9, linha 0
lcd.print(Irms); // mostra valor da corrente
lcd.setCursor(9,1); // seleciona coluna 9, linha 1
lcd.print(Irms*Vrede*(Tempo/3600)); // calculo de Watt/hora
Tempo++; // incrementa Tempo
delay(1000); // atraso de 1 segundo
}