struct {
const unsigned long duration;
const int value;
} sequence[] = {
{600, 0},
{400, 2},
{600, 1},
{400, 2},
};
const size_t sequenceCount = sizeof sequence / sizeof * sequence;
unsigned long lastChange;
size_t currentSequence = 0;
void tick() {
if (millis() - lastChange >= sequence[currentSequence].duration) {
Serial.println(sequence[currentSequence].value);
currentSequence = (currentSequence + 1) ;
if (currentSequence >= sequenceCount) {
currentSequence = 0;
Serial.println(F("-----"));
}
lastChange = millis();
}
}
void setup() {
Serial.begin(115200); Serial.println();
lastChange = millis();
}
void loop() {
tick();
}