Advertisement
Guest User

Untitled

a guest
Mar 16th, 2017
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. #include <WProgram.h> //é um recurso para referenciar a biblioteca Wiring
  2. #include <Wire.h> //inclui a biblioteca Wire necessaria para comunicaçao i2c
  3. #include <DS1307.h> //inclui a biblioteca de comandos do DS1307 utilizada neste programa.
  4.  
  5. int rtc[4]; // dados ds1307
  6. int rele_G = 2; // Pino rele G
  7. int rele_D = 3; // pino rele D
  8. int pin_temp = 5; // Pino que simula acionamento do relé_G
  9. int botao; // botao para acionar rele_G
  10.  
  11. int contador_G=0; //armazena quantas vezes rele_G foi para 1
  12. //int set_contador_G = 16; // Valor para acionar rele_D
  13. int set_tempo_D ; // Tempo que deve ficar ligada rele_G
  14. int tempo_atual;// tempo atual
  15. int tempo_high_D ;
  16. int leitura_high_G; //armazena valor lido por rele_G
  17. int leitura_high_D; //armazena valor lido por rele_D
  18.  
  19. void setup()
  20. {
  21. Serial.begin(9600);
  22. pinMode(rele_G, OUTPUT); //define o pino 2 como saída
  23. pinMode(rele_D,OUTPUT); //define o pino 3 como saída
  24. pinMode(pin_temp,INPUT); // defino o pino 5 como entrada digital
  25. /*
  26. Esta sequencia de comandos deve ser escrita apenas uma vez, para
  27. configurar a hora do Shield RTC 1307. Troque os numeros pela hora atual
  28. RTC.stop();
  29. RTC.set(DS1307_SEC,0); //define o segundo
  30. RTC.set(DS1307_MIN,34); //define o minuto
  31. RTC.set(DS1307_HR,8); //define a hora
  32. RTC.set(DS1307_DOW,1); //define o dia da semana
  33. RTC.set(DS1307_DATE,18); //define o dia
  34. RTC.set(DS1307_MTH,9); //define o mes
  35. RTC.set(DS1307_YR,16); //define o ano
  36. RTC.start();*/
  37. }
  38.  
  39. void loop()
  40. {
  41. RTC.get(rtc,true);
  42. for(int i=0; i<3; i++)
  43. //{
  44. //Serial.print (rtc[i]);
  45. //Serial.print(rtc[i]);
  46. //Serial.print(" ");
  47. //}
  48.  
  49. tempo_atual = rtc[i] ; // tempo, hora atual
  50. set_tempo_D = rtc[2] == 00 && rtc[1] == 20 && rtc[0] == 00; // tempo de set 20min
  51. leitura_high_D = digitalRead(rele_D); // Leitura do pino referente ao relé_D
  52. leitura_high_G = digitalRead(rele_G); // leitura do pino referente ao rele_G
  53. botao = digitalRead(pin_temp);
  54. tempo_high_D = tempo_atual + set_tempo_D;
  55.  
  56. if(botao = HIGH)
  57. {
  58. digitalWrite(rele_D,HIGH);
  59. }
  60. else
  61. {
  62. digitalWrite(rele_D, LOW);
  63. }
  64.  
  65. if(leitura_high_G = HIGH) //verifica quando o rele_G vai para 1
  66. {
  67. {
  68. contador_G == contador_G++; //acrescenta mais 1 na contagem
  69. }
  70.  
  71. if(contador_G == 16) //Quando contador atingir 16 vezes (rele_G acionou 16 vezes)
  72. {
  73. digitalWrite(rele_G,LOW); // Desliga relé_G
  74. digitalWrite(rele_D, HIGH); //Liga rele_D
  75. contador_G =0; // zera contador do relé_G
  76. }
  77. if(rele_D == HIGH) // Se o rele_D estiver acionado
  78. {
  79. if (tempo_high_D = true) // Se a soma do tempo atual mais o tempo set for verdadeiro
  80. {
  81. digitalWrite( rele_D, LOW); // Desaciona o rele_D
  82. }
  83. }
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement