Загрузка данных


// Плата: LGT8F32P
// Светодиод подключен к пину 9 (ШИМ)
// Кнопка подключена между пином 2 и GND

#define LED_PIN 9
#define BUTTON_PIN 2

int count = 0;              // счетчик нажатий
bool ledFading = false;     // флаг процесса нарастания яркости
unsigned long startTime;    // время начала нарастания
int lastState = HIGH;       // предыдущее состояние кнопки

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}

void loop() {
  int state = digitalRead(BUTTON_PIN);

  if (state == LOW && lastState == HIGH) {
    delay(50);
    count++;

    if (count == 3) {
      ledFading = true;
      startTime = millis();
    }

    if (count > 3) {
      count = 0;
      ledFading = false;
      analogWrite(LED_PIN, 0);
    }
  }

  lastState = state;

  if (ledFading) {
    unsigned long elapsed = millis() - startTime;

    if (elapsed < 3000) {
      int brightness = map(elapsed, 0, 3000, 0, 255);
      analogWrite(LED_PIN, brightness);
    } else {
      analogWrite(LED_PIN, 255);
      ledFading = false;
    }
  }
}