const byte M = 4;
const byte B = 5;
const byte H = 21;
const byte LDRSensor = 33;
void setup(){
Serial.begin(115200);
pinMode(M, OUTPUT);
pinMode(B, OUTPUT);
pinMode(H, OUTPUT);
}
void loop(){
int nilaiADC = analogRead(LDRSensor);
Serial.print("Nilai ADC: "+ String(nilaiADC));
float intensitasCahaya = intensitas(nilaiADC);
Serial.println(" Nilai Intensitas: "+ String(intensitasCahaya));
if (intensitasCahaya > 0 && intensitasCahaya <= 100){
digitalWrite(M, HIGH);
digitalWrite(H, LOW);
digitalWrite(B, LOW);
}
else if(intensitasCahaya > 5000 && intensitasCahaya <= 100000){
digitalWrite(M, HIGH);
digitalWrite(B, HIGH);
digitalWrite(H, HIGH);
}
else{
digitalWrite(M, LOW);
digitalWrite(B, LOW);
digitalWrite(H, LOW);
}
delay(100);
}
float intensitas(int adcValue){
const float GAMMA = 0.7;
const float RL10 = 33;;
float voltage = adcValue / 4096. * 3.3;
float resistance = 2000 * voltage / (1 - voltage / 3.3);
float luxValue = pow(RL10 * 1e3 * pow(10, GAMMA)/ resistance, (1 / GAMMA));
return luxValue;
}