Boa noite! Sou iniciante na área e estou implementando um código com o objetivo de ler a corrente elétrica de uma instalação e calcular o consumo das cargas!
Estou usando o nodemcu,sensor SCT013 100A, o módulo I2C e um display LCD 16x2 ! o primeiro problema é que antes ( com esse mesmo código) aparecia no display os nomes "Corrente(A):" e "Cons.(Kwh)", mas agora só aparece o C nas duas linhas seguido de um simbolo estranho! o segundo problema é que acho que a corrente lida está errada, não sei se por conta do código ou por outro motivo, creio que o sensor não esteja com defeito!
Segue o código!
[code]#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "EmonLib.h"
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
int rede = 220; //Tensao da rede eletrica
float pino_sct = A0;
EnergyMonitor EnerMonitor; //Cria uma instancia da classe EnergyMonitor
#define I_calibration 42 // fator de calibração da corrente
float Irms= 0 ;
float Tempo = 0;
void setup()
{
Serial.begin(9600);
lcd.init();
EnerMonitor.current(pino_sct, I_calibration); // configura pino SCT e fator de calibração
lcd.backlight();
lcd.setCursor(0,0);
lcd.println("Corrente(A):");
lcd.setCursor(0,1);
lcd.println("Cons.(Kwh):");
}
void loop()
{
Irms = EnerMonitor.calcIrms(1480);
float analogVal = analogRead(pino_sct);
lcd.setCursor(12,0);
Serial.println(Irms,2);
lcd.print((Irms),2);
lcd.setCursor(12,1);
Serial.println((Irms*rede*(Tempo/3600)),2); // (P=V*I)*T(em ms)*1000(para transformar o tempo em segundos)/3600 segundos(Para dar o consumo em tempo real)
lcd.print((Irms*rede*(Tempo/3600)),2);
Tempo++;
delay(1000);
}
[/code]
DESDE JÁ AGRADEÇO A ATENÇÃO!