Загрузка данных


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