const int LDR = 4; 
const int LED = 5;
float lux = 0;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
}

void loop() {
  int input_val = analogRead(LDR); // Membaca nilai analog dari sensor LDR
  lux = analogToLux(input_val); // Mengonversi nilai bacaan analog ke lux
  Serial.print("Light intensity (lux): ");
  Serial.println(lux);
  delay(1000);

  if (lux > 800) {
    digitalWrite(LED, HIGH);
    delay(5000);
  } else {
    digitalWrite(LED, LOW);
    delay(5000);
  }
}

// Fungsi untuk mengonversi nilai bacaan analog menjadi lux
float analogToLux(int analogValue) {
  // Misalnya, Anda memiliki persamaan untuk mengonversi nilai analog ke lux,
  // Anda bisa menulisnya di sini.
  // Contoh:
  // float luxValue = analogValue * (maximum_light_intensity / maximum_analog_value);
  // Di mana maximum_light_intensity adalah nilai maksimum dalam lux yang bisa diukur oleh sensor
  // dan maximum_analog_value adalah nilai analog maksimum yang dapat dibaca oleh mikrokontroler.
  // Anda perlu mengacu pada lembar data sensor untuk menemukan nilai-nilai yang sesuai.
  // Penggunaan persamaan ini hanya sebagai contoh.
  float luxValue = analogValue * (1000.0 / 1023.0); // Misalnya, faktor konversi sederhana
  return luxValue;
}