#include <Servo.h>
Servo servo; // Создаем объект для управления сервомотором
int buttonState = 0; // Переменная для хранения состояния кнопки
bool isPressed = false; // Флаг для фиксации нажатия кнопки
int servoPosition = 0; // Текущее положение сервомотора (0 или 20 градусов)
void setup() {
servo.attach(9); // Подключение сервомотора к пину 9
pinMode(2, INPUT_PULLUP); // Устанавливаем пин 2 кнопки как вход с подтяжкой к VCC
servo.write(servoPosition); // Устанавливаем начальное положение сервомотора
}
void loop() {
buttonState = digitalRead(2); // Читаем состояние кнопки
// Проверяем, была ли нажата кнопка
if (buttonState == LOW && !isPressed) {
isPressed = true; // Фиксируем нажатие
// Переключаем положение сервомотора
if (servoPosition == 70) {
servoPosition = 90; // Устанавливаем положение на 20 градусов
} else {
servoPosition = 70; // Устанавливаем положение на 0 градусов
}
servo.write(servoPosition); // Поворачиваем сервомотор
delay(300); // Задержка для устранения дребезга кнопки
}
// Проверяем, отпущена ли кнопка
if (buttonState == HIGH) {
isPressed = false; // Сбрасываем флаг нажатия
}
}