Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <EEPROM.h>d
- #include<string.h>
- #include <DS1307.h>
- #include <Wire.h>
- #include <LiquidCrystal.h> //Biblioteca do LCD
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Portas do lcd
- int bEnter = A1;//botão de enter // Variaveis
- int bMode = A0; //botão de menu *
- int bUp = A2; //botão de acrescimo *
- int bDown = A3; //botão de decrescimo // dos Botões
- int programa = 0; //variavel para armazenar programas // Variaveis para armazenar
- int dia =0; //Dias da semana *
- int tBomba= 0;//Tempo para desligar a bomba *
- int horario =0; //armazena os horarios *
- int manual =0;//aciona o manual e automatico do sistema *
- int testar =0; // faz o teste das ligações *
- int zer = 0;//zerar o programa *
- int acertarh =0;//Ajuste de hora // valores do menu
- int p;//variavel programas
- int tB;//variavel tempo de bomba
- int F;
- int tempo=0;
- const int bomba = 10;//variavel do rele
- const int vs1 = 9;
- const int vs2 = 8;
- const int vs3 = 7;
- const int vs4 = 6;
- int hora = 0;
- int minu = 0;
- int semana;
- int d[8]; //dias da semana
- int h[34]; //horarios dos programas
- char dateTime[20];
- int RTCValues[7];
- int horaA[7];
- byte menu = 0; //variavel do menu
- byte contador = 0; //variavel contadora
- void setup() {
- Serial.begin(9600);
- DS1307.begin();
- lcd.begin(16, 2); // iniciando o lcd
- pinMode(bMode, INPUT_PULLUP); //botão Mode
- pinMode(bUp, INPUT_PULLUP); //Botão Aumenta
- pinMode(bDown, INPUT_PULLUP); //Botão Diminui
- pinMode(bEnter, INPUT_PULLUP); //Botão Enter
- pinMode(bomba, OUTPUT);//Rele da Bomba
- pinMode(vs1, OUTPUT);
- pinMode(vs2, OUTPUT);
- pinMode(vs3, OUTPUT);
- pinMode(vs4, OUTPUT);
- digitalWrite(bomba, LOW);
- digitalWrite(vs1, HIGH);
- digitalWrite(vs2, HIGH);
- digitalWrite(vs3, HIGH);
- digitalWrite(vs4, HIGH);
- lcd.print(" Iniciando...");
- delay(2000);
- lcd.clear();
- lcd.setCursor(1,0);lcd.print("Luciano Junior");
- lcd.setCursor(3,1);lcd.print("Versao 1.0");
- delay(5000);
- lcd.clear();
- }
- void menus() //Função dos Menus
- {
- delay(1000);
- if(digitalRead(bMode)==LOW){menu=1;}
- while(menu>0)
- {
- lcd.clear();
- lcd.setCursor(0,0);
- if(menu==1){lcd.print("Num de Programas");if(digitalRead(bEnter)==LOW){programa=1; menu=0; numP();}}
- if(menu==2){lcd.print("Definir Dias ");if(digitalRead(bEnter)==LOW){dia=1; menu=0; dias();}}
- if(menu==3){lcd.print("Definir Horarios");if(digitalRead(bEnter)==LOW){horario=1; menu=0; horarios();}}
- if(menu==4){lcd.print("Tempo de Bomba ");if(digitalRead(bEnter)==LOW){tBomba=1; menu=0; Bomba();}}
- if(menu==5){lcd.print("Automatic/Manual");if(digitalRead(bEnter)==LOW){manual=1; menu=0; aut();}}
- if(menu==6){lcd.print("Testar Ligacao ");if(digitalRead(bEnter)==LOW){testar=1; menu=0; teste();}}
- if(menu==7){lcd.print("Zerar Programas ");if(digitalRead(bEnter)==LOW){zer=1; menu=0; zerar();}}
- if(menu==8){lcd.print("Ajustar Hra Data");if(digitalRead(bEnter)==LOW){acertarh=1; menu=0; acertahora();}}
- if(menu==9){lcd.print("Sair ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(6,1);lcd.write(B01111111);lcd.print("Ant");if(digitalRead(bEnter)==LOW){menu=0;}}
- if(menu >0 && menu<9){lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(6,1);lcd.write(B01111111);lcd.print("Ant");lcd.setCursor(11,1);lcd.print("Prox");lcd.write(B01111110);}
- if(!digitalRead(bDown)==LOW && menu <= 9){delay(120);menu++;}
- if(!digitalRead(bUp)==LOW && menu > 0){delay(120);menu--;}
- }
- delay(100);
- }
- void numP()//Função da quantidade de programas, limite de 3 por dia
- {
- delay(1000);
- while(programa >0 && programa<=4)
- {
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Programas ");
- lcd.print(programa);
- lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(7,1);lcd.print("(-)");lcd.setCursor(12,1);lcd.print("(+)");
- delay(70);
- if(digitalRead(bUp)==LOW && programa<3){delay(70);programa++;}
- if(digitalRead(bDown)==LOW && programa>1){delay(70);programa--;}
- if(digitalRead(bEnter)==LOW){p=programa*2;programa=0;dia=1;dias();}
- if(digitalRead(bMode)==LOW){menu=0;programa=0;}
- }
- }
- void dias()//Dias da semana para serem irrigados
- {
- lcd.clear();lcd.setCursor(0,0);lcd.print("Definir Dias ");
- delay(1000);
- int d[8]={0};
- while(dia >0 && dia<9)
- {
- lcd.clear();
- lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(6,1);lcd.write(B01111111);lcd.print("Ant");lcd.setCursor(11,1);lcd.print("Prox");lcd.write(B01111110);
- lcd.setCursor(0,0);
- if(dia==1){lcd.print("Todos os dias");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=0;d[0]=1;}else{d[0]=0;}}
- if(dia==2){lcd.print("Segunda ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=3;d[2]=1;}else{d[2]=0;}}
- if(dia==3){lcd.print("Terca ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=4;d[3]=1;}else{d[3]=0;}}
- if(dia==4){lcd.print("Quarta ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=5;d[4]=1;}else{d[4]=0;}}
- if(dia==5){lcd.print("Quinta ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=6;d[5]=1;}else{d[5]=0;}}
- if(dia==6){lcd.print("Sexta ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=7;d[6]=1;}else{d[6]=0;}}
- if(dia==7){lcd.print("Sabado ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=8;d[7]=1;}else{d[7]=0;}}
- if(dia==8){lcd.print("Domingo ");if(digitalRead(bEnter)==LOW){lcd.clear();lcd.print("OK");delay(1000);dia=0;d[1]=1;}else{d[1]=0;}}
- delay(70);
- if(digitalRead(bUp)==LOW && dia<=8){delay(70);dia++;}
- if(digitalRead(bDown)==LOW && dia>1){delay(70);dia--;}
- if(digitalRead(bMode)==LOW){menu=0;dia=0;}
- }
- horario=1;horarios();
- }
- void horarios()//Os horarios de inicio
- {
- lcd.clear();lcd.setCursor(0,0);lcd.print("Definir Horarios");
- delay(1000);
- horario=p;
- while(horario >0)
- {
- lcd.clear();lcd.setCursor(0,0); //hora = numeros pares e minutos = numeros impares
- switch(p)
- {
- case 2:
- if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
- lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
- h[30]=0;//Para realizar o Calculo
- break;
- case 4:
- if(horario==4 || horario==3){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
- lcd.print(h[4]);lcd.print(":");lcd.print(h[3]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
- if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 2 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
- lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
- h[31]=0;
- break;
- case 6:
- if(horario==6 || horario==5){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
- lcd.print(h[6]);lcd.print(":");lcd.print(h[5]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
- if(horario==4 || horario==3){lcd.setCursor(0,0);lcd.print(" Programa 2 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
- lcd.print(h[4]);lcd.print(":");lcd.print(h[3]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
- if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 3 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
- lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
- h[32]=0;
- break;
- }//fim switch
- if(digitalRead(bUp)==LOW){delay(120);h[horario]++;}
- if(digitalRead(bDown)==LOW){delay(120);h[horario]--;}
- if(digitalRead(bEnter)==LOW){delay(120);horario--;}
- if(digitalRead(bMode)==LOW){menu=0;horario=0;}
- if(h[2] > 23){h[2] = 0; }
- if(h[2] < 0){h[2] = 23; }
- if(h[4] > 23){h[4] = 0; }
- if(h[4] < 0){h[4] = 23; }
- if(h[6] > 23){h[6] = 0; }
- if(h[6] < 0){h[6] = 23; }
- if(h[1] > 59){h[1] = 0; }
- if(h[1] < 0){h[1] = 59; }
- if(h[3] > 59){h[3] = 0; }
- if(h[3] < 0){h[3] = 59; }
- if(h[5] > 59){h[5] = 0; }
- if(h[5] < 0){h[5] = 59; }
- }//fim while
- tBomba=1;Bomba();
- }//fim void
- void acertahora()//Acertar a hora no RTC
- {
- delay(1000);
- while(acertarh>0 && acertarh<8)
- {
- lcd.clear();lcd.setCursor(0,0);
- if(acertarh==1){lcd.print(" Entre com Ano ");}
- if(acertarh==2){lcd.print(" Entre com Mes ");}
- if(acertarh==3){lcd.print(" Entre com Dia ");}
- if(acertarh==4){lcd.print(" Entre cm Semana");}
- if(acertarh==5){lcd.print(" Entre com Hora ");}
- if(acertarh==6){lcd.print(" Entre com Min ");}
- if(acertarh==7){lcd.print(" Entre com Seg ");}
- if(digitalRead(bUp)==LOW){delay(70);horaA[acertarh]++;}
- if(digitalRead(bDown)==LOW){delay(70);horaA[acertarh]--;}
- if(digitalRead(bEnter)==LOW){delay(70);acertarh++;}
- if(digitalRead(bMode)==LOW){menu=0;acertarh=0;}
- lcd.setCursor(10,1);
- lcd.print(horaA[acertarh]);
- delay(120);
- }
- DS1307.setDate(horaA[1], horaA[2], horaA[3], horaA[4], horaA[5], horaA[6], horaA[7]); // AQUI ENVIAMOS OS DADOS DEFINIDOS PARA O REAL TIME CLOK
- lcd.clear();
- }
- void Bomba()//Tempo que a bomba ficará ligada
- {
- delay(1000);
- while(tBomba >=1)
- {
- lcd.clear();lcd.setCursor(0,0);lcd.print("Tempo ");lcd.print(tBomba);lcd.print(" minutos");
- lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(7,1);lcd.print("(-)");lcd.setCursor(12,1);lcd.print("(+)");
- delay(120);
- if(tBomba>60){tBomba=1;}
- if(digitalRead(bUp)==LOW){delay(70);tBomba++;}
- if(digitalRead(bDown)==LOW){delay(70);tBomba--;}
- if(digitalRead(bEnter)==LOW){delay(70);tB=tBomba;menu=0;tBomba=0;}
- if(digitalRead(bMode)==LOW){menu=0;tBomba=0;}
- //Vetores recebem horas e minutos e converte para minutos
- //Calculo Programa 1
- if(h[2]!=0 && h[1]!=0 && h[30]==0 && tB!=0){
- h[34]=h[2];h[33]=h[1]; //Depois acrescenta o valor do tempo de bomba(tB)
- h[34]=h[34]*60;h[34]=h[34]+h[33]+(4*tB);h[33]=h[34]%60;h[34]=h[34]/60; //Operação desliga bomba e valvula 4 //Retorna os valores para os vetores com o horario de desligar
- h[8]=h[2];h[7]=h[1]; //Exemplo: Programa 1 - 6:30 com tempo de bomba 10min
- h[8]=h[8]*60;h[8]=h[8]+h[7]+tB;h[7]=h[8]%60;h[8]=h[8]/60;//1 tempo(desliga 1 e liga 2) //Em minutos (6*60)+30+10=400minutos
- h[10]=h[2];h[9]=h[1]; //Tranformando para desligar hora=400/60=6 e minuto=400%60=40
- h[10]=h[10]*60;h[10]=h[10]+h[9]+(2*tB);h[9]=h[10]%60;h[10]=h[10]/60;//2 tempo(desliga 2 e liga 3)
- h[12]=h[2];h[11]=h[1];
- h[12]=h[12]*60;h[12]=h[12]+h[11]+(3*tB);h[11]=h[12]%60;h[12]=h[12]/60;//3 tempo(desliga 3 e liga 4)
- //Calculo Programa 2
- if(h[4]!=0 && h[3]!=0 && h[31]==0){
- h[14]=h[4];h[15]=h[3];
- h[14]=h[14]*60;h[14]=h[14]+h[15]+(4*tB);h[15]=h[14]%60;h[14]=h[14]/60;//Operação Desliga bomba e valvula 4
- h[16]=h[4];h[17]=h[3];
- h[16]=h[16]*60;h[16]=h[16]+h[17]+tB;h[17]=h[16]%60;h[16]=h[16]/60;//1 tempo(desliga 1 e liga 2)
- h[18]=h[4];h[19]=h[3];
- h[18]=h[18]*60;h[18]=h[18]+h[19]+(2*tB);h[19]=h[18]%60;h[18]=h[18]/60;//2 tempo(desliga 2 e liga 3)
- h[20]=h[4];h[21]=h[3];
- h[20]=h[20]*60;h[20]=h[20]+h[21]+(3*tB);h[21]=h[20]%60;h[20]=h[20]/60;//3 tempo(desliga 3 e liga 4)
- h[31]=1;
- //Calculo Programa 3
- if(h[6]!=0 && h[5]!=0 && h[32]==0){
- h[22]=h[6];h[23]=h[5];
- h[22]=h[22]*60;h[22]=h[22]+h[23]+(4*tB);h[23]=h[22]%60;h[22]=h[22]/60;//Operação Desliga bomba e valvula 4
- h[24]=h[6];h[25]=h[5];
- h[24]=h[24]*60;h[24]=h[24]+h[25]+tB;h[25]=h[24]%60;h[24]=h[24]/60;//1 tempo(desliga 1 e liga 2)
- h[26]=h[6];h[27]=h[5];
- h[26]=h[26]*60;h[26]=h[26]+h[27]+(2*tB);h[27]=h[26]%60;h[26]=h[26]/60;//2 tempo(desliga 2 e liga 3)
- h[28]=h[6];h[29]=h[5];
- h[28]=h[28]*60;h[28]=h[28]+h[29]+(3*tB);h[29]=h[28]%60;h[28]=h[28]/60;//3 tempo(desliga 3 e liga 4)
- h[32]=1;
- }
- }//Fim if Programa 2
- h[30]=1;tempo=1;
- }//Fim if Programa 1
- }//Fim While
- }
- void zerar()//Zera os programas de irrigação
- {
- delay(1000);
- while(zer >0)
- {
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Zerar todos");
- if(digitalRead(bMode)==LOW){menu=0;zer=0;}
- }
- }
- void aut()//Aqui vai alterar modo automatico e manual
- {
- delay(1000);
- while(manual>0)
- {
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Automatico Prox");lcd.write(B01111110);
- lcd.setCursor(0,1);
- lcd.print("Manual Ant");(lcd.write(B01111111));
- delay(70);
- if(digitalRead(bMode)==LOW){menu=0;manual=0;}
- }
- }
- void teste() //Teste das ligações apenas para ligar a bomba e conferir se está ligando
- { //Pedir para que seja definido um delay
- delay(1000); //Pressione ENTER para iniciar
- while(testar >0)
- {
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("Defina valor");
- lcd.setCursor(0,1);
- lcd.print("Tempo");
- if(digitalRead(bMode)==LOW){menu=0;testar=0;}
- }
- }
- void ativa()
- {
- if(tempo!=0){
- int semana=RTCValues[3]; //semana recebe o valor de semanas( 1 a 7)
- if(d[0]=1){//Se apção todos os dias for selecionada
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);delay(70);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);delay(70);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);delay(70);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);delay(70);}//Desliga Valvula 3 e liga Valvula 4
- if(h[34]==RTCValues[4] && h[33]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);delay(70);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }
- else{
- if(semana==1 && d[1]==1){//Dom
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- } //Fim Dom
- if(semana==2 && d[2]==1){ //Seg
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }//Fim Seg
- if(semana==3 && d[3]==1){ //Ter
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }//Fim Ter
- if(semana==4 && d[4]==1){ //Qua
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }
- if(semana==5 && d[5]==1){ //Qui
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }
- if(semana==6 && d[6]==1){ //Sex
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }
- if(semana==7 && d[7]==1){ //Sab
- //Horarios Para Programa 1
- if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[12]==RTCValues[4] && h[11]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(hora==RTCValues[4] && minu==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 2
- if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[16]==RTCValues[4] && h[17]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[18]==RTCValues[4] && h[19]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[20]==RTCValues[4] && h[21]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[14]==RTCValues[4] && h[15]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- //Horarios Para Programa 3
- if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);digitalWrite(vs1,LOW);}//Liga bomba e valvula 1
- if(h[24]==RTCValues[4] && h[25]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs1,HIGH);digitalWrite(vs2,LOW);}//Desliga Valvula 1 e liga Valvula 2
- if(h[26]==RTCValues[4] && h[27]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs2,HIGH);digitalWrite(vs3,LOW);}//Desliga Valvula 2 e liga Valvula 3
- if(h[28]==RTCValues[4] && h[29]==RTCValues[5] && RTCValues[6]==0){digitalWrite(vs3,HIGH);digitalWrite(vs4,LOW);}//Desliga Valvula 3 e liga Valvula 4
- if(h[22]==RTCValues[4] && h[23]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba,LOW);digitalWrite(vs4,HIGH);}//Desliga bomba e desliga Valvula 4
- }
- }//Fim else
- }//Fim if tempo
- }
- void mostrahora()
- {
- DS1307.getDate(RTCValues);
- sprintf(dateTime, "%02d.%02d.%02d %02d:%02d:%02d", RTCValues[2], //RTCValues [0]=ANO, RTCValues [1]=MES, RTCValues [2]=DIA
- RTCValues[1], RTCValues[0], RTCValues[4], RTCValues[5], //RTCValues [3]=DIA DA SEMANA, RTCValues [4]=HORA
- RTCValues[6]); //RTCValues [5]=MINUTO, RTCValues [6]=SEGUNDOS
- //DIA SEMANA = 1(DOMINGO) E 7(SABADO)
- lcd.setCursor(0,0);lcd.print("Timer Irrigacao ");
- lcd.setCursor(0,1);lcd.print(dateTime);delay(70);
- }
- void loop() {
- mostrahora();
- menus();
- ativa();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement