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


#define BTN 3
#define LED 5

int count = 0;
int i = 0;
int BTNState = 0;
int lastBTNState = 0;

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

void loop() {
  BTNState = digitalRead(BTN);

  // Ловим момент именно НАЖАТИЯ (переход от LOW к HIGH)
  if (BTNState == HIGH) {
    if (lastBTNState == LOW) {
      delay(50); // антидребезг по уроку
      count = count + 1;

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

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

  lastBTNState = BTNState;
}