const int pirPin = 2; // تحديد دخل حساس PIR
const int ldrPin = A0; // تحديد دخل حساس LDR
const int pirLedPin = 13; // تحديد دخل LED لحساس PIR
const int ldrLedPin = 12; // تحديد دخل LED لحساس LDR
bool pirActive = false; // تتبع حالة حساس PIR
bool ldrActive = false; // تتبع حالة حساس LDR
unsigned long previousMillis = 0; // تتبع الوقت الماضي
void setup() {
pinMode(pirPin, INPUT);
pinMode(ldrPin, INPUT);
pinMode(pirLedPin, OUTPUT);
pinMode(ldrLedPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis(); // الوقت الحالي
// التحقق من حساس PIR
if (digitalRead(pirPin) == HIGH) {
pirActive = true;
previousMillis = currentMillis;
}
// التحقق من حساس LDR
if (analogRead(ldrPin) > 300) { // قم بتعديل القيمة حسب الضوء المحيط
ldrActive = true;
} else {
ldrActive = false;
}
// تشغيل LED بناءً على حالة الحساسات
if (pirActive) {
digitalWrite(pirLedPin, HIGH);
if (currentMillis - previousMillis >= 500) {
pirActive = false;
digitalWrite(pirLedPin, LOW);
}
} else {
digitalWrite(pirLedPin, LOW);
}
if (ldrActive) {
digitalWrite(ldrLedPin, HIGH);
} else {
digitalWrite(ldrLedPin, LOW);
}
}