Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Programa : Medidor de energia elétrica com Arduino e SCT-013
- //Baseado no programa exemplo da biblioteca EmonLib
- //Carrega as bibliotecas
- #include "EmonLib.h"
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
- EnergyMonitor emon1;
- #define pino_sct 1 // Pino do sensor SCT
- // long intervalo = 3600000; // 1 Hora
- float rede = 127.0; // Tensao da rede eletrica
- int long intervalo = 60000; // 1 segundo
- unsigned long Tempo = 0; // variavel para salvar novo tempo
- unsigned long TempoACC = 0; // Tempo decorrido acumulado
- unsigned int Elapse = 0; // Tempo decorrido
- float Custo = 0; // Custo de consumo
- float CustoACC = 0; // Custo de consumo acumulado
- float Irms = 0; // Corrente em A
- float Potencia = 0; // Potencia calculada
- float Consumo = 0; // Consumo calculado
- //---------------------------------------------------
- void setup()
- {
- Serial.begin(9600); // iniciando a serial
- lcd.begin(16, 2); // iniciando display <------------- alterei de 16x4
- lcd.clear();
- emon1.current(pino_sct, 29); //Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29. ?????
- lcd.print("Projeto TCC"); //Informacoes iniciais display
- lcd.setCursor(0,1);
- lcd.print("Med de Consumo");
- lcd.setCursor(2,0);
- delay(500);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("A=");
- lcd.setCursor(0,1);
- lcd.print("W/h=");
- // lcd.setCursor(0,2);
- // lcd.print("R$=");
- }
- //----------------------------------------------------
- void loop()
- {
- {
- Elapse = millis()-Tempo; // Salva tempo decorrido
- Tempo = millis(); // Salva novo tempo
- // Irms = emon1.calcIrms(1480); // Calcula a corrente
- Irms = 10; // Valor para teste corrente
- Potencia = (Irms * rede); // calcula a potência em W
- // Potencia = (Irms * 250); // Valor para teste calcula a potência em W
- Consumo = (Potencia*Elapse)/1000 ; // calcula a potência por tempo W/t t em segundos
- Custo = (Consumo)/1000 * 0.748406;
- // Custo = (Consumo/1000) * 1; // Valor para teste Calcula o consumo em reais Valor de KW/seg em reais (1)
- TempoACC = TempoACC + Elapse; // Acumula tempo
- CustoACC = CustoACC + Custo; // Acumula custo KWt
- // Serial.println(Elapse);
- // Serial.println(Custo,6);
- // Serial.println(TempoACC);
- // Serial.println(CustoACC,6);
- // Serial.println(" ");
- lcd.setCursor(2 ,0);
- lcd.print(" "); // Limpa area de corrente instantânea no lcd
- lcd.setCursor(2 ,0);
- lcd.print(Irms,1); // Imprime corrente instantânea no lcd
- lcd.setCursor(4,1);
- lcd.print(" "); // Limpa area de potência instantânea no lcd
- lcd.setCursor(4,1);
- lcd.print(Potencia,0); // Imprime potência instantânea no lcd
- if(TempoACC >= intervalo)
- {
- lcd.setCursor(6,0);
- lcd.print("R$ ");
- lcd.print((CustoACC/3600),6); // Imprime o consumo no lcd
- TempoACC = 0; // Zera variaveis de acumulo
- CustoACC = 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement