Advertisement
Mesiee

Untitled

Dec 11th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. void setup ()
  2. {
  3. pinMode(wakePin, INPUT);
  4. pinMode(13, INPUT);
  5. pinMode(pin, OUTPUT);
  6. Serial.begin (9600);
  7. Serial.println ("Starting ...");
  8. // attachInterrupt(0, wakeUpNow, LOW); // use interrupt 0 (pin 2) and run function
  9. // wakeUpNow when pin 2 gets LOW
  10.  
  11. pinMode(12, OUTPUT);
  12. pinMode(11, OUTPUT);
  13. pinMode(10, OUTPUT);
  14. pinMode(9, OUTPUT);
  15. pinMode(runPin, OUTPUT);
  16. pinMode(pumpPin, OUTPUT);
  17. done = true;
  18. } // end of setup
  19.  
  20. void setMillis(unsigned long new_millis) {
  21. uint8_t oldSREG = SREG;
  22. cli();
  23. timer0_millis = new_millis;
  24. SREG = oldSREG;
  25. }
  26. //void wakeUpNow() // here the interrupt is handled after wakeup
  27. //{
  28. // // execute code here after wake-up before returning to the loop() function
  29. // // timers and code using timers (serial.print and more...) will not work here.
  30. // // we don't really need to execute any special functions here, since we
  31. // // just want the thing to wake up
  32. // setMillis(new_value);
  33. //
  34. //}
  35.  
  36.  
  37.  
  38. //void sleepNow() // here we put the arduino to sleep
  39. //{
  40. //
  41. // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
  42. //
  43. // sleep_enable(); // enables the sleep bit in the mcucr register
  44. // // so sleep is possible. just a safety pin
  45. //
  46. //
  47. // attachInterrupt(0, wakeUpNow, LOW); // use interrupt 0 (pin 2) and run function
  48. // // wakeUpNow when pin 2 gets LOW
  49. //
  50. // sleep_mode(); // here the device is actually put to sleep!!
  51. // // THE PROGRAM CONTINUES FROM HERE AFTER WAKING UP
  52. //
  53. // sleep_disable(); // first thing after waking from sleep:
  54. // // disable sleep...
  55. // detachInterrupt(0); // disables interrupt 0 on pin 2 so the
  56. // // wakeUpNow code will not be executed
  57. // // during normal running time.
  58.  
  59. //}
  60.  
  61.  
  62. void loop ()
  63. {
  64. // state = digitalRead(13);
  65. // // Serial.println(state);
  66. // if (state == HIGH)
  67. // {
  68. // Serial.println("Serial: Entering Sleep mode");
  69. // delay(100); // this delay is needed, the sleep
  70. // //function will provoke a Serial error otherwise!!
  71. // count = 0;
  72. // sleepNow(); // sleep function called here
  73. // }
  74.  
  75.  
  76. if (Serial.available ())
  77. {
  78. str = Serial.readString();
  79. String xval = getValue(str, '#', 0);
  80. String yval = getValue(str, '#', 1);
  81. incTime = atoi( &yval[ 0 ] );
  82. incProg = atoi( &xval[ 0 ] );
  83.  
  84. Serial.println (incTime);
  85. Serial.println (incProg);
  86.  
  87.  
  88. Serial.end();
  89. delay(1000);
  90. Serial.begin (9600);
  91. setMillis(new_value);
  92. }
  93.  
  94. ////Main code
  95.  
  96.  
  97. switch (incProg) {
  98. case 2:
  99. runPin = PIN12;
  100. done = start_function(incProg, incTime);
  101. break;
  102. case 3:
  103. runPin = PIN11;
  104. done = start_function(incProg, incTime);
  105. break;
  106. case 4:
  107. runPin = PIN10;
  108. done = start_function(incProg, incTime);
  109. break;
  110. case 5:
  111. runPin = PIN9;
  112. done = start_function(incProg, incTime);
  113. break;
  114. case 1:
  115. done = start_function_all(incProg, incTime);
  116. break;
  117. default:
  118. break;
  119. }
  120.  
  121.  
  122. } // end of loop
  123.  
  124. int start_function_all(int incProg, int incTime) {
  125. for (int thisPin = 0; thisPin < pinCount; thisPin++) {
  126.  
  127. digitalWrite(myrunPins[thisPin], HIGH);
  128. delay(1000);
  129. digitalWrite(pumpPin, HIGH);
  130. delay (incTime * 100);
  131.  
  132.  
  133. digitalWrite(pumpPin, LOW);
  134. delay(1000);
  135. digitalWrite(myrunPins[thisPin], LOW);
  136. Serial.println (myrunPins[thisPin]);
  137. if (myrunPins[thisPin] = 9){
  138.  
  139.  
  140. break;
  141. };
  142. }
  143.  
  144.  
  145. }
  146. int start_function(int incProg, int incTime) {
  147. int start_time;
  148. done = false;
  149. start_time = millis;
  150. if (millis() < (incTime * 1000 + start_time))
  151. {
  152. digitalWrite(runPin, HIGH);
  153. delay(1000);
  154. digitalWrite(pumpPin, HIGH);
  155. }
  156. else
  157. {
  158. digitalWrite(pumpPin, LOW);
  159. delay(1000);
  160. digitalWrite(runPin, LOW);
  161. done = true;
  162. }
  163. return done;
  164.  
  165. }
  166.  
  167.  
  168.  
  169. String getValue(String data, char separator, int index)
  170. {
  171. int found = 0;
  172. int strIndex[] = { 0, -1 };
  173. int maxIndex = data.length() - 1;
  174.  
  175. for (int i = 0; i <= maxIndex && found <= index; i++) {
  176. if (data.charAt(i) == separator || i == maxIndex) {
  177. found++;
  178. strIndex[0] = strIndex[1] + 1;
  179. strIndex[1] = (i == maxIndex) ? i + 1 : i;
  180. }
  181. }
  182. return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement