const int motionSensorPin = 2; // Пин для датчика движения
const int ledPin = 3; // Пин для светодиода
const int photoResistorPin = A0; // Пин для фоторезистора
const int threshold = 800; // Пороговое значение для фоторезистора
const int trainDelay = 5000; // Задержка в миллисекундах при обнаружении поезда
bool isTrainPresent = false; // Флаг наличия поезда
bool isMotionDetected = false; // Флаг обнаружения движения
void setup() {
pinMode(motionSensorPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Определение наличия поезда
int photoResistorValue = analogRead(photoResistorPin);
if (photoResistorValue < threshold) {
isTrainPresent = true;
} else {
isTrainPresent = false;
}
// Если поезд присутствует, датчик движения и светодиод отключены
if (isTrainPresent) {
digitalWrite(ledPin, LOW);
delay(trainDelay);
return;
}
// Обнаружение движения
if (digitalRead(motionSensorPin) == HIGH) {
isMotionDetected = true;
Serial.println("Motion detected!");
}
// Включение светодиода при обнаружении движения
if (isMotionDetected) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
}