const int ledPin = 4; // Пин для светодиода (встроенный на Arduino Uno) // пин светодиода
const int buttonPin = 2; // Пин для кнопки (подключите кнопку между пином 2 и землей) // кнопка
int buttonState = LOW; // состояние кнопки начальное
int lastButtonState = LOW; // конечное
int ledState = LOW; // состояние лампочки
unsigned long lastDebounceTime = 0; // Переменная для хранения времени последнего изменения состояния кнопки
unsigned long debounceDelay = 50;
void setup() {
pinMode(ledPin, OUTPUT); // пин для светодиода как выход
pinMode(buttonPin, INPUT_PULLUP); // Настраиваем пин для кнопки как вход с подтяжкой к земле
}
void loop() {
int reading = digitalRead(buttonPin); // Считываем состояние кнопки
// Проверка состоянии кнопки
if (reading != lastButtonState) {
// Запоминаем время последнего изменения состояния кнопки
lastDebounceTime = millis();
}
// Проверяем, прошло ли достаточно времени для устранения дребезга
if ((millis() - lastDebounceTime) > debounceDelay) {
// Если состояние кнопки изменилось, сохраняем новое состояние
if (reading != buttonState) {
buttonState = reading;
// Если кнопка нажата, изменяем состояние светодиода
if (buttonState == LOW) {
ledState = !ledState;
}
}
}
// Управляем светодиодом в соответствии с его текущим состоянием
digitalWrite(ledPin, ledState);
// Запоминаем последнее состояние кнопки
lastButtonState = reading;
}