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