Back to Parent

int servoPin = A3;
int servoPosition = 0;
int ledRed = D2;
int ledYellow = D3;
int ledGreen = D4; 
int timer = 1000*60*1; //1 minute timer
bool timerStarted = false;

Servo servo;


void setup() {
    servo.attach(servoPin);
    pinMode(ledRed, OUTPUT);
    pinMode(ledYellow, OUTPUT);
    pinMode(ledGreen, OUTPUT);
    servo.write(0); //set to 0 degrees
    digitalWrite(ledRed,HIGH);
    Particle.function("StartTimer",controlTimer);

}

int controlTimer(String command){
    if(command=="start"){
        timerStarted=true;
        return 1;
    }
    else if (command=="stop"){ //stops after the loop is finished
        timerStarted=false;
        return -1;
    }
    else{
        return-1;
    }
}
    
void loop(){
if(timerStarted){
    for(int i=0; i<180; i=i+5){
            servo.write(i);
            delay(1666);
            }
      
        long timeNow = millis();
        long timeElapsed = timer-timeNow;
        
        if (timeElapsed<(1000*60*0.33)){
            digitalWrite(ledGreen, HIGH);
            digitalWrite(ledYellow, LOW);
            digitalWrite(ledRed, LOW);
        }
        else if(timeElapsed<(1000*60*0.66)){
            digitalWrite(ledGreen, LOW);
            digitalWrite(ledYellow, HIGH);
            digitalWrite(ledRed, LOW);
        }
        else{
            digitalWrite(ledGreen, LOW);
            digitalWrite(ledYellow, LOW);
            digitalWrite(ledRed, HIGH);
        }
    }

}
Click to Expand

Content Rating

Is this a good/useful/informative piece of content to include in the project? Have your say!

0