f_andreuzzi icon

due_led

f_andreuzzi | PRO | 11/19/19 03:59:00 PM UTC | 0 ⭐ | 287 👁️ | Never ⏰ | []
text |

1.29 KB

|

None

|

0 👍

/

0 👎

/*
 */
 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;
}

Comments