Advertisement
junior_sk65

Untitled

Aug 25th, 2015
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.99 KB | None | 0 0
  1. #include <EEPROM.h>d
  2. #include<string.h>
  3. #include <DS1307.h>
  4. #include <Wire.h>
  5. #include <LiquidCrystal.h> //Biblioteca do LCD
  6.  
  7.  
  8. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Portas do lcd
  9.  
  10. int bEnter = 9;//botão de enter // Variaveis
  11. int bMode = 8; //botão de menu *
  12. int bUp = 7; //botão de acrescimo *
  13. int bDown = 6; //botão de decrescimo // dos Botões
  14.  
  15. int programa = 0; //variavel para armazenar programas // Variaveis para armazenar
  16. int dia =0; //Dias da semana *
  17. int tBomba= 0;//Tempo para desligar a bomba *
  18. int horario =0; //armazena os horarios *
  19. int manual =0;//aciona o manual e automatico do sistema *
  20. int testar =0; // faz o teste das ligações *
  21. int zer = 0;//zerar o programa *
  22. int acertarh =0;//Ajuste de hora // valores do menu
  23. int p;//variavel programas
  24. int tB;//variavel tempo de bomba
  25. int a;
  26.  
  27. const int bomba = 10;//variavel do rele
  28. int semana;
  29.  
  30. int d[8]; //dias da semana
  31. int h[13]; //horarios dos programas
  32. char dateTime[20];
  33. int RTCValues[7];
  34.  
  35. byte menu = 0; //variavel do menu
  36. byte contador = 0; //variavel contadora
  37.  
  38. void setup() {
  39. Serial.begin(9600);
  40. DS1307.begin();
  41. lcd.begin(16, 2); // iniciando o lcd
  42. pinMode(bMode, INPUT_PULLUP); //botão Mode
  43. pinMode(bUp, INPUT_PULLUP); //Botão Aumenta
  44. pinMode(bDown, INPUT_PULLUP); //Botão Diminui
  45. pinMode(bEnter, INPUT_PULLUP); //Botão Enter
  46. pinMode(bomba, OUTPUT);//Rele da Bomba
  47. lcd.print(" Iniciando...");
  48. delay(2000);
  49. lcd.clear();
  50. lcd.setCursor(1,0);lcd.print("Luciano Junior");
  51. lcd.setCursor(3,1);lcd.print("Versao 1.0");
  52. delay(5000);
  53. lcd.clear();
  54. }
  55.  
  56. void menus() //Função dos Menus
  57. {
  58. delay(1000);
  59. if(digitalRead(bMode)==LOW){menu=1;}
  60. while(menu>0)
  61. {
  62. lcd.clear();
  63. lcd.setCursor(0,0);
  64. if(menu==1){lcd.print("Num de Programas");if(digitalRead(bEnter)==LOW){programa=1; menu=0; numP();}}
  65. if(menu==2){lcd.print("Definir Dias ");if(digitalRead(bEnter)==LOW){dia=1; menu=0; dias();}}
  66. if(menu==3){lcd.print("Definir Horarios");if(digitalRead(bEnter)==LOW){horario=1; menu=0; horarios();}}
  67. if(menu==4){lcd.print("Tempo de Bomba ");if(digitalRead(bEnter)==LOW){tBomba=1; menu=0; Bomba();}}
  68. if(menu==5){lcd.print("Automatic/Manual");if(digitalRead(bEnter)==LOW){manual=1; menu=0; aut();}}
  69. if(menu==6){lcd.print("Testar Ligacao ");if(digitalRead(bEnter)==LOW){testar=1; menu=0; teste();}}
  70. if(menu==7){lcd.print("Zerar Programas ");if(digitalRead(bEnter)==LOW){zer=1; menu=0; zerar();}}
  71. if(menu==8){lcd.print("Ajustar Hra Data");if(digitalRead(bEnter)==LOW){acertarh=1; menu=0; acertahora();}}
  72. 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;}}
  73. 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);}
  74. if(!digitalRead(bDown)==LOW && menu <= 9){delay(120);menu++;}
  75. if(!digitalRead(bUp)==LOW && menu > 0){delay(120);menu--;}
  76. }
  77. delay(100);
  78. }
  79. void numP()//Função da quantidade de programas, limite de 6 por dia
  80. {
  81. delay(1000);
  82. while(programa >0 && programa<=6)
  83. {
  84. lcd.clear();
  85. lcd.setCursor(0,0);
  86. lcd.print("Programas ");
  87. lcd.print(programa);
  88. lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(7,1);lcd.print("(-)");lcd.setCursor(12,1);lcd.print("(+)");
  89. delay(70);
  90. if(digitalRead(bUp)==LOW && programa<5){delay(70);programa++;}
  91. if(digitalRead(bDown)==LOW && programa>1){delay(70);programa--;}
  92. if(digitalRead(bEnter)==LOW){p=programa*2;programa=0;dia=1;dias();}
  93. if(digitalRead(bMode)==LOW){menu=0;programa=0;}
  94. }
  95. }
  96. void dias()//Dias da semana para serem irrigados
  97. {
  98. lcd.clear();lcd.setCursor(0,0);lcd.print("Definir Dias ");
  99. delay(1000);
  100. int d[8]={0};
  101. while(dia >0 && dia<9)
  102. {
  103. lcd.clear();
  104. 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);
  105. lcd.setCursor(0,0);
  106. 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;}}
  107. 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;}}
  108. 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;}}
  109. 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;}}
  110. 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;}}
  111. 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;}}
  112. 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;}}
  113. 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;}}
  114. delay(70);
  115. if(digitalRead(bUp)==LOW && dia<=8){delay(70);dia++;}
  116. if(digitalRead(bDown)==LOW && dia>1){delay(70);dia--;}
  117. if(digitalRead(bMode)==LOW){menu=0;dia=0;}
  118. }
  119. horario=1;horarios();
  120. }
  121. void horarios()//Os horarios de inicio
  122. {
  123. lcd.clear();lcd.setCursor(0,0);lcd.print("Definir Horarios");
  124. delay(1000);
  125. horario=p;
  126. while(horario >0)
  127. {
  128. lcd.clear();lcd.setCursor(0,0); //hora = numeros pares e minutos = numeros impares
  129. switch(p)
  130. {
  131. case 2:
  132. if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  133. lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  134. break;
  135. case 4:
  136. if(horario==4 || horario==3){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  137. lcd.print(h[4]);lcd.print(":");lcd.print(h[3]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  138. if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 2 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  139. lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  140. break;
  141. case 6:
  142. if(horario==6 || horario==5){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  143. lcd.print(h[6]);lcd.print(":");lcd.print(h[5]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  144. if(horario==4 || horario==3){lcd.setCursor(0,0);lcd.print(" Programa 2 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  145. lcd.print(h[4]);lcd.print(":");lcd.print(h[3]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  146. if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 3 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  147. lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  148. break;
  149. case 8:
  150. if(horario==8 || horario==7){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  151. lcd.print(h[8]);lcd.print(":");lcd.print(h[7]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  152. if(horario==6 || horario==5){lcd.setCursor(0,0);lcd.print(" Programa 2 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  153. lcd.print(h[6]);lcd.print(":");lcd.print(h[5]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  154. if(horario==4 || horario==3){lcd.setCursor(0,0);lcd.print(" Programa 3 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  155. lcd.print(h[4]);lcd.print(":");lcd.print(h[3]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  156. if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 4 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  157. lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  158. break;
  159. case 10:
  160. if(horario==10 || horario==9){lcd.setCursor(0,0);lcd.print(" Programa 1 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  161. lcd.print(h[10]);lcd.print(":");lcd.print(h[9]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  162. if(horario==8 || horario==7){lcd.setCursor(0,0);lcd.print(" Programa 2 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  163. lcd.print(h[8]);lcd.print(":");lcd.print(h[7]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  164. if(horario==6 || horario==5){lcd.setCursor(0,0);lcd.print(" Programa 3 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  165. lcd.print(h[6]);lcd.print(":");lcd.print(h[5]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  166. if(horario==4 || horario==3){lcd.setCursor(0,0);lcd.print(" Programa 4 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  167. lcd.print(h[4]);lcd.print(":");lcd.print(h[3]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  168. if(horario==2 || horario==1){lcd.setCursor(0,0);lcd.print(" Programa 5 ");lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(10,1);
  169. lcd.print(h[2]);lcd.print(":");lcd.print(h[1]);lcd.print("h");delay(120);;if(digitalRead(bEnter)==LOW){delay(120);horario--;}}
  170. break;
  171.  
  172. }//fim switch
  173. if(digitalRead(bUp)==LOW){delay(70);h[horario]++;}
  174. if(digitalRead(bDown)==LOW){delay(70);h[horario]--;}
  175. if(digitalRead(bEnter)==LOW){delay(70);horario--;}
  176. if(digitalRead(bMode)==LOW){menu=0;horario=0;}
  177. }//fim while
  178. }//fim void
  179. void acertahora()//Acertar a hora no RTC
  180. {
  181. delay(1000);
  182. while(acertarh >0)
  183. {
  184. lcd.clear();
  185. lcd.setCursor(0,0);
  186. lcd.print("Config. Hora");
  187. if(digitalRead(bMode)==LOW){menu=0;acertarh=0;}
  188. }
  189. }
  190. void Bomba()//Tempo que a bomba ficará ligada
  191. {
  192. delay(1000);
  193. while(tBomba >=1)
  194. {
  195. lcd.clear();lcd.setCursor(0,0);lcd.print("Tempo ");lcd.print(tBomba);lcd.print(" minutos");
  196. lcd.setCursor(0,1);lcd.print("Enter");lcd.setCursor(7,1);lcd.print("(-)");lcd.setCursor(12,1);lcd.print("(+)");
  197. delay(120);
  198. if(tBomba>60){tBomba=1;}
  199. if(digitalRead(bUp)==LOW){delay(70);tBomba++;}
  200. if(digitalRead(bDown)==LOW){delay(70);tBomba--;}
  201. if(digitalRead(bEnter)==LOW){delay(70);tB=tBomba;menu=0;tBomba=0;}
  202. if(digitalRead(bMode)==LOW){menu=0;tBomba=0;}
  203. }
  204. }
  205. void zerar()//Zera os programas de irrigação
  206. {
  207. delay(1000);
  208. while(zer >0)
  209. {
  210. lcd.clear();
  211. lcd.setCursor(0,0);
  212. lcd.print("Zerar todos");
  213. if(digitalRead(bMode)==LOW){menu=0;zer=0;}
  214. }
  215. }
  216. void aut()//Aqui vai alterar modo automatico e manual
  217. {
  218. delay(1000);
  219. while(manual>0)
  220. {
  221. lcd.clear();
  222. lcd.setCursor(0,0);
  223. lcd.print("Automatico Prox");lcd.write(B01111110);
  224. lcd.setCursor(0,1);
  225. lcd.print("Manual Ant");(lcd.write(B01111111));
  226. delay(70);
  227. if(digitalRead(bMode)==LOW){menu=0;manual=0;}
  228. }
  229. }
  230. void teste() //Teste das ligações apenas para ligar a bomba e conferir se está ligando
  231. { //Pedir para que seja definido um delay
  232. delay(1000); //Pressione MODE para iniciar
  233. while(testar >0)
  234. {
  235. lcd.clear();
  236. lcd.setCursor(0,0);
  237. lcd.print("Defina valor");
  238. lcd.setCursor(0,1);
  239. lcd.print("Tempo");
  240. if(digitalRead(bMode)==LOW){menu=0;testar=0;}
  241. }
  242. }
  243. void estado()
  244. {
  245. //Mostra os Status do Programa, hora, data e o proximo programa
  246. lcd.clear();
  247. lcd.print("Timer Irrigacao");
  248. }
  249. void ativa()
  250. {
  251. int semana=RTCValues[3]; //semana recebe o valor de semanas( 1 a 7)
  252. //Se a opção todos os dias for selecionada
  253. if(d[0]=1){if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  254. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  255. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  256. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  257. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  258. }
  259. if(semana==1 && d[1]==1){//Dom
  260. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  261. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  262. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  263. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  264. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  265. }
  266. if(semana==2 && d[2]==1){ //Seg
  267. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  268. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  269. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  270. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  271. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  272. }
  273. if(semana==3 && d[3]==1){ //Ter
  274. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  275. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  276. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  277. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  278. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  279. }
  280. if(semana==4 && d[4]==1){ //Qua
  281. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  282. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  283. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  284. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  285. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  286. }
  287. if(semana==5 && d[5]==1){ //Qui
  288. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  289. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  290. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  291. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  292. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  293. }
  294. if(semana==6 && d[6]==1){ //Sex
  295. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  296. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  297. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  298. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  299. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  300. }
  301. if(semana==7 && d[7]==1){ //Sab
  302. if(h[2]==RTCValues[4] && h[1]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  303. if(h[4]==RTCValues[4] && h[3]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  304. if(h[6]==RTCValues[4] && h[5]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  305. if(h[8]==RTCValues[4] && h[7]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  306. if(h[10]==RTCValues[4] && h[9]==RTCValues[5] && RTCValues[6]==0){digitalWrite(bomba, HIGH);delay(5000);}else{digitalWrite(bomba,LOW);}
  307.  
  308. }
  309. }
  310. void mostrahora()
  311. {
  312. DS1307.getDate(RTCValues);
  313. sprintf(dateTime, "%02d.%02d.%02d %02d:%02d:%02d", RTCValues[2], //RTCValues [0]=ANO, RTCValues [1]=MES, RTCValues [2]=DIA
  314. RTCValues[1], RTCValues[0], RTCValues[4], RTCValues[5], //RTCValues [3]=DIA DA SEMANA, RTCValues [4]=HORA
  315. RTCValues[6]); //RTCValues [5]=MINUTO, RTCValues [6]=SEGUNDOS
  316. //DIA SEMANA = 1(DOMINGO) E 7(SABADO)
  317.  
  318. lcd.setCursor(0,0);lcd.print("Timer Irrigacao");
  319. lcd.setCursor(0,1);lcd.print(dateTime);delay(70);
  320. }
  321. void loop() {
  322. estado();
  323. mostrahora();
  324. menus();
  325. ativa();
  326. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement