#include <Servo.h>
#define LDR_PIN A1
Servo myservo;
int potpin = 0;
int val;
// Define pin untuk potensiometer dan LED
const int potPin = A0; // Pin untuk potensiometer
const int ledPin1 = 5; // Pin untuk LED 1 dimulai dari kanan ke kiri
const int ledPin2 = 6; // Pin untuk LED 2
const int ledPin3 = 7;
const int ledPin4 = 8;
const int ledPin5 = 9;
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
//Serial.begin(115200);
pinMode(LDR_PIN, INPUT);
myservo.attach(11);
}
void loop() {
int analogValue = analogRead(A1);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
//Serial.println(lux);
delay(100);
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 180);
myservo.write(val);
// Baca nilai dari potensiometer
int potValue = analogRead(potPin);
// Map nilai potensiometer (0-1023) ke rentang (0-100)
int percentage = map(potValue, 0, 1023, 0, 100);
// Matikan kedua LED terlebih dahulu
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
// Jika nilai potensiometer 0%, nyalakan LED mati
if (percentage >= 0 && percentage <= 10) {
digitalWrite(ledPin1, LOW);
}
else if (percentage >= 10 && percentage <= 20) {
digitalWrite(ledPin1, HIGH);
}
else if (percentage > 21 && percentage <= 40) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
}
else if (percentage > 41 && percentage <= 60) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
}
else if (percentage > 61 && percentage <= 80) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
}
else if (percentage > 81 && percentage <= 100) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
}
// Tunda untuk stabilitas
delay(100);
}