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


#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;

    // На 4-е нажатие сбрасываем и тушим
    if (count > 3) {
      count = 0;
      analogWrite(LED, 0);
    }

    // На 3-е нажатие плавно набираем яркость при удержании
    if (count == 3) {
      for (i = 0; i <= 255; i++) {
        if (digitalRead(BTN) == HIGH) {
          analogWrite(LED, i);
          delay(11); // плавный набор примерно за 3 секунды
        } 
        else {
          i = 256; // завершаем цикл, если кнопку отпустили раньше
        }
      }
    }

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