f_andreuzzi icon

cinesi

f_andreuzzi | PRO | 11/25/19 03:39:31 PM UTC | 0 ⭐ | 306 👁️ | Never ⏰ | []
text |

1.42 KB

|

None

|

0 👍

/

0 👎

/*
 */
 const int LED_1 = 7;
const int LED_2 = 9;
const int BUTTON_IN = 6;
 const int STATO_SPENTO = 0;
const int STATO_ACCESO = 1;
const int STATO_LAMPEGGIA = 2;
 int stato = STATO_SPENTO;
int lastButton = 0;
 int led2 = 1;
 // 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) {
       if(led2 * 2 <= 255) led2 *= 2;
      else led2 = 1;
       analogWrite(LED_2, led2);
       lastButton = 1;
       switch(stato) {
        case STATO_SPENTO:
          stato = STATO_ACCESO;
          break;
        case STATO_ACCESO:
          stato = STATO_LAMPEGGIA;
          break;
        case STATO_LAMPEGGIA:
          stato = STATO_SPENTO;
          break;
      }
       delay(200);
    }
  } else {
    lastButton = 0;
     int luce1, luce2;
     if(stato == STATO_LAMPEGGIA) {
      luce1 = HIGH;
      luce2 = LOW;
    } else if(stato == STATO_SPENTO) {
      luce1 = LOW;
      luce2 = luce1;
    } else if(stato == STATO_ACCESO) {
      luce1 = HIGH;
      luce2 = luce1;
    } else {
      return;
    }
     digitalWrite(LED_1, luce1);
    delay(10);
    digitalWrite(LED_1, luce2);
    delay(100);
  }
}

Comments