//unsigned long interval = 30000; //in milli-seconds 30000 = 30 secs / 1/2 min unsigned long interval = 300000; //300ms in milli-seconds 5 mins int fan1LoSpeed = 75; int fan2LoSpeed = 35; int fan1HiSpeed = 100; int fan2HiSpeed = 55; // pin that the LED is attached to int ledYellow = 3 ; int ledGreen = 4 ; int button = 2; int buttonPushCounter = 1; int buttonState = 0; int lastButtonState = 0; unsigned long currentMillis; boolean timedOut=false; boolean timerOn=false; const int pwmPin_Out0 = 0; const int pwmPin_Out1 = 1; unsigned long startTime; void setup() { // initialize the LED pin as an output: pinMode(ledYellow,OUTPUT); pinMode(ledGreen,OUTPUT); pinMode(button,INPUT); pinMode(pwmPin_Out0,OUTPUT); pinMode(pwmPin_Out1,OUTPUT); } void loop() { buttonState = digitalRead(2); currentMillis = millis(); //delay(50); //Timer has timed out if (currentMillis > (startTime + interval)){ timerOn = false; } //button has been pressed, set hispeed and start timer or reset timer if already on if (buttonState == HIGH) { timerOn = true; startTime = millis(); } if (timerOn == true ) { //High Speed digitalWrite(ledYellow, HIGH); digitalWrite(ledGreen, LOW); analogWrite(pwmPin_Out0, fan1HiSpeed); analogWrite(pwmPin_Out1, fan2HiSpeed); } else { //low speed digitalWrite(ledYellow, LOW); digitalWrite(ledGreen, HIGH); analogWrite(pwmPin_Out0, fan1LoSpeed); analogWrite(pwmPin_Out1, fan2LoSpeed); } }