#include <Servo.h>
const int buttonPin = 2; // Пин, к которому подключена кнопка
int lastButtonState = LOW; // Переменная для хранения предыдущего состояния кнопки
Servo myservo;
int servoPin = 10;
int relayPin1 = 4;
int relayPin2 = 5;
int relayPin3 = 6;
int relayPin4 = 7;
bool isOpen = false; // Переменная для отслеживания состояния сервопривода
void setup() {
pinMode(buttonPin, INPUT);
myservo.attach(servoPin);
myservo.write(0); // Установите сервопривод в 0 градусов
pinMode(relayPin1, OUTPUT);
pinMode(relayPin2, OUTPUT);
pinMode(relayPin3, OUTPUT);
pinMode(relayPin4, OUTPUT);
// Другие настройки, если есть
}
void loop() {
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
lastButtonState = reading;
if (reading == HIGH) {
// Кнопка включена (старт)
if (!isOpen) {
myservo.write(90); // Открываем сервопривод, если он не открыт
delay(500);
isOpen = true; // Сервопривод открыт
// Запуск мигания светодиодов (один раз по очереди)
blinkLEDs();
}
} else {
// Кнопка выключена (стоп)
if (isOpen==true) {
myservo.write(0); // Закрываем сервопривод, если он открыт
delay(500);
isOpen = false; // Сервопривод закрыт
}
}
}
// Ваш основной цикл работы здесь
}
void blinkLEDs() {
// Ваш код для мигания светодиодов (один раз по очереди) здесь
// Пример: можно использовать цикл для мигания каждого светодиода по очереди с задержкой
// Например, для трех светодиодов:
for (int y = 4; y <= 6; y++) {
digitalWrite(y, HIGH); // Включить светодиод
delay(500); // Задержка 500 миллисекунд
digitalWrite(y, LOW); // Выключить светодиод
}
digitalWrite(relayPin4, HIGH); // Включить светодиод
delay(500); // Задержка 500 миллисекунд
digitalWrite(relayPin4, LOW); // Выключить светодиод
}