#include <Servo.h>
#define Button_Pin 6 // Кнопка закрытия/открытия
#define DoorLocker_Pin 3 // Щеколда (Соленоида или сервозамок)
#define DoorEnd_Pin 7 // Концевик двери (Концевая кнопка, геркон, датчик магнитного поля)
#define Led_Pin 3 // Индикация закрытия двери
boolean Button_Flag;
boolean Button;
boolean Door_Pos;
boolean Door_lock_end;
Servo myservo;
void setup() {
pinMode(Button_Pin, INPUT_PULLUP);
pinMode(DoorLocker_Pin, OUTPUT);
pinMode(DoorEnd_Pin, INPUT_PULLUP);
pinMode(Led_Pin, OUTPUT);
myservo.attach(2);
Serial.begin(9600);
}
void loop() {
Button = !digitalRead(Button_Pin);
Door_lock_end = !digitalRead(DoorEnd_Pin);
if (Door_lock_end == 0){
digitalWrite(Led_Pin, HIGH);
}
else {
digitalWrite(Led_Pin, LOW);
}
if (Button == 1 && Button_Flag == 0) {
Button_Flag = 1;
Door_Pos = !Door_Pos;
Serial.println("Кнопка зажата" + String(Door_Pos));
delay(50);
}
if (Button == 0 && Button_Flag == 1){
Button_Flag = 0;
Serial.println("Кнопка отжата" + String(Door_Pos));
delay(50);
}
if (Door_Pos == 1 && Door_lock_end == 1){
myservo.write(0);
}
else {
myservo.write(180);
}
}