bool alarmSent = false; // Флаг отправки тревоги
bool systemEnabled = false; // По умолчанию система выключена
void setup() {
Serial.begin(115200);
pinMode(8, OUTPUT); // Синий светодиод
pinMode(7, INPUT); // PIR-датчик
pinMode(12, OUTPUT); // Красный светодиод
pinMode(4, INPUT_PULLUP); // Кнопка (ползунок)
}
void loop() {
// Проверяем команды в Serial Monitor
while (Serial.available() > 0) {
char command = Serial.read();
if (command == 'R' || command == 'r') {
systemEnabled = !systemEnabled; // Переключаем состояние системы
Serial.println(systemEnabled ? "Система ВКЛЮЧЕНА" : "Система ВЫКЛЮЧЕНА");
delay(200); // Защита от дребезга
}
}
if (!systemEnabled) {
// Если система выключена, отключаем всё
digitalWrite(8, LOW);
digitalWrite(12, LOW);
return;
}
int motion = digitalRead(7); // Читаем PIR-датчик
int switchState = digitalRead(4); // Читаем кнопку (ползунок)
if (motion == HIGH) {
digitalWrite(8, HIGH); // Включаем синий светодиод
if (!alarmSent) { // Если тревога ещё не была отправлена
Serial.println("тревога: обнаружено движение!");
alarmSent = true; // Запоминаем, что уже отправили тревогу
}
if (switchState == HIGH) {
digitalWrite(12, HIGH); // Включаем красный светодиод
}
} else {
digitalWrite(8, LOW); // Выключаем синий светодиод
alarmSent = false; // Сбрасываем флаг тревоги, чтобы можно было снова отправить
}
if (switchState == LOW) {
digitalWrite(12, LOW); // Выключаем красный светодиод
}
}