/* */ const int LED_1 = 7; const int LED_2 = 8; const int BUTTON_IN = 6; const int STATO_SPENTO = 0; const int STATO_ACCESO_1 = 1; const int STATO_ACCESO_2 = 2; const int STATO_ACCESO_12 = 3; int stato = STATO_SPENTO; int lastButton = 0; // viene eseguita una sola volta void setup() { pinMode(LED_1, OUTPUT); pinMode(LED_2, OUTPUT); pinMode(BUTTON_IN, INPUT); } // viene eseguita in loop infinite volte void loop() { int button = digitalRead(BUTTON_IN); if(button == HIGH) { if(lastButton == 0) { lastButton = 1; switch(stato) { case STATO_SPENTO: stato = STATO_ACCESO_1; break; case STATO_ACCESO_1: stato = STATO_ACCESO_2; break; case STATO_ACCESO_2: stato = STATO_ACCESO_12; break; case STATO_ACCESO_12: stato = STATO_SPENTO; break; } digitalWrite(LED_1, led1(stato)); digitalWrite(LED_2, led2(stato)); } } else { lastButton = 0; } } int led1(int stato) { if(stato == STATO_ACCESO_1 || stato == STATO_ACCESO_12) return HIGH; else return LOW; } int led2(int stato) { if(stato == STATO_ACCESO_2 || stato == STATO_ACCESO_12) return HIGH; else return LOW; }