const int POT_PIN = A0;
const int LED_PIN1 = 13;
const int LED_PIN2 = 12;
const int LED_PIN3 = 11;
const int LED_PIN4 = 10;
const int LED_PIN5 = 9;
const int LED_PIN6 = 8;
const int LED_PIN7 = 7;
const int LED_PIN8 = 6;
const int LED_PIN9 = 5;
const int LED_PIN10 = 4;
// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
pinMode(POT_PIN, INPUT);
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
pinMode(LED_PIN3, OUTPUT);
pinMode(LED_PIN4, OUTPUT);
pinMode(LED_PIN5, OUTPUT);
pinMode(LED_PIN5, OUTPUT);
pinMode(LED_PIN6, OUTPUT);
pinMode(LED_PIN7, OUTPUT);
pinMode(LED_PIN8, OUTPUT);
pinMode(LED_PIN9, OUTPUT);
pinMode(LED_PIN10, OUTPUT);
Serial.begin(9600);
}
void loop() {
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
if (lux < 70 ) {
digitalWrite(LED_PIN1, HIGH);
} else {
digitalWrite(LED_PIN1, LOW);
}
if (lux< 170) {
digitalWrite(LED_PIN2, HIGH);
} else {
digitalWrite(LED_PIN2, LOW);
}
if (lux< 370) {
digitalWrite(LED_PIN3, HIGH);
} else {
digitalWrite(LED_PIN3, LOW);
}
if (lux< 570) {
digitalWrite(LED_PIN4, HIGH);
} else {
digitalWrite(LED_PIN4, LOW);
}
if (lux< 770) {
digitalWrite(LED_PIN5, HIGH);
} else {
digitalWrite(LED_PIN5, LOW);
}
if (lux< 970) {
digitalWrite(LED_PIN6, HIGH);
} else {
digitalWrite(LED_PIN6, LOW);
}
if (lux< 1170) {
digitalWrite(LED_PIN7, HIGH);
} else {
digitalWrite(LED_PIN7, LOW);
}
if (lux< 1370) {
digitalWrite(LED_PIN8, HIGH);
} else {
digitalWrite(LED_PIN8, LOW);
}
if (lux< 1570) {
digitalWrite(LED_PIN9, HIGH);
} else {
digitalWrite(LED_PIN9, LOW);
}
if (lux< 1970) {
digitalWrite(LED_PIN10, HIGH);
} else {
digitalWrite(LED_PIN10, LOW);
}
delay(100);
}