How program would handle the different timing. If we want to maintain the correct timing for each traffic light color, I think we would indeed need to use some form of state transition logic.You guys realize the pin output buffer reflects the current state? No need for the superfluous state variable.
Just sayin'.