Advertisement
RuiViana

PIR e Step

Jan 10th, 2016
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.77 KB | None | 0 0
  1. // http://pastebin.com/dZNK5rXn
  2. // edisondesouza95@gmail.com
  3.  
  4. // Programa : Automação Residencial
  5. // Autor : Edison
  6. #include <SPI.h>
  7. #include <Servo.h> //Biblioteca utilizada
  8. #define SERVO 6 //Porta utilizada para o motor
  9.  
  10. //Explicação sobre bibliotecas e include na legenda do código
  11.  
  12. Servo s; //Variável utilizada para o servo motor
  13. int pos; //Posição para deixar o motor
  14. int valorSerial=0;
  15.  
  16. byte PirFlag = 0;
  17. unsigned long Tempo = 0;
  18. //--------------------------------------------------------
  19. int pinBuzzer = 7;
  20. int pinSensorPIR = 8;
  21. int pinLed = 9;
  22. int valorSensorPIR = 0;
  23. int portaLed = 3; //Porta a ser utilizada para ligar o led
  24. int portaLDR = A5; //Porta analógica utilizada pelo LDR
  25.  
  26. //--------------------------------------------------------
  27. void setup()
  28. {
  29. Serial.begin(9600); //Inicializa a comunicaçao em serie
  30. s.attach(SERVO);
  31.  
  32. s.write(0); //Começa o motor na posição 0
  33.  
  34. //Definido pinos como de entrada ou de saída
  35. pinMode(pinBuzzer,OUTPUT);
  36. pinMode(pinSensorPIR,INPUT_PULLUP);
  37. pinMode(pinLed,OUTPUT);
  38. pinMode(portaLed, OUTPUT); //Define a porta do Led como saída
  39. pinMode(A1,OUTPUT); //Define o pino A1 como saida
  40. pinMode(A2,OUTPUT); //Define o pino A2 como saida
  41. pinMode(A3,OUTPUT); //Define o pino A3 como saida
  42. pinMode(A4,OUTPUT); //Define o pino A4 como saida
  43. pinMode(13,OUTPUT); //Define o pino 13 como saida
  44. pinMode(12,OUTPUT); //Define o pino 12 como saida
  45. pinMode(11,OUTPUT); //Define o pino 11 como saida
  46. pinMode(10,OUTPUT); //Define o pino 10 como saida
  47. pinMode(4,OUTPUT); //Define o pino 4 como saida
  48. pinMode(5,OUTPUT); //Define o pino 5 como saida
  49. pinMode(2,OUTPUT); //Define o pino 2 como saida o ar condicionado
  50. }
  51. //--------------------------------------------------------
  52. void loop(){
  53. //Lendo o valor do sensor PIR. Este sensor pode assumir 2 valores
  54. //1 quando detecta algum movimento e 0 quando não detecta.
  55. valorSensorPIR = digitalRead(pinSensorPIR);
  56.  
  57. // Serial.print("Valor do Sensor PIR: ");
  58. // Serial.println(valorSensorPIR);
  59.  
  60. //Verificando se ocorreu detecção de movimentos
  61. if (valorSensorPIR == 1)
  62. {
  63. ligarAlarme();
  64. }
  65. else
  66. {
  67. desligarAlarme();
  68. }
  69. Comandos();
  70. }
  71. //--------------------------------------------------------
  72. void ligarAlarme()
  73. {
  74.  
  75. //Ligando o led
  76. digitalWrite(pinLed, HIGH);
  77. //Ligando o buzzer com uma frequencia de 1500 hz.
  78. tone(pinBuzzer,1500);
  79. if ((millis()- Tempo) >4000)
  80. {
  81. Serial.print("Alarme ligado: Tempo Seg: ");
  82. Serial.println((millis()- Tempo)/1000);
  83. PirFlag = 0;
  84. // delay(4000); //tempo que o led fica acesso e o buzzer toca
  85. desligarAlarme();
  86. Tempo = millis();
  87. }
  88. }
  89. //--------------------------------------------------------
  90. void desligarAlarme()
  91. {
  92. if (PirFlag == 0)
  93. Serial.println("Alarme desligado");
  94. PirFlag = 1;
  95. //Desligando o led
  96. digitalWrite(pinLed, LOW);
  97. //Desligando o buzzer
  98. noTone(pinBuzzer);
  99. }
  100. // --------------------------- Comandos
  101. void Comandos ()
  102. {
  103. char ler = 0;
  104. if(Serial.available())
  105. {
  106. ler = Serial.read();
  107. Serial.println(ler);
  108. }
  109. int estado = analogRead(portaLDR); //Lê o valor fornecido pelo LDR
  110.  
  111. // Caso o valor lido na porta analógica seja maior do que
  112. // 800, acende o LED
  113. // Ajuste o valor abaixo de acordo com o seu circuito
  114. if (estado > 800)
  115. {
  116. digitalWrite(portaLed, HIGH);
  117. }
  118. else //Caso contrário, apaga o led
  119. {
  120. digitalWrite(portaLed, LOW);
  121. }
  122. if(ler == 'a') //Se a variavel ler for igual a 1
  123. digitalWrite(A1,HIGH); //Ativa a porta A1
  124. else if(ler == 'b') //Se a variavel ler for igual a 2
  125. digitalWrite(A2,HIGH); //Ativa a porta A2
  126. else if(ler == 'c') //Se a variavel ler for igual a 3
  127. digitalWrite(A3,HIGH); //Ativa a porta A3
  128. else if(ler == 'e') //Se a variavel ler for igual a 4
  129. digitalWrite(A4,HIGH); //Ativa a porta A4
  130. else if(ler == 'f') //Se a variavel ler for igual a 13
  131. digitalWrite(13,HIGH); //Ativa a porta 13
  132. else if(ler == 'g') //Se a variavel ler for igual a 12
  133. digitalWrite(12,HIGH); //Ativa a porta 12
  134. else if(ler == 'h') //Se a variavel ler for igual a 11
  135. digitalWrite(11,HIGH); //Ativa a porta 11
  136. else if(ler == 'i') //Se a variavel ler for igual a 10
  137. digitalWrite(10,HIGH); //Ativa a porta 10
  138. else if(ler == 'j') //Se a variavel ler for igual a 4
  139. digitalWrite(4,HIGH); //Ativa a porta 4
  140. else if(ler == 'k') //Se a variavel ler for igual a 5
  141. digitalWrite(5,HIGH); //Ativa a porta 5
  142. else if(ler == 'l') //Se a variavel ler for igual a 2
  143. digitalWrite(2,HIGH); //Ativa a porta 2 ar condicionado
  144.  
  145. //--------DESLIGAR RELES---------------------
  146. else if(ler == 'A') //Se a variavel ler for igual a 1
  147. digitalWrite(A1,LOW); //Desliga a porta A1
  148. else if(ler == 'B') //Se a variavel ler for igual a 2
  149. digitalWrite(A2,LOW); //Desliga a porta A2
  150. else if(ler == 'C') //Se a variavel ler for igual a 3
  151. digitalWrite(A3,LOW); //Desliga a porta A3
  152. else if(ler == 'E') //Se a variavel ler for igual a 4
  153. digitalWrite(A4,LOW); //Desliga a porta A4
  154. else if(ler == 'F') //Se a variavel ler for igual a 13
  155. digitalWrite(13,LOW); //Desliga a porta 13
  156. else if(ler == 'G') //Se a variavel ler for igual a 12
  157. digitalWrite(12,LOW); //Desliga a porta 12
  158. else if(ler == 'H') //Se a variavel ler for igual a 11
  159. digitalWrite(11,LOW); //Desliga a porta 11
  160. else if(ler == 'I') //Se a variavel ler for igual a 10
  161. digitalWrite(10,LOW); //Desliga a porta 10
  162. else if(ler == 'J') //Se a variavel ler for igual a 4
  163. digitalWrite(4,LOW); //Desliga a porta 4
  164. else if(ler == 'K') //Se a variavel ler for igual a 5
  165. digitalWrite(5,LOW); //Desliga a porta 5
  166. else if(ler == 'L') //Se a variavel ler for igual a 2
  167. digitalWrite(2,LOW); //Desliga a porta 2 ar condicionado
  168.  
  169. if (ler == 'D') // D Maiusculo liga o portão
  170. {
  171. Serial.println("Abrindo");
  172. delay(100);
  173. for(pos = 0; pos < 90; pos++)
  174. {
  175. s.write(pos);
  176. delay(35); // <<----------- valor alto?
  177. }
  178. Serial.println("Aberto");
  179. }
  180. if (ler == 'd') // d Minusculo desliga
  181. {
  182. Serial.println("Fechando");
  183. for(pos = 90; pos > 0; pos--)
  184. {
  185. s.write(pos);
  186. delay(35); // <<----------- valor alto?
  187. }
  188. Serial.println("Fechado");
  189. }
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement