Advertisement
Guest User

Untitled

a guest
May 5th, 2015
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.98 KB | None | 0 0
  1. //configura o display
  2. #include <LiquidCrystal.h>
  3. LiquidCrystal lcd(4, 3, 8, 7, 6, 5);
  4.  
  5. //declara as variaveis
  6.  
  7. int sensorrede=0;
  8. int sensorgerador=0;
  9. byte rede; //se no usar o 0 e 1 para os sensores retire essa linha e a de baixo
  10. byte gerador;
  11. const int geradorOn = 9;
  12. const int relerede = 10;
  13. const int relepartida = 11;
  14. const int relecargagerador = 12;
  15. const int releparada = 2;
  16. const int comutafasecmd=16;
  17. const int comutaneutrocmd=17;
  18. long contador = millis();
  19.  
  20.  
  21. void setup()
  22. {
  23.    
  24.   lcd.begin(16,2); //inicializa display de 16colunas/2linhas
  25.   pinMode(geradorOn,OUTPUT); //so para ilustrar o gerador ligado
  26.   digitalWrite(geradorOn,HIGH); //so para ilustrar o gerador ligado
  27.   pinMode(relerede,OUTPUT); //define relerede como saida
  28.   digitalWrite(relerede,HIGH); //pullup
  29.   pinMode(relepartida,OUTPUT);// define relepartida como saida
  30.   digitalWrite(relepartida,HIGH);//pullup
  31.   pinMode(relecargagerador,OUTPUT);//define relecargagerador como saida
  32.   digitalWrite(relecargagerador,HIGH);//pullup
  33.   pinMode(releparada,OUTPUT);
  34.   digitalWrite(releparada,HIGH);
  35.   pinMode(comutafasecmd,OUTPUT);
  36.   digitalWrite(comutafasecmd,HIGH);
  37.   pinMode(comutaneutrocmd,OUTPUT);
  38.   digitalWrite(comutaneutrocmd,HIGH);
  39.   Serial.begin(9600);
  40.  
  41. }
  42.  
  43. void loop()
  44. {
  45.  
  46.  
  47.   sensorrede=analogRead(A0);
  48.   sensorgerador=analogRead(A1);
  49.  
  50.  
  51.   if ( sensorrede < 300 ){ rede = 0; } else { rede = 1; } //abaixo de 300 falta energia = 0, acima energia ok
  52.   if ( sensorgerador < 300 ){ gerador = 0; } else { gerador = 1; } //abaixo de 300 falta energia = 0, acima energia ok  
  53.  
  54.  
  55.   //rede ok e gerador faltando
  56.   if (rede == 1 && gerador == 0) { //se no usar o 0 e 1 para os sensores retire essa linha e descomente a de baixo
  57.     lcd.setCursor(0, 0);
  58.     lcd.print("ENERGIA DA REDE!");
  59.     digitalWrite(relerede,LOW);
  60.     digitalWrite(relepartida,HIGH);
  61.     digitalWrite(relecargagerador,HIGH);
  62.   }
  63.  
  64.   //rede faltando e gerador faltando
  65.   if (rede == 0 && gerador == 0) {
  66.     Serial.println("1 - faltou energia por isso entrei nesse if");
  67.     Serial.print("millis = ");Serial.print(millis());Serial.print(" - contador = "); Serial.print(contador);Serial.print(" soma = "); Serial.println((millis() - contador));
  68.  
  69.     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
  70.       Serial.print("\n\n");
  71.       Serial.println("3 >>>>>>>>>>>>>> - entrei no if dos 10 segundos");
  72.      
  73.       if (rede == 0 && gerador == 0) {
  74.         lcd.setCursor(0, 0);
  75.         lcd.print("REDE S/ ENERGIA!");
  76.         digitalWrite(relerede,HIGH);
  77.         delay(3000);
  78.         digitalWrite(relepartida,LOW);
  79.         lcd.setCursor(0, 1);
  80.         lcd.print("Partindo Gerador");
  81.         delay(3000);
  82.         digitalWrite(relepartida,HIGH);
  83.       }
  84.       contador = millis();
  85.       } else {
  86.         Serial.println("2 - faltou energia e no deu 10seg ainda");
  87.       }
  88.   }
  89.  
  90.   //rede faltando e gerador ok
  91.   if (rede == 0 && gerador == 1) {
  92.     delay(3000);
  93.     digitalWrite(geradorOn,LOW); //so para ilustrar o gerador (liga Led)
  94.     digitalWrite(comutafasecmd,LOW);
  95.     digitalWrite(comutaneutrocmd,LOW);
  96.     delay(3000);
  97.     digitalWrite(relecargagerador,LOW);
  98.     lcd.setCursor(0,0);
  99.     lcd.print("Gerador Ligado!!");
  100.     lcd.setCursor(0, 1);
  101.     lcd.print("Energia Gerador!");
  102.   }
  103.  
  104.   //rede ok e gerador ok
  105.   if (rede == 1 && gerador == 1) {
  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