Advertisement
Mesiee

Untitled

Dec 11th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 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.  
  39.  
  40. void loop ()
  41. {
  42. // state = digitalRead(13);
  43. // // Serial.println(state);
  44. // if (state == HIGH)
  45. // {
  46. // Serial.println("Serial: Entering Sleep mode");
  47. // delay(100); // this delay is needed, the sleep
  48. // //function will provoke a Serial error otherwise!!
  49. // count = 0;
  50. // sleepNow(); // sleep function called here
  51. // }
  52.  
  53.  
  54. if (Serial.available ())
  55. {
  56. str = Serial.readString();
  57. String xval = getValue(str, '#', 0);
  58. String yval = getValue(str, '#', 1);
  59. incTime = atoi( &yval[ 0 ] );
  60. incProg = atoi( &xval[ 0 ] );
  61.  
  62. Serial.println (incTime);
  63. Serial.println (incProg);
  64.  
  65.  
  66. Serial.end();
  67. delay(1000);
  68. Serial.begin (9600);
  69. setMillis(new_value);
  70. }
  71.  
  72. ////Main code
  73.  
  74.  
  75. switch (incProg) {
  76. case 2:
  77. runPin = PIN12;
  78. done = start_function(incProg, incTime);
  79. break;
  80. case 3:
  81. runPin = PIN11;
  82. done = start_function(incProg, incTime);
  83. break;
  84. case 4:
  85. runPin = PIN10;
  86. done = start_function(incProg, incTime);
  87. break;
  88. case 5:
  89. runPin = PIN9;
  90. done = start_function(incProg, incTime);
  91. break;
  92. case 1:
  93. done = start_function_all(incProg, incTime);
  94. break;
  95. default:
  96. break;
  97. }
  98.  
  99.  
  100. } // end of loop
  101.  
  102. int start_function_all(int incProg, int incTime) {
  103. for (int thisPin = 0; thisPin < pinCount; thisPin++) {
  104.  
  105. digitalWrite(myrunPins[thisPin], HIGH);
  106. delay(1000);
  107. digitalWrite(pumpPin, HIGH);
  108. delay (incTime * 100);
  109.  
  110.  
  111. digitalWrite(pumpPin, LOW);
  112. delay(1000);
  113. digitalWrite(myrunPins[thisPin], LOW);
  114. Serial.println (myrunPins[thisPin]);
  115. if (myrunPins[thisPin] = 9){
  116.  
  117.  
  118. break;
  119. };
  120. }
  121.  
  122.  
  123. }
  124. int start_function(int incProg, int incTime) {
  125. int start_time;
  126. done = false;
  127. start_time = millis;
  128. if (millis() < (incTime * 1000 + start_time))
  129. {
  130. digitalWrite(runPin, HIGH);
  131. delay(1000);
  132. digitalWrite(pumpPin, HIGH);
  133. }
  134. else
  135. {
  136. digitalWrite(pumpPin, LOW);
  137. delay(1000);
  138. digitalWrite(runPin, LOW);
  139. done = true;
  140. }
  141. return done;
  142.  
  143. }
  144.  
  145.  
  146.  
  147. String getValue(String data, char separator, int index)
  148. {
  149. int found = 0;
  150. int strIndex[] = { 0, -1 };
  151. int maxIndex = data.length() - 1;
  152.  
  153. for (int i = 0; i <= maxIndex && found <= index; i++) {
  154. if (data.charAt(i) == separator || i == maxIndex) {
  155. found++;
  156. strIndex[0] = strIndex[1] + 1;
  157. strIndex[1] = (i == maxIndex) ? i + 1 : i;
  158. }
  159. }
  160. return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement