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.

#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

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

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

5.2.2 Sistema de Control de Luz

Abre el código 5.2.2Light-Control-System con Arduino IDE.

#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

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

image-20250417113142484