Arduino UNO เซนเซอร์ทำงานทับซ้อนกัน

พอดีผมทำโปรเจคเปิดปิดไฟอัจฉริยะ โดยให้ปรบมือเพื่อเปิดปิดไฟ และวัดความเข้มแสง ปัญหาคือ เวลาปรบมือเพื่อเปิดไฟ ถ้าแสงมากพอ ไฟจะติดแล้วก็ดับไป ทำอย่างไรให้เซนเซอร์ไม่ทำงานทับซ้อนกัน รบกวนชี้แนะด้วยครับผม ขอบคุณครับ

ก็ต้องเขียน ลอจิกให้ 2 in put ทำงานด้วยกันได้ ลองเอาโค้ตที่เขียนมาดูก่อนครับ

#include <EasyScheduler.h>
int mic = 2;       // microphone module
int indicLED = 13; // indication pin
int lightPin = 9;  // relay (lights control)
bool lightState = true;
bool ignoreInt = false;
bool ClapDetected = false;
bool lightlock = true;
uint32_t ClapDetetedTime [3] {};
int ldr = A1;
Schedular Task1; // สร้างงาน Task
Schedular Task2;
Schedular Task3;
void setup() {
  Serial.begin(115200);
  espSerial.begin(115200);
  pinMode(indicLED, OUTPUT);    
  pinMode(lightPin, OUTPUT);
  pinMode(ldr, INPUT);  
  digitalWrite(lightPin, lightState);
  attachInterrupt(digitalPinToInterrupt(mic), ISR_ClapDetected, FALLING);
  Task1.start(); // สั่งให้งาน Task เริ่มทำงาน
  Task2.start();
  Task3.start();
}
void loop() {
  Task1.check(clap, 2);
  Task2.check(light, 100);
  Task3.check(ana,500);
}
void clap()
{
if(millis() - ClapDetetedTime[2] >= 800)
{
  digitalWrite(indicLED, LOW);
}
if(millis() - ClapDetetedTime[2] < 800 && millis() - ClapDetetedTime[1] < 800 && ClapDetected && ClapDetetedTime[1] - ClapDetetedTime[0]>=800)
  {
    Serial.println("double clap detected");
    digitalWrite(indicLED, LOW);
    Serial.print("Setting light to ");
    Serial.println(String(!lightState));
    digitalWrite(lightPin, lightState);
    lightState=!lightState;
    ClapDetected = false;
  }
}
void light()
{
  if(analogRead(ldr)<=50){
  digitalWrite(lightPin, HIGH);
  }
  else{
  digitalWrite(lightPin, LOW);  
  }
}  
void ana()
{
  int ldrVal = analogRead(ldr);
  Serial.println("LDR Sensor");
  Serial.println(ldrVal);
}
void ISR_ClapDetected()
{
  if(millis() - ClapDetetedTime[2] > 200){ // debounce

  for (int i = 0; i != 2; i++) {
  ClapDetetedTime[i] = ClapDetetedTime[i + 1];
  }
  
  ClapDetetedTime[2] = millis();
  ClapDetected = true;
  Serial.println("clap detected");
  digitalWrite(indicLED, HIGH);
  }
}