#define MAX_AV_LEVEL 600
#define MIN_AV_LEVEL 300
#define MAX_INTENSITY 10
#define MIN_INTENSITY 1
// 300 / 14 = 21
const uint16_t INTENSITY_STEP = round((MAX_AV_LEVEL - MIN_AV_LEVEL) / (MAX_INTENSITY - MIN_INTENSITY));
#define LDR_PIN A0
const float GAMMA = 0.7;
const float RL10 = 50;
void setup() {
pinMode(A0, INPUT);
Serial.begin(9600);
Serial.println(INTENSITY_STEP);
}
void loop() {
uint16_t analogValue = analogRead(A0);
Serial.print(analogValue);
Serial.print(" => ");
if (analogValue < MIN_AV_LEVEL) {
analogValue = MIN_AV_LEVEL;
}
if (analogValue > MAX_AV_LEVEL) {
analogValue = MAX_AV_LEVEL;
}
Serial.print(analogValue);
uint8_t intensityLevel = MAX_INTENSITY - round((analogValue - MIN_AV_LEVEL) / INTENSITY_STEP);
Serial.print(" / ");
Serial.print(INTENSITY_STEP);
Serial.print(" = ");
Serial.println(intensityLevel);
delay(400);
}