Advertisement
Guest User

Teste

a guest
Jun 13th, 2019
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. /************************** Marlon Nardi ******************************
  2. Projeto: Janela automática com sensor de chuva
  3. Site: http://www.marlonnardi.com
  4. Youtube: https://www.youtube.com/marlonnardiw
  5. Facebook: https://www.facebook.com/professormarlonnardi
  6. ************************************************************************/
  7.  
  8. // Biblioteca IR Remote///
  9.  
  10. int RECV_PIN = 2;
  11. #include <IRremote.h>
  12. IRrecv irrecv(RECV_PIN);
  13. decode_results results;
  14.  
  15. // ----------- Nomenclatura das entradas e saídas ------------//
  16.  
  17.  
  18. #define FimdeCursoJanelaFechada 3
  19. #define FimdeCursoJanelaAberta 4
  20. #define BotaoFechaManual 6
  21. #define BotaoAbreManual 7
  22. #define FechaJanela 10
  23. #define AbreJanela 11
  24.  
  25.  
  26.  
  27. // ----------- Declaração de variáveis ------------//
  28. //short PARA = 0;
  29. //short CLIQUES = 0 ;
  30.  
  31. short EstadoJanela = 0;
  32. short FechandoaJanela = 0;
  33. short AbrindoaJanela = 0;
  34.  
  35. void setup() {
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42. // ----------- Definições de entradas e saídas ------------//
  43. pinMode(FimdeCursoJanelaFechada, INPUT);
  44. pinMode(FimdeCursoJanelaAberta, INPUT);
  45. pinMode(BotaoFechaManual, INPUT);
  46. pinMode(BotaoAbreManual, INPUT);
  47. pinMode(FechaJanela, OUTPUT);
  48. pinMode(AbreJanela, OUTPUT);
  49.  
  50.  
  51. // ----------- Iniciando a comunicação serial com velocidade de 9600 bits/segundo ------------//
  52. Serial.begin(9600);
  53.  
  54. // Controle remoto inicia//
  55. irrecv.enableIRIn();// inicializar receptor
  56. }
  57.  
  58. void loop() {
  59.  
  60. // ----------- Escrevendo no monitor serial ------------//
  61.  
  62. Serial.print(" Estado da Janela: ");
  63. Serial.print(EstadoJanela);
  64.  
  65. Serial.print(" Fechado a Janela: ");
  66. Serial.print(FechandoaJanela);
  67.  
  68. Serial.print(" Abrindo a Janela: ");
  69. Serial.println(AbrindoaJanela);
  70.  
  71.  
  72.  
  73. if(digitalRead(BotaoAbreManual) == HIGH){ // Se o botão para abrir a janela for precionado
  74. // Manda abrir a janela
  75. digitalWrite( FechaJanela, LOW);
  76. digitalWrite( AbreJanela, HIGH);
  77. }
  78.  
  79.  
  80. if(digitalRead(BotaoFechaManual) == HIGH ){ // Se o botão para fechar a janela for precionado
  81. // Manda fechar a janela
  82. digitalWrite( FechaJanela, HIGH);
  83. digitalWrite( AbreJanela, LOW);
  84. }
  85.  
  86.  
  87. if(digitalRead(BotaoAbreManual) == LOW && digitalRead(BotaoFechaManual) == LOW ){// Se os dois botões estiverem solto
  88.  
  89. // Desliga o motor
  90. digitalWrite( FechaJanela, LOW);
  91. digitalWrite( AbreJanela, LOW);
  92. }
  93.  
  94. if (digitalRead(BotaoFechaManual) == LOW && EstadoJanela == 1){// Se a janela chegar no fim de curso da janela aberta
  95. // Desliga o motor
  96. digitalWrite( FechaJanela, LOW);
  97. digitalWrite( AbreJanela, LOW);
  98. }
  99.  
  100. if (digitalRead(BotaoAbreManual) == LOW && EstadoJanela == 0){// Se a janela chegar no fim de curso da janela fechada
  101. // Desliga o motor
  102. digitalWrite( FechaJanela, LOW);
  103. digitalWrite( AbreJanela, LOW);
  104. }
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. ////// controles ir ////
  112. if (irrecv.decode(&results)) {
  113. ///Incio Abrindo
  114. if (results.value == 0x41BED02F){
  115. AbrindoaJanela = 1;
  116. // Manda abrir a janela
  117. digitalWrite( AbreJanela, HIGH);
  118. digitalWrite( FechaJanela, LOW);
  119. }
  120.  
  121. if (digitalRead(results.value == 0x41BED02F) == LOW && EstadoJanela == 1){// Se a janela chegar no fim de curso da janela aberta
  122. // Desliga o motor
  123. digitalWrite( FechaJanela, LOW);
  124. digitalWrite( AbreJanela, LOW);
  125. }
  126. ///final abrindo
  127.  
  128. //// Inicio Fechando
  129.  
  130. if(results.value == 0x41BE30CF){
  131. FechandoaJanela = 1;
  132. // Manda fechar a janela
  133. digitalWrite( FechaJanela, HIGH);
  134. digitalWrite( AbreJanela, LOW);
  135. }
  136.  
  137. if (digitalRead(results.value == 0x41BE30CF) == LOW && EstadoJanela == 0){// Se a janela chegar no fim de curso da janela fechada
  138. // Desliga o motor
  139. digitalWrite( FechaJanela, LOW);
  140. digitalWrite( AbreJanela, LOW);
  141. }
  142. ///Final Fechando
  143.  
  144. irrecv.resume();
  145. }
  146.  
  147. delay(100);
  148.  
  149. // ----------- Mapeando estados dos fim de cursos ------------//
  150.  
  151. if( digitalRead(FimdeCursoJanelaFechada) == HIGH && digitalRead(FimdeCursoJanelaAberta) == LOW){
  152.  
  153. EstadoJanela = 0; // 0 Fechada 1 Aberta 2 Em movimento
  154. }
  155.  
  156. if( digitalRead(FimdeCursoJanelaFechada) == LOW && digitalRead(FimdeCursoJanelaAberta) == HIGH){
  157.  
  158. EstadoJanela = 1; // 0 Fechada 1 Aberta 2 Em movimento
  159.  
  160. }
  161.  
  162. if( digitalRead(FimdeCursoJanelaFechada) == LOW && digitalRead(FimdeCursoJanelaAberta) == LOW){
  163.  
  164. EstadoJanela = 2; // 0 Fechada 1 Aberta 2 Em movimento
  165.  
  166. }
  167.  
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement