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


#define BTN 3
#define LED 5

int count = 0;
int i = 0;

void setup() {
  pinMode(BTN, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  // Проверяем нажатие кнопки
  if (digitalRead(BTN) == HIGH) {
    delay(50); // антидребезг
    count = count + 1;

    // Если это ровно 3-е нажатие — запускаем плавное увеличение яркости за 3 секунды
    if (count == 3) {
      for (i = 0; i <= 255; i = i + 1) {
        analogWrite(LED, i);
        delay(11); // 255 шагов примерно по 11-12 мс дают те самые 3 секунды
      }
    }

    // Если это 4-е нажатие (или больше) — сбрасываем всё и выключаем светодиод
    if (count > 3) {
      count = 0;
      analogWrite(LED, 0);
    }

    // Задержка после каждого клика, чтобы программа не считывала одно нажатие сто раз
    delay(300);
  }
}