Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <SoftwareSerial.h>
  3.  
  4. #define echoPin 2
  5. #define trigPin 3
  6. #define relay1 8 //Water pump
  7. #define relay2 11 //Air pump
  8. #define relayV 10 //Fert Vega
  9. #define relayF 12 //Fert Flora
  10.  
  11. SoftwareSerial BT(3,2);
  12. Servo servoA;
  13. Servo servoB;
  14. Servo servoC;
  15. Servo servoD;
  16.  
  17. int distance, duration; //Volume reservatório grande
  18. int angleA = 17; //Servo registro aberto
  19. int angleF = 102; //Servo registro fechado
  20. int volV, volF, fertV, fertF; //volumes trigger agua e fert Vega e Flora
  21.  
  22. void setup(){
  23. Serial.begin(9600);
  24. pinMode(relay1, OUTPUT);
  25. pinMode(relay2, OUTPUT);
  26. pinMode(relayF, OUTPUT);
  27. pinMode(relayV, OUTPUT);
  28. digitalWrite(relay1, HIGH);
  29. digitalWrite(relay2, HIGH);
  30. digitalWrite(relayV, HIGH);
  31. digitalWrite(relayF, HIGH);
  32. pinMode(trigPin, OUTPUT);
  33. pinMode(echoPin, INPUT);
  34. servoA.attach(4);
  35. servoB.attach(5);
  36. servoC.attach(6);
  37. servoD.attach(7);
  38. servoA.write(angleF); //saída fechada
  39. delay(20);
  40. servoB.write(angleF); //saída vega fechada
  41. delay(20);
  42. servoC.write(angleF); //saída flora fechada
  43. delay(20);
  44. }
  45.  
  46. void loop(){
  47. if(Serial.available() > 0) { //ler char bluetooth
  48. char data;
  49. data = Serial.read();
  50. Serial.write(Serial.read());
  51. /* Menu:
  52. * q Checar volume do barril
  53. * a Abrir porta
  54. * w volume maximo flora +1cm
  55. * s volume maximo flora -1cm
  56. * e Comerçar rega vega
  57. * d Comerçar rega flora
  58. */
  59. switch (data){
  60. case 'q': //volume reservatório
  61. digitalWrite(trigPin, HIGH);
  62. delay(100);
  63. digitalWrite(trigPin, LOW);
  64. duration=pulseIn(echoPin, HIGH);
  65. distance=(duration/2)/29.1;
  66. Serial.print(distance);
  67. Serial.print("CM");
  68. Serial.println("");
  69. delay(10);
  70. break;
  71. case 'w': //volume maximo flora +1cm
  72. volF++;
  73. Serial.print(volF);
  74. Serial.print("flora");
  75. Serial.println("");
  76. break;
  77. case 'a':
  78. Serial.print("Abrindo porta");
  79. Serial.println("");
  80. delay(20);
  81. servoD.write(angleA);
  82. delay(250);
  83. Serial.print("Porta aberta");
  84. Serial.println("");
  85. delay(250);
  86. break;
  87. case 'r':
  88. Serial.print("Fechando porta");
  89. Serial.println("");
  90. delay(20);
  91. servoD.write(angleF);
  92. delay(250);
  93. Serial.print("Porta Fechada");
  94. Serial.println("");
  95. delay(250);
  96. break;
  97. case 's': //volume maximo flora -1cm
  98. volF++;
  99. Serial.print(volF);
  100. Serial.print("flora");
  101. Serial.println("");
  102. break;
  103. case 'e': //Inicio rega vega
  104. Serial.print("Iniciando rega vegetativa");
  105. Serial.println("");
  106. Serial.print("Finalizado rega vegetativa");
  107. Serial.println("");
  108. delay(20);
  109. break;
  110. case 'd': //Inicio rega vega
  111. Serial.print("Iniciando rega floração");
  112. Serial.println("");
  113. servoA.write(angleF); //saída fechada
  114. delay(20);
  115. servoB.write(angleF); //saída vega fechada
  116. delay(20);
  117. servoC.write(angleA); //saída flora aberta
  118. delay(500); //Caso algum servo esteja aberto, tempo pra fechar
  119. digitalWrite(relay1,LOW); //Pump de agua on
  120. //delay(vasoF);// tempo até encher o reserv com a quant pros vasos da flora
  121. delay(2500);
  122. digitalWrite(relay1,HIGH); //Pump de agua off
  123. delay(250);
  124. digitalWrite(relayV,LOW); //pump de fert on
  125. //delay(fertF);// tempo do fert flora
  126. delay(2500);
  127. digitalWrite(relayV,HIGH); //pump de fert off
  128. delay(250);
  129. digitalWrite(relay2,LOW); //Air pump pra misturar on
  130. delay(2500);// tempo até mexer o fert no reserv
  131. digitalWrite(relay2,HIGH); //Air pump pra misturar off
  132. delay(250);
  133. servoA.write(angleA); //saída aberta
  134. delay(2500);// tempo até toda a agua descer
  135. servoA.write(angleF); //saída fechada
  136. delay(20);
  137. servoC.write(angleF); //saída flora fechada para o flush
  138. delay(500); //Tempo até a saida realmente fechar
  139. digitalWrite(relay1,LOW); //Pump de agua on para o flush
  140. //delay(volF);// tempo até encher flush
  141. delay(2500);
  142. digitalWrite(relay1,HIGH); //Pump de agua off
  143. delay(250);
  144. servoA.write(angleA); //saída aberta
  145. delay(2500);// tempo até toda a agua descer
  146. servoC.write(angleA); //saída flora aberta depois do flush no cano
  147. delay(2500);
  148. servoC.write(angleF); //saída flora fechada
  149. delay(20);
  150. servoA.write(angleF); // Saida fechada, todos os servos na posição fechado
  151. Serial.print("Finalizado rega floração");
  152. Serial.println("");
  153. delay(20);
  154. break;
  155. }
  156. }
  157. }
  158.  
  159. /* digitalWrite(relay1,LOW); //liga o pump
  160. while (distance > volV){
  161. digitalWrite(relay1,LOW); //liga o pump
  162. delay(100);}
  163. digitalWrite(relay1,HIGH);
  164. delay(100);
  165.  
  166. if
  167. ( (distance) > volF )
  168. digitalWrite(relayF,HIGH);
  169. */
  170.  
  171. /*
  172. digitalWrite(relay1,HIGH);
  173. delay(100);
  174. break;
  175. }
  176. /* case '1':
  177. digitalWrite(relay1, HIGH);
  178. delay(100);
  179. digitalWrite(relay1, LOW);
  180. delay(100);
  181. break;
  182. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement