#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); // антидребезг по уроку Алексея Gyver
count = count + 1;
// На 3-е нажатие — плавно зажигаем светодиод за 3 секунды
if (count == 3) {
for (i = 0; i <= 255; i = i + 1) {
analogWrite(LED, i);
delay(11); // 255 шагов примерно по 11 мс = 3 секунды
}
}
// На 4-е нажатие — плавно гасим и сбрасываем счетчик в ноль
if (count == 4) {
for (i = 255; i >= 0; i = i - 1) {
analogWrite(LED, i);
delay(11); // плавное угасание за 3 секунды
}
count = 0; // сброс, чтобы цикл можно было повторить с начала
}
// Пауза, чтобы программа не считывала один клик повторно, пока вы держите палец
delay(400);
}
}