Hi there
I have hit a problem that I can't figure out i've tried lots of things, using the example of blinkwithoutdelay I was looking to make a chaser led but it seems that it gets stuck on the first if function and then repeats it never moving to the next if, Using the delay function it works no problem.
this is a cut down version that still displays the same problem. Its probably something simple, I bow to you superior knowledge!
int led0 = 13; // defines led 0 output pin
int led1 = 12; // defines led 1 output pin
int led2 = 11; // defines led 3 output pin
int led3 = 10; // defines led 4 output pin
int ledLow = 0;
int ledHigh = 255;
// chaser section
long interval = 1000; //interval timer for chaser section
long previousMillis = 0; // time differance from last read
void setup() {
// initialize the digital pin as an output.
pinMode(led0, OUTPUT); //sets led output
pinMode(led1, OUTPUT); //sets led output
pinMode(led2, OUTPUT); //sets led output
pinMode(led3, OUTPUT); //sets led output
Serial.begin(9600) ;
}
void loop()
{
unsigned long currentMillis = millis(); // sets the run time counter
//************************************************************************************
//chaser section
if(currentMillis - previousMillis > interval) { //interval timer
previousMillis = currentMillis; //resets interval timer
digitalWrite(led0, ledHigh);
//previousMillisChaser = currentMillis; //resets interval timer
Serial.println("high");
}
if(currentMillis - previousMillis > interval) { //interval timer
previousMillis = currentMillis; //resets interval timer
digitalWrite(led0, ledLow);
//previousMillisChaser = currentMillis; //resets interval timer
Serial.println("low");
}
}
/*
if(currentMillis - previousMillisChaser > intervalChaser){ //interval timer
previousMillisChaser = currentMillis; //resets interval timer
digitalWrite(led1, ledHigh);
//previousMillisChaser = currentMillis; //resets interval timer
//Serial.println("high");
}
if(currentMillis - previousMillisChaser > intervalChaser){ //interval timer
previousMillisChaser = currentMillis; //resets interval timer
digitalWrite(led1, ledLow);
//previousMillisChaser = currentMillis; //resets interval timer
//Serial.println("low");
}
if(currentMillis - previousMillisChaser > intervalChaser){ //interval timer
previousMillisChaser = currentMillis; //resets interval timer
digitalWrite(led2, ledHigh);
//previousMillisChaser = currentMillis; //resets interval timer
//Serial.println("high");
}
if(currentMillis - previousMillisChaser > intervalChaser){ //interval timer
previousMillisChaser = currentMillis; //resets interval timer
digitalWrite(led2, ledLow);
//previousMillisChaser = currentMillis; //resets interval timer
//Serial.println("low");
}
if(currentMillis - previousMillisChaser > intervalChaser){ //interval timer
previousMillisChaser = currentMillis; //resets interval timer
digitalWrite(led3, ledHigh);
//previousMillisChaser = currentMillis; //resets interval timer
//Serial.println("high");
}
if(currentMillis - previousMillisChaser > intervalChaser){ //interval timer
previousMillisChaser = currentMillis; //resets interval timer
digitalWrite(led3, ledLow);
//previousMillisChaser = currentMillis; //resets interval timer
//Serial.println("low");
}
*/
//Serial.println("chaser");
//Serial.println();