const int buttonPin = 2;
const int ledPin = 9;
int brightness = 0;
int pressCount = 0;
bool lastButtonState = HIGH;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
analogWrite(ledPin, 0);
}
void loop() {
bool buttonState = digitalRead(buttonPin);
// Обнаружено нажатие
if (lastButtonState == HIGH && buttonState == LOW) {
pressCount++;
// Первые 4 нажатия — увеличение яркости
if (pressCount <= 4) {
brightness = pressCount * 255 / 4;
}
// Следующие 4 нажатия — уменьшение яркости
else if (pressCount <= 8) {
brightness = (8 - pressCount) * 255 / 4;
}
// После 8 нажатий начинаем заново
else {
pressCount = 1;
brightness = 255 / 4;
}
analogWrite(ledPin, brightness);
// Задержка для устранения дребезга кнопки
delay(250);
}
lastButtonState = buttonState;
}