// Membuat sebuah program terkait konversi ADC ke LUX LDR
const int pinSensor = A0;
const int pinLED = 22;
int adcValue = 0;
// Karakteristik LDR (datasheet)
const float GAMMA = 0.7; // Nilai ketetapan Gamma sebesar 0.7
const float RL10 = 50; // Nilai ketetapan RL10 sebesar 50
void setup() {
// put your setup code here, to run once:
Serial.begin(115200); // inisiasi serial comm dengan baudrate 115200
pinMode(pinLED, OUTPUT); // pinLED sebagai Output
pinMode(pinSensor, INPUT); // pinSensor sebagai Input
Serial.println("A15-Dinda Yunistri Ariani (Assignment sesi 10)");
Serial.println();
}
void loop() {
// konvert nilai analog adc kedalam nilai lux
int adcValue = analogRead(pinSensor);
float voltage = adcValue / 4095. * 5; //4095 = max ADC esp32
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
// cetak nilai adc ke serial monitor
Serial.print(adcValue);
Serial.println(" Nilai ADC");
//akuisisi nilai lux ke serial monitor
Serial.print(lux);
Serial.println(" Nilai LUX");
if (lux > 50){
Serial.println("dengan Nilai LUX tersebut maka, Cahaya Terang");
digitalWrite(pinLED, HIGH);
} else {
Serial.println("dengan Nilai LUX tersebut maka, Cahaya Gelap");
digitalWrite(pinLED, LOW);
}
// jeda akuisisi
delay(1000);
}