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


const int ledPin = 9;      // Светодиод на PWM-пине
const int buttonPin = 2;   // Кнопка

int pressCount = 0;
unsigned long lastPress = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);

  analogWrite(ledPin, 0);
}

void loop() {
  // Проверяем нажатие кнопки
  if (digitalRead(buttonPin) == LOW) {

    // Защита от повторного считывания одного нажатия
    if (millis() - lastPress > 250) {
      pressCount++;
      lastPress = millis();
    }

    // Ждём, пока кнопку отпустят
    while (digitalRead(buttonPin) == LOW) {
      delay(10);
    }
  }

  // После 3 нажатий начинаем плавно увеличивать яркость
  if (pressCount >= 3) {

    // От минимальной яркости до максимальной за 5 секунд
    for (int brightness = 1; brightness <= 255; brightness++) {

      analogWrite(ledPin, brightness);

      delay(5000 / 255);
    }

    pressCount = 0;
  }
}