int reading = digitalRead(buttonPin);
// во фрагменте кода ниже проверяем, была ли нажата кнопка
// (т.е. изменилось ли входное значение с «LOW» на «HIGH»)
// и прошло ли достаточно времени с момента нажатия
// (чтобы исключить вероятность переключения из-за шума):
// если состояние переключателя изменилось -
// либо из-за шума, либо из-за нажатия на кнопку...
if (reading != lastButtonState) {
// ...сбрасываем счетчик антидребезга:
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
// каким бы ни было считанное значение,
// оно держится уже дольше периода антидребезга,
// поэтому принимаем это значение за текущее состояние контакта:
// если состояние кнопки изменилось:
if (reading != buttonState) {
buttonState = reading;
// чистим память, только если
// новым состоянием кнопки является «HIGH»:
if (buttonState == HIGH) {
Здесь очистка epprom
}
}
}