#include <Servo.h>
Servo servo;
int servoPin = 3, buttonPin = A0; int mks;
int buttonState = 0; // Переменная для хранения состояния кнопки
int lastButtonState = 0; // Переменная для хранения предыдущего состояния кнопки
unsigned long lastDebounceTime = 0; // Переменная для обработки дребезга кнопки
unsigned long debounceDelay = 1; // Задержка для обработки дребезга
void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT_PULLUP);
servo.attach(servoPin,544,2400); }
void loop() {
int reading = digitalRead(buttonPin); // Считываем состояние кнопки
// Проверка на дребезг кнопки
if (reading != lastButtonState) lastDebounceTime = millis();
// Если прошло время debounceDelay без изменений, считаем, что кнопка установилась в новое состояние
if ((millis() - lastDebounceTime) > debounceDelay) {
// Если состояние кнопки изменилось, сохраним его
if (reading != buttonState) { buttonState = reading;
// Если кнопка нажата (короткое нажатие), выполним цикл работы
if (buttonState == LOW) { Serial.println("Button Pressed!");
for (mks=500; mks <= 3000; mks++) {
servo.writeMicroseconds(mks); delayMicroseconds(100);}
// for (int pos=0; pos<= 180; pos--) { Not full angle InReal
// servo.write(pos); delay(1); }
delay(500);
for (mks=3000; mks >= 500; mks--) {
servo.writeMicroseconds(mks); delayMicroseconds(100);}
// for (int pos=180; pos >= 0; pos--) {
// servo.write(pos); delay(1); }
}
}
}
lastButtonState = reading; // Сохр. текущее состояние кнопки для следующего цикла
}