#include <LiquidCrystal.h>
// Definición de pines
const int ldrPin = A0; // Pin analógico para la fotoresistencia
const int potPin = A1; // Pin analógico para el potenciómetro
const int umbralMinimo = 500; // Umbral de luz mínima ajustable
// Configuración LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// Inicialización de la LCD
lcd.begin(16, 2);
// Mensaje de inicio
lcd.print("Sensor de Luz");
lcd.setCursor(0, 1);
lcd.print("Iniciando...");
delay(2000); // Espera 2 segundos
lcd.clear();
}
void loop() {
// Lectura de los valores de la fotoresistencia y del potenciómetro
int valorLDR = analogRead(ldrPin);
int valorPot = analogRead(potPin);
// Escala el valor del potenciómetro para obtener el umbral de luz mínimo ajustado
int umbralAjustado = map(valorPot, 0, 1023, 0, 1023);
// Comparación del nivel de luz con el umbral mínimo ajustado
if (valorLDR < umbralAjustado && valorLDR < umbralMinimo) {
// Si el nivel de luz es bajo, muestra un mensaje de alerta en la LCD
lcd.clear();
lcd.print("ALERTA: Luz baja!");
delay(1000); // Espera 1 segundo antes de borrar el mensaje
} else {
// Si el nivel de luz es suficiente, muestra un mensaje indicando el nivel de luz actual
lcd.clear();
lcd.print("Luz: ");
lcd.print(valorLDR);
lcd.print(" / ");
lcd.print(umbralAjustado);
delay(500); // Espera medio segundo antes de volver a leer
}
}