Advertisement
Guest User

gerador V1

a guest
Apr 19th, 2015
500
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.41 KB | None | 0 0
  1. //biblioteca tensao que le os pinos A0 e A1.
  2. //#include <Tensao.h>
  3. //Tensao rede(A0);
  4. //Tensao gerador(A1);
  5.  
  6. //configura o display
  7. #include <LiquidCrystal.h>
  8. LiquidCrystal lcd(4, 3, 8, 7, 6, 5);
  9.  
  10. //declara as variaveis
  11.  
  12. int sensorrede=0;
  13. int sensorgerador=0;
  14. byte rede; //se no usar o 0 e 1 para os sensores retire essa linha e a de baixo
  15. byte gerador;
  16. const int geradorOn = 9;
  17. const int relerede = 10;
  18. const int relepartida = 11;
  19. const int relecargagerador = 12;
  20. const int releparada = 2;
  21. const int comutafasecmd=16;
  22. const int comutaneutrocmd=17;
  23. long contador=millis();
  24.  
  25. void setup()
  26. {
  27.    
  28.   lcd.begin(16,2); //inicializa display de 16colunas/2linhas
  29.   pinMode(geradorOn,OUTPUT); //so para ilustrar o gerador ligado
  30.   digitalWrite(geradorOn,HIGH); //so para ilustrar o gerador ligado
  31.   pinMode(relerede,OUTPUT); //define relerede como saida
  32.   digitalWrite(relerede,HIGH); //pullup
  33.   pinMode(relepartida,OUTPUT);// define relepartida como saida
  34.   digitalWrite(relepartida,HIGH);//pullup
  35.   pinMode(relecargagerador,OUTPUT);//define relecargagerador como saida
  36.   digitalWrite(relecargagerador,HIGH);//pullup
  37.   pinMode(releparada,OUTPUT);
  38.   digitalWrite(releparada,HIGH);
  39.   pinMode(comutafasecmd,OUTPUT);
  40.   digitalWrite(comutafasecmd,HIGH);
  41.   pinMode(comutaneutrocmd,OUTPUT);
  42.   digitalWrite(comutaneutrocmd,HIGH);
  43.  
  44. }
  45.  
  46. void loop()
  47. {
  48.  
  49.   sensorrede=analogRead(A0);
  50.   sensorgerador=analogRead(A1);
  51.  
  52.   //coloquei esse if abaixo porque acho mais facil trabalhar com 0 e 1 para tem energia ou nao.
  53.   //se quiser usar  so descomentar as duas linhas baixo e trocar os if (sensorrede>300&&sensorgerador<300) por if (rede == 1 && gerador == 0), por exemplo
  54.   if ( sensorrede < 300 ){ rede = 0; } else { rede = 1; } //abaixo de 300 falta energia = 0, acima energia ok
  55.   if ( sensorgerador < 300 ){ gerador = 0; } else { gerador = 1; } //abaixo de 300 falta energia = 0, acima energia ok  
  56.  
  57.  
  58.   //rede ok e gerador faltando
  59.   if (rede == 1 && gerador == 0) { //se no usar o 0 e 1 para os sensores retire essa linha e descomente a de baixo
  60. //  if (sensorrede>300&&sensorgerador<300){
  61.     lcd.setCursor(0, 0);
  62.     lcd.print("ENERGIA DA REDE!");
  63.     digitalWrite(relerede,LOW);
  64.     digitalWrite(relepartida,HIGH);
  65.     digitalWrite(relecargagerador,HIGH);
  66.   }
  67.  
  68.   //rede faltando e gerador faltando
  69.   if (rede == 0 && gerador == 0) { //se no usar o 0 e 1 para os sensores retire essa linha e descomente a de baixo
  70. //  if (sensorrede<300&&sensorgerador<300){
  71. //    contador=millis();
  72.     if ((millis()-contador)>10000); //pula o if abaixo e segue as verificaçes, apos 10 segundos, se continuar faltando energia na rede e no gerador ai ele entra no if abaixo, ligando o gerador
  73.     if (rede == 0 && gerador == 0) { //se no usar o 0 e 1 para os sensores retire essa linha e descomente a de baixo
  74. //    if (sensorrede<300&&sensorgerador<300){
  75.       lcd.setCursor(0, 0);
  76.       lcd.print("REDE S/ ENERGIA!");
  77.       digitalWrite(relerede,HIGH);
  78.       delay(3000);
  79.       digitalWrite(relepartida,LOW);
  80.       lcd.setCursor(0, 1);
  81.       lcd.print("Partindo Gerador");
  82.       delay(3000);
  83.       digitalWrite(relepartida,HIGH);
  84.       contador=millis();
  85.     }
  86.   }
  87.  
  88.   //rede faltando e gerador ok
  89.     if (rede == 0 && gerador == 1) { //se no usar o 0 e 1 para os sensores retire essa linha e descomente a de baixo
  90. //  if (sensorrede<300&&sensorgerador>300){
  91.     delay(3000);
  92.     digitalWrite(geradorOn,LOW); //so para ilustrar o gerador (liga Led)
  93.     digitalWrite(comutafasecmd,LOW);
  94.     digitalWrite(comutaneutrocmd,LOW);
  95.     delay(3000);
  96.     digitalWrite(relecargagerador,LOW);
  97.     lcd.setCursor(0,0);
  98.     lcd.print("Gerador Ligado!!");
  99.     lcd.setCursor(0, 1);
  100.     lcd.print("Energia Gerador!");
  101.   }
  102.  
  103.   //rede ok e gerador ok
  104.   if (rede == 1 && gerador == 1) { //se no usar o 0 e 1 para os sensores retire essa linha e descomente a de baixo
  105. //  if (sensorrede>300&&sensorgerador>300){
  106.     lcd.clear();
  107.     digitalWrite(relecargagerador,HIGH);
  108.     delay(2000);
  109.     digitalWrite(comutafasecmd,HIGH);
  110.     digitalWrite(comutaneutrocmd,HIGH);
  111.     delay(2000);
  112.     digitalWrite(relerede,LOW);
  113.     lcd.setCursor(0,0);
  114.     lcd.print("EsfriandoGerador");
  115.     lcd.setCursor(0, 1);
  116.     lcd.print("ENERGIA DA REDE!");
  117.     delay(10000);
  118.     lcd.clear();
  119.     digitalWrite(releparada,LOW);
  120.     delay(3300);
  121.     digitalWrite(releparada,HIGH);
  122.     digitalWrite(geradorOn,HIGH); //so para ilustrar o gerador (desliga Led)
  123.   }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement