#include <ESP32Servo.h>
#define ldrPin 2
const int servoPin = 4;
const float gama = 0.7;
const float rl10 = 50;
Servo servo;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
servo.attach(servoPin, 500, 2400);
}
int pos = 0;
void loop() {
// put your main code here, to run repeatedly:
delay(10);
int nilaiLDR = analogRead(ldrPin);
nilaiLDR = map(nilaiLDR, 4095, 0, 1024, 0); //mengubah nilai pembacaan sensor LDR dari nilai ADC arduino menjadi nilai ADC ESP32
float voltase = nilaiLDR / 1024.*5;
float resistansi = 2000 * voltase / (1 - voltase / 5);
float kecerahan = pow(rl10 * 1e3 * pow(10, gama) / resistansi, (1 / gama));
Serial.print("Kecerahan = ");
Serial.println(kecerahan);
if (kecerahan > 50) {
for (pos = 0; pos <= 180; pos += 1) {
servo.write(pos);
delay(15);
}
} else {
for (pos = 180; pos >= 90; pos -= 1) {
servo.write(pos);
delay(15);
}
}
delay(100);
}