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


#define buttonPin 2
#define ledPin 8

int pressCount = 0;          // счётчик нажатий

int buttonState;             // текущее стабильное состояние кнопки
int lastButtonState = HIGH;  // предыдущее считанное (сырое) состояние

unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;   // антидребезг, мс
unsigned long ledOnTime = 500;      // сколько светит светодиод, мс

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(buttonPin);

  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == LOW) {  // кнопка нажата (замкнута на GND)
        pressCount++;
        Serial.print("Нажатие №: ");
        Serial.println(pressCount);

        if (pressCount >= 2) {
          digitalWrite(ledPin, HIGH);
          delay(ledOnTime);
          digitalWrite(ledPin, LOW);
          pressCount = 0;
          Serial.println("Светодиод сработал, счётчик сброшен");
        }
      }
    }
  }

  lastButtonState = reading;
}