Semaforo Complesso OK-Flip Flop Semplice ( e non ci salto fuori).

ciao...ci provo.

utilizzando LED integrato dell'arduino, se hai una UNO dovrebbe essere il PIN 13 e che puoi chiamare LED_BUILTIN, ed il LED della comunicazione su monitor seriale...il primo lo vedrai sempre cambiare di stato ogni mezzo secondo...l'altro, a seconda se usi millis() o delay() varia ad ogni esecuzione ciclo...quindi con delay() lo vedrai lampeggiare lento con millis() ti sembrerà sempre acceso da quante volte esegue il ciclo.

con delay():

unsigned long ciclo = 0;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);
}

void loop() {
  Serial.println(ciclo);
  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  delay(500);
  ciclo++;
}

con milli():

unsigned long ciclo = 0;
unsigned long tempo;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);
  tempo = millis();
}

void loop() {
  Serial.println(ciclo);
  if (millis() - tempo >= 500) {
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    tempo = millis();
  }
  ciclo++;
}