Advertisement
safwan092

Untitled

Dec 7th, 2021
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. // Power Supply needed to run the pumps [12V] !!
  2. #include <IRremote.h>
  3. int RECV_PIN = 11;
  4. IRrecv irrecv(RECV_PIN);
  5. decode_results results;
  6. int value = 0;
  7. //Water Pump Active @ [3.4V = 173] to [5V = 255]
  8. //Water Pump Inactive @ [3.3V = 167]
  9.  
  10. const int analogInPin = A1;
  11.  
  12. const int Pump_1_InPin1 = 3;//PWM Pin
  13. const int Pump_1_InPin2 = 4;//Digital Pin
  14.  
  15. const int Pump_2_InPin1 = 5;//PWM Pin
  16. const int Pump_2_InPin2 = 8;//Digital Pin
  17.  
  18. const int Pump_3_InPin1 = 6;//PWM Pin
  19. const int Pump_3_InPin2 = 7;//Digital Pin
  20.  
  21. const int Pump_4_InPin1 = 9;//PWM Pin
  22. const int Pump_4_InPin2 = 10;//Digital Pin
  23.  
  24. int sensorValue = 0;
  25. int outputValue1 = 0;
  26. int outputValue2 = 0;
  27. int outputValue3 = 0;
  28. int outputValue4 = 0;
  29.  
  30. void setup() {
  31. Serial.begin(9600);
  32. irrecv.enableIRIn();
  33. pinMode(Pump_1_InPin1, OUTPUT);
  34. pinMode(Pump_1_InPin2, OUTPUT);
  35. pinMode(Pump_2_InPin1, OUTPUT);
  36. pinMode(Pump_2_InPin2, OUTPUT);
  37. pinMode(Pump_3_InPin1, OUTPUT);
  38. pinMode(Pump_3_InPin2, OUTPUT);
  39. pinMode(Pump_4_InPin1, OUTPUT);
  40. pinMode(Pump_4_InPin2, OUTPUT);
  41. }
  42.  
  43. void loop() {
  44.  
  45. readIRcode();
  46. if (value == -23971) { // Turn ON Pumps On Auto Mode [1]
  47. readIRcode();
  48. pumpAuto();
  49. }
  50. else if (value == 25245) { // Turn ON Pumps With Sound [2]
  51. readIRcode();
  52. pumpWithSound();
  53. }
  54. else if (value == 14535) { // Stop All Pumps [OK]
  55. readIRcode();
  56. pumpStopAll();
  57. }
  58. else if (value == 26775) { // Turn ON all Pumps
  59. readIRcode();
  60. analogWrite( Pump_1_InPin1, 255);//outputValue2
  61. digitalWrite(Pump_1_InPin2, LOW);
  62. analogWrite( Pump_2_InPin1, 255);//outputValue2
  63. digitalWrite(Pump_2_InPin2, LOW);
  64. analogWrite( Pump_3_InPin1, 255);//outputValue3
  65. digitalWrite(Pump_3_InPin2, LOW);
  66. analogWrite( Pump_4_InPin1, 255);//outputValue4
  67. digitalWrite(Pump_4_InPin2, LOW);
  68. delay(500);
  69. }
  70. pumpStopAll();
  71. }//end of LOOP
  72.  
  73. void pumpWithSound() {
  74. sensorValue = analogRead(analogInPin);
  75. outputValue1 = map(sensorValue, 535, 575, 0, 255); // 163 = 3.2V [Pump Will Stop Working]
  76. /*
  77. if (outputValue1 < 20 && outputValue1 > -20) {
  78. outputValue1 = 0;
  79. outputValue2 = 0;
  80. outputValue3 = 0;
  81. outputValue4 = 0;
  82. }
  83. else if (outputValue1 < -20) {
  84. outputValue2 = (-1 * outputValue1) + 30;//-10
  85. outputValue3 = (-1 * outputValue1) + 100;//+50
  86. outputValue4 = (-1 * outputValue1) + 100;//+50
  87. }
  88. else {
  89. outputValue2 = (1 * outputValue1) + 30;
  90. outputValue3 = (1 * outputValue1) + 100;
  91. outputValue4 = (1 * outputValue1) + 100;
  92. }
  93. */
  94. Serial.print(abs(outputValue1));
  95. Serial.print("\t");
  96. //Serial.print(outputValue2);
  97. ////Serial.print("\t");
  98. //Serial.print(outputValue3);
  99. //Serial.print("\t");
  100. Serial.println(sensorValue);
  101. delay(100);
  102. if ( abs(outputValue1) < 200) {//130
  103. pumpStopAll();
  104. }
  105. else {
  106. pumpA4();
  107. /*
  108. analogWrite( Pump_1_InPin1, 255);//outputValue2
  109. digitalWrite(Pump_1_InPin2, LOW);
  110. analogWrite( Pump_2_InPin1, 255);//outputValue2
  111. digitalWrite(Pump_2_InPin2, LOW);
  112. */
  113. delay(abs(outputValue1));
  114. /*
  115. analogWrite( Pump_3_InPin1, 255);//outputValue3
  116. digitalWrite(Pump_3_InPin2, LOW);
  117. analogWrite( Pump_4_InPin1, 255);//outputValue4
  118. digitalWrite(Pump_4_InPin2, LOW);
  119. delay(abs(outputValue1));
  120. */
  121. }
  122. }
  123.  
  124. void pumpAuto() {
  125. pumpA1();
  126. delay(500);
  127. pumpA2();
  128. delay(500);
  129. pumpA3();
  130. delay(500);
  131. pumpA4();
  132. delay(500);
  133. }
  134.  
  135. void pumpA1() {
  136. analogWrite( Pump_1_InPin1, 255);
  137. digitalWrite(Pump_1_InPin2, LOW);
  138. analogWrite( Pump_2_InPin1, 255);
  139. digitalWrite(Pump_2_InPin2, LOW);
  140. analogWrite( Pump_3_InPin1, 173);
  141. digitalWrite(Pump_3_InPin2, LOW);
  142. analogWrite( Pump_4_InPin1, 173);
  143. digitalWrite(Pump_4_InPin2, LOW);
  144. }
  145. void pumpA2() {
  146. analogWrite( Pump_1_InPin1, 173);
  147. digitalWrite(Pump_1_InPin2, LOW);
  148. analogWrite( Pump_2_InPin1, 173);
  149. digitalWrite(Pump_2_InPin2, LOW);
  150. analogWrite( Pump_3_InPin1, 255);
  151. digitalWrite(Pump_3_InPin2, LOW);
  152. analogWrite( Pump_4_InPin1, 255);
  153. digitalWrite(Pump_4_InPin2, LOW);
  154. }
  155. void pumpA3() {
  156. analogWrite( Pump_1_InPin1, 173);
  157. digitalWrite(Pump_1_InPin2, LOW);
  158. analogWrite( Pump_2_InPin1, 173);
  159. digitalWrite(Pump_2_InPin2, LOW);
  160. analogWrite( Pump_3_InPin1, 173);
  161. digitalWrite(Pump_3_InPin2, LOW);
  162. analogWrite( Pump_4_InPin1, 173);
  163. digitalWrite(Pump_4_InPin2, LOW);
  164. }
  165. void pumpA4() {
  166. analogWrite( Pump_1_InPin1, 255);
  167. digitalWrite(Pump_1_InPin2, LOW);
  168. analogWrite( Pump_2_InPin1, 255);
  169. digitalWrite(Pump_2_InPin2, LOW);
  170. analogWrite( Pump_3_InPin1, 255);
  171. digitalWrite(Pump_3_InPin2, LOW);
  172. analogWrite( Pump_4_InPin1, 255);
  173. digitalWrite(Pump_4_InPin2, LOW);
  174. }
  175.  
  176. void pumpStopAll() {
  177. analogWrite( Pump_1_InPin1, LOW);
  178. digitalWrite(Pump_1_InPin2, LOW);
  179. analogWrite( Pump_2_InPin1, LOW);
  180. digitalWrite(Pump_2_InPin2, LOW);
  181. analogWrite( Pump_3_InPin1, LOW);
  182. digitalWrite(Pump_3_InPin2, LOW);
  183. analogWrite( Pump_4_InPin1, LOW);
  184. digitalWrite(Pump_4_InPin2, LOW);
  185. }
  186.  
  187. void readIRcode() {
  188. if (irrecv.decode(&results)) {
  189. value = results.value;
  190. Serial.println(value);
  191. delay(250);
  192. irrecv.resume();
  193. }
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement