Advertisement
RuiViana

Medidor Potencia Eletrica

Nov 15th, 2015
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. //Programa : Medidor de energia elétrica com Arduino e SCT-013
  2.  
  3. //Baseado no programa exemplo da biblioteca EmonLib
  4.  
  5. //Carrega as bibliotecas
  6. #include "EmonLib.h"
  7. #include <LiquidCrystal.h>
  8. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  9. EnergyMonitor emon1;
  10.  
  11. #define pino_sct 1 // Pino do sensor SCT
  12.  
  13. // long intervalo = 3600000; // 1 Hora
  14. float rede = 127.0; // Tensao da rede eletrica
  15. int long intervalo = 60000; // 1 segundo
  16. unsigned long Tempo = 0; // variavel para salvar novo tempo
  17. unsigned long TempoACC = 0; // Tempo decorrido acumulado
  18. unsigned int Elapse = 0; // Tempo decorrido
  19. float Custo = 0; // Custo de consumo
  20. float CustoACC = 0; // Custo de consumo acumulado
  21. float Irms = 0; // Corrente em A
  22. float Potencia = 0; // Potencia calculada
  23. float Consumo = 0; // Consumo calculado
  24. //---------------------------------------------------
  25. void setup()
  26. {
  27. Serial.begin(9600); // iniciando a serial
  28. lcd.begin(16, 2); // iniciando display <------------- alterei de 16x4
  29. lcd.clear();
  30.  
  31. emon1.current(pino_sct, 29); //Pino, calibracao - Cur Const= Ratio/BurdenR. 1800/62 = 29. ?????
  32.  
  33. lcd.print("Projeto TCC"); //Informacoes iniciais display
  34. lcd.setCursor(0,1);
  35. lcd.print("Med de Consumo");
  36. lcd.setCursor(2,0);
  37.  
  38. delay(500);
  39.  
  40. lcd.clear();
  41. lcd.setCursor(0,0);
  42. lcd.print("A=");
  43. lcd.setCursor(0,1);
  44. lcd.print("W/h=");
  45. // lcd.setCursor(0,2);
  46. // lcd.print("R$=");
  47. }
  48. //----------------------------------------------------
  49. void loop()
  50. {
  51. {
  52. Elapse = millis()-Tempo; // Salva tempo decorrido
  53. Tempo = millis(); // Salva novo tempo
  54. // Irms = emon1.calcIrms(1480); // Calcula a corrente
  55. Irms = 10; // Valor para teste corrente
  56. Potencia = (Irms * rede); // calcula a potência em W
  57. // Potencia = (Irms * 250); // Valor para teste calcula a potência em W
  58. Consumo = (Potencia*Elapse)/1000 ; // calcula a potência por tempo W/t t em segundos
  59. Custo = (Consumo)/1000 * 0.748406;
  60. // Custo = (Consumo/1000) * 1; // Valor para teste Calcula o consumo em reais Valor de KW/seg em reais (1)
  61. TempoACC = TempoACC + Elapse; // Acumula tempo
  62. CustoACC = CustoACC + Custo; // Acumula custo KWt
  63. // Serial.println(Elapse);
  64. // Serial.println(Custo,6);
  65. // Serial.println(TempoACC);
  66. // Serial.println(CustoACC,6);
  67. // Serial.println(" ");
  68.  
  69. lcd.setCursor(2 ,0);
  70. lcd.print(" "); // Limpa area de corrente instantânea no lcd
  71. lcd.setCursor(2 ,0);
  72. lcd.print(Irms,1); // Imprime corrente instantânea no lcd
  73. lcd.setCursor(4,1);
  74. lcd.print(" "); // Limpa area de potência instantânea no lcd
  75. lcd.setCursor(4,1);
  76. lcd.print(Potencia,0); // Imprime potência instantânea no lcd
  77.  
  78. if(TempoACC >= intervalo)
  79. {
  80. lcd.setCursor(6,0);
  81. lcd.print("R$ ");
  82. lcd.print((CustoACC/3600),6); // Imprime o consumo no lcd
  83. TempoACC = 0; // Zera variaveis de acumulo
  84. CustoACC = 0;
  85. }
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement