/*
int ldrPin = A0;
int ldrVal = 0;
int ledPin = 2;
float GAMMA = 0.7;
float RL10 = 50;
void setup(){
Serial.begin(9600);
pinMode(ldrPin, INPUT);
pinMode(ledPin,OUTPUT);
}
void loop(){
ldrVal = analogRead(ldrPin);
float voltage = (ldrVal/1024)*5;
float resistance = 2000 * voltage/(5-voltage);
float lux = pow(RL10 * 1e3 * pow(10,GAMMA) / resistance , (1/GAMMA));
if(lux<200){
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
Serial.print("Lux value: ");
Serial.print(lux);
Serial.print(" | ");
Serial.print("Resistance: ");
Serial.print(resistance);
Serial.print(" | ");
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.println("\n");
delay(1000);
}
*/
int ldrPin = A0; // Pin connected to the LDR sensor
int ldrVal = 0; // Variable to store LDR value
int ledPin = 2; // Pin connected to the LED
float GAMMA = 0.7; // Gamma value for LDR
float RL10 = 50; // Resistance at 10 lux (in kΩ)
void setup() {
Serial.begin(9600); // Start serial communication
pinMode(ldrPin, INPUT); // Set LDR pin as input
pinMode(ledPin, OUTPUT); // Set LED pin as output
}
void loop() {
ldrVal = analogRead(ldrPin); // Read LDR value
float voltage = (ldrVal / 1024.0) * 5; // Convert to voltage
float resistance = 2000 * voltage / (5 - voltage); // Calculate resistance
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA)); // Calculate lux
if (lux < 200) {
digitalWrite(ledPin, HIGH); // Turn LED ON if lux < 200
} else {
digitalWrite(ledPin, LOW); // Turn LED OFF otherwise
}
// Print values for debugging
Serial.print("Lux value: ");
Serial.print(lux);
Serial.print(" | Resistance: ");
Serial.print(resistance);
Serial.print(" | Voltage: ");
Serial.println(voltage);
delay(1000); // Wait for 1 second
}