// Плата: LGT8F32P
// Светодиод: пин 9 (ШИМ)
// Кнопка: пин 2 - GND (внутренняя подтяжка)
const int LED_PIN = 9;
const int BUTTON_PIN = 2;
int pressCount = 0;
bool fading = false;
unsigned long fadeStart = 0;
int lastButtonState = HIGH;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
// Определяем момент нажатия
if (buttonState == LOW && lastButtonState == HIGH) {
delay(50); // простой антидребезг
pressCount++;
if (pressCount == 3) {
fading = true;
fadeStart = millis();
}
if (pressCount == 4) {
pressCount = 0;
fading = false;
analogWrite(LED_PIN, 0);
}
}
lastButtonState = buttonState;
// Плавное увеличение яркости за 3 секунды
if (fading) {
unsigned long passed = millis() - fadeStart;
if (passed >= 3000) {
analogWrite(LED_PIN, 255);
fading = false;
} else {
int brightness = map(passed, 0, 3000, 0, 255);
analogWrite(LED_PIN, brightness);
}
}
}