// Ejemplo de medición de iluminación con LDR y regulación de LED
// Basado en Torrente, 2013, p.398
const int ldrPin = A0; // Pin analógico donde se conecta el divisor con LDR
const int ledPin = 9; // Pin PWM para controlar el brillo del LED
void setup() {
Serial.begin(9600); // Iniciar comunicación serial
pinMode(ledPin, OUTPUT); // LED como salida
}
void loop() {
// Leer valor del LDR (0 a 1023)
int ldrValue = analogRead(ldrPin);
// Muestra el valor leído por monitor serie
Serial.print("Valor LDR: ");
Serial.println(ldrValue);
// Mapeamos la lectura del LDR a rango de PWM (0-255)
// Más luz (valor alto del LDR) → menos brillo
// Menos luz (valor bajo) → más brillo
int brightness = map(ldrValue, 0, 1023, 255, 0);
brightness = constrain(brightness, 0, 255);
// Ajustamos brillo del LED en función de la luz ambiente
analogWrite(ledPin, brightness);
delay(500); // Espera de medio segundo entre lecturas
}