const int ledPin = 9;
const int buttonPin = 2;
int pressCount = 0;
int brightness = 0;
bool lastButtonState = HIGH;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 50;
const unsigned long fadeTime = 5000;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
analogWrite(ledPin, 0);
}
void loop() {
bool buttonState = digitalRead(buttonPin);
if (lastButtonState == HIGH && buttonState == LOW) {
if (millis() - lastDebounceTime > debounceDelay) {
pressCount++;
lastDebounceTime = millis();
if (pressCount == 4) {
pressCount = 0;
brightness = 0;
analogWrite(ledPin, 0);
}
if (pressCount == 3) {
for (int i = 1; i <= 255; i++) {
brightness = i;
analogWrite(ledPin, brightness);
delay(fadeTime / 255);
}
}
}
}
lastButtonState = buttonState;
}