Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void setup ()
- {
- pinMode(wakePin, INPUT);
- pinMode(13, INPUT);
- pinMode(pin, OUTPUT);
- Serial.begin (9600);
- Serial.println ("Starting ...");
- // attachInterrupt(0, wakeUpNow, LOW); // use interrupt 0 (pin 2) and run function
- // wakeUpNow when pin 2 gets LOW
- pinMode(12, OUTPUT);
- pinMode(11, OUTPUT);
- pinMode(10, OUTPUT);
- pinMode(9, OUTPUT);
- pinMode(runPin, OUTPUT);
- pinMode(pumpPin, OUTPUT);
- done = true;
- } // end of setup
- void setMillis(unsigned long new_millis) {
- uint8_t oldSREG = SREG;
- cli();
- timer0_millis = new_millis;
- SREG = oldSREG;
- }
- //void wakeUpNow() // here the interrupt is handled after wakeup
- //{
- // // execute code here after wake-up before returning to the loop() function
- // // timers and code using timers (serial.print and more...) will not work here.
- // // we don't really need to execute any special functions here, since we
- // // just want the thing to wake up
- // setMillis(new_value);
- //
- //}
- void loop ()
- {
- // state = digitalRead(13);
- // // Serial.println(state);
- // if (state == HIGH)
- // {
- // Serial.println("Serial: Entering Sleep mode");
- // delay(100); // this delay is needed, the sleep
- // //function will provoke a Serial error otherwise!!
- // count = 0;
- // sleepNow(); // sleep function called here
- // }
- if (Serial.available ())
- {
- str = Serial.readString();
- String xval = getValue(str, '#', 0);
- String yval = getValue(str, '#', 1);
- incTime = atoi( &yval[ 0 ] );
- incProg = atoi( &xval[ 0 ] );
- Serial.println (incTime);
- Serial.println (incProg);
- Serial.end();
- delay(1000);
- Serial.begin (9600);
- setMillis(new_value);
- }
- ////Main code
- switch (incProg) {
- case 2:
- runPin = PIN12;
- done = start_function(incProg, incTime);
- break;
- case 3:
- runPin = PIN11;
- done = start_function(incProg, incTime);
- break;
- case 4:
- runPin = PIN10;
- done = start_function(incProg, incTime);
- break;
- case 5:
- runPin = PIN9;
- done = start_function(incProg, incTime);
- break;
- case 1:
- done = start_function_all(incProg, incTime);
- break;
- default:
- break;
- }
- } // end of loop
- int start_function_all(int incProg, int incTime) {
- for (int thisPin = 0; thisPin < pinCount; thisPin++) {
- digitalWrite(myrunPins[thisPin], HIGH);
- delay(1000);
- digitalWrite(pumpPin, HIGH);
- delay (incTime * 100);
- digitalWrite(pumpPin, LOW);
- delay(1000);
- digitalWrite(myrunPins[thisPin], LOW);
- Serial.println (myrunPins[thisPin]);
- if (myrunPins[thisPin] = 9){
- break;
- };
- }
- }
- int start_function(int incProg, int incTime) {
- int start_time;
- done = false;
- start_time = millis;
- if (millis() < (incTime * 1000 + start_time))
- {
- digitalWrite(runPin, HIGH);
- delay(1000);
- digitalWrite(pumpPin, HIGH);
- }
- else
- {
- digitalWrite(pumpPin, LOW);
- delay(1000);
- digitalWrite(runPin, LOW);
- done = true;
- }
- return done;
- }
- String getValue(String data, char separator, int index)
- {
- int found = 0;
- int strIndex[] = { 0, -1 };
- int maxIndex = data.length() - 1;
- for (int i = 0; i <= maxIndex && found <= index; i++) {
- if (data.charAt(i) == separator || i == maxIndex) {
- found++;
- strIndex[0] = strIndex[1] + 1;
- strIndex[1] = (i == maxIndex) ? i + 1 : i;
- }
- }
- return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement