### 5.2 Sistema de Control de Luz #### 5.2.1 Sensor de fotocélula Abre el código **5.2.1Photocell-sensor** con Arduino IDE. ```c #define PhotocecllPin 34 //Define el pin del fotorresistor void setup() { //Inicializa el puerto serie Serial.begin(9600); //Establece el pin en modo de entrada pinMode(PhotocecllPin,INPUT); } void loop() { //Lee el valor del fotorresistor int ReadValue = analogRead(PhotocecllPin); //Imprime el valor. NOTA: La placa ESP32 es un ADC de 12 bits, cuyo rango de valores de detección está entre 0 y 4095. Serial.print("Photocecll value: "); Serial.println(ReadValue); delay(500); } ``` Elige la placa **ESP32 Dev Module** y el puerto **COM**, y sube el código. ![5458448](../media/5458448.png) **Resultado de la prueba:** Abre el monitor serie. Cuanto más brillante sea la luz detectada por el fotorresistor, mayor será el valor. ![image-20250417112320453](../media/image-20250417112320453.png) Un módulo fotorresistor convierte la señal luminosa en señal eléctrica (voltaje, corriente y resistencia). Cuando la luz incide sobre el fotorresistor, cuanto más fuerte es la luz, menor es la resistencia, por lo que una mayor tensión VCC pasará a través del fotorresistor. ![image](../media/cou2.png) #### 5.2.2 Sistema de Control de Luz Abre el código **5.2.2Light-Control-System** con Arduino IDE. ```c #define PhotocecllPin 34 //Define el pin del fotorresistor #define LED 27 //Define el pin del LED void setup() { //Inicializa el puerto serie Serial.begin(9600); //Establece el pin del fotorresistor en modo de entrada pinMode(PhotocecllPin,INPUT); //Establece el pin del LED en modo de salida pinMode(LED,OUTPUT); } void loop() { //Lee el valor del fotorresistor int ReadValue = analogRead(PhotocecllPin); //Imprime el valor. NOTA: La placa ESP32 es un ADC de 12 bits, cuyo rango de valores de detección está entre 0 y 4095. Serial.print("Photocecll value: "); Serial.println(ReadValue); //Determinar: //El valor del fotorresistor >= 800, el LED se apaga //El valor del fotorresistor =< 800, el LED se enciende if(ReadValue >= 800) { digitalWrite(LED,LOW); Serial.println("LED OFF"); } else{ digitalWrite(LED,HIGH); Serial.println("LED ON"); } delay(100); } ``` Elige la placa **ESP32 Dev Module** y el puerto **COM**, y sube el código. ![5458448](../media/5458448.png) **Resultado de la prueba:** Cuando el valor del fotorresistor es mayor que 800 (durante el día), el LED se apaga. Sin embargo, si el valor es menor que 800, el LED se encenderá automáticamente. ![flo2](../media/flo2.png) ![image-20250417113142484](../media/image-20250417113142484.png)