im having a problem running 2 light sequence together the program starts one sequence then its a delay till the other starts but when ran the code starts the first sequence the when the second one starts the first one stops the second one runs then finishes the first sequence here in the section of the code im having problems with but will also add complete code
// start bracket tree
if (brackettree == true)
{
if (raceStart == true)
{
treeState = stage;
treeState2 = stager;
raceStart = false;
}
{
if (treeState == stage)
{
digitalWrite(stagelPin, LOW); //left stage light on
treeStart = millis();
treeState = drop;
}
else if (treeState == drop & millis() - treeStart >= (1000 + Ldelay))
{
digitalWrite(yellow1LPin, LOW);
treeStart = millis();
treeState = drop2;
}
else if (treeState == drop2 & millis() - treeStart >= 500)
{
digitalWrite(yellow1LPin, HIGH);
digitalWrite(yellow2LPin, LOW);
treeStart = millis();
treeState = drop3;
}
else if (treeState == drop3 & millis() - treeStart >= 500)
{
digitalWrite(yellow2LPin, HIGH);
digitalWrite(yellow3LPin, LOW);
if (millis() - treeStart >= 600)
{
treeStart = millis();
if (btime == false)
{
timerStartState = true;
btime = true;
}
treeState = go;
}
}
else if (treeState == go & millis() - treeStart >= 400)
{
digitalWrite(yellow3LPin, HIGH);
if ((stageLeft == LOW) & (leftStart == HIGH)) //car must be in stage sensor till green if moves before red ligh will come on insted
{
digitalWrite(greenlPin, LOW); // green light on
leftJumpStart = false;
treeState = end;
}
else
{
digitalWrite(redlPin, LOW); //red light on car moved befor green light
leftJumpStart = true;
treeState = end;
}
}
}
{
if (treeState2 == stage)
{
digitalWrite(stagerPin, LOW); //right stage light on by ir
treeStart2 = millis();
treeState2 = dropr;
}
else if (treeState2 == dropr & millis() - treeStart2 >= (1000 + Rdelay))
{
digitalWrite(yellow1RPin, LOW);
treeStart2 = millis();
treeState2 = drop2r;
}
else if (treeState2 == drop2r & millis() - treeStart2 >= 500)
{
digitalWrite(yellow1RPin, HIGH);
digitalWrite(yellow2RPin, LOW);
treeStart2 = millis();
treeState2 = drop3r;
}
else if (treeState2 == drop3r & millis() - treeStart2 >= 500)
{
digitalWrite(yellow2RPin, HIGH);
digitalWrite(yellow3RPin, LOW);
if (millis() - treeStart >= 600)
{
treeStart2 = millis();
if (btime == false)
{
timerStartState = true;
btime = true;
}
treeState2 = gor;
}
}
else if (treeState2 == gor & millis() - treeStart2 >= 400)
{
digitalWrite(yellow3RPin, HIGH);
if ((stageRight == LOW) & (rightStart == HIGH)) //car must be in stage sensor till green if moves before red ligh will come on insted
{
digitalWrite(greenrPin, LOW); // green light on
rightJumpStart = false;
treeState2 = endr;
}
else
{
digitalWrite(redrPin, LOW); //red light on car moved befor green light
rightJumpStart = true;
treeState2 = endr;
}
}
}
if ((treeState == end) && (treeState2 == endr))
{
btime = false;
brackettree = false;
}
dragtree1.63.ino (23.1 KB)