Screen Shot 2025 12 03 at 12.09.11 PM
ldr con arduino

Práctica Sensor de Luz con LDR y Arduino UNO

💡 Introducción

En esta práctica aprenderemos a utilizar un sensor de luz (LDR) para medir la intensidad luminosa del ambiente.
Con este sensor construiremos un medidor de luz que enciende diferentes LEDs dependiendo de cuánta iluminación se detecte.
Además, veremos los valores del sensor en tiempo real a través del Monitor Serial del Arduino IDE.

🎯 Objetivo

Construir un medidor de luz utilizando un fotoresistor (LDR), una resistencia fija y una placa Arduino UNO,
interpretando las lecturas del sensor para encender LEDs según el nivel de iluminación.

🧰 Materiales

Cantidad Componente
1 Arduino UNO
1 Fotoresistor (LDR)
1 Resistencia de 10 kΩ
3 Resistencias de 330 Ω
3 LEDs
Breadboard
Cables jumper

📘 Fundamento Teórico

El LDR (Light Dependent Resistor) es un sensor cuya resistencia cambia según la luz recibida:

  • Más luz → menor resistencia → mayor voltaje en A0
  • Menos luz → mayor resistencia → menor voltaje en A0

Arduino mide este voltaje como un valor entre 0 y 1023.

Niveles de luz y LEDs

Nivel Valor ADC LEDs
Bajo 0–256 Ninguno
Medio 257–512 LED 1
Alto 513–768 LED 1 + LED 2
Muy alto 769–1023 LED 1 + LED 2 + LED 3

🛠️ Procedimiento

1. Conexión del Sensor LDR

Conecta el LDR formando un divisor de voltaje:

  • LDR → 5V
  • Resistencia 10 kΩ → GND
  • Unión entre LDR y resistencia → A0

2. Conexión de los LEDs

  • LED 1 → Pin 2
  • LED 2 → Pin 3
  • LED 3 → Pin 4
  • Cada LED con resistencia de 330 Ω

3. Montaje en Breadboard

Si deseas, puedo generarte una imagen tipo Fritzing para agregarla aquí.

💻 Código Arduino


int pinLed1 = 2; // Pines de los LEDs
int pinLed2 = 3;
int pinLed3 = 4;

int pinLDR = 0; // Pin analógico A0
int valorLDR = 0; // Variable que guarda la lectura del LDR

void setup() {
  pinMode(pinLed1, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinLed3, OUTPUT);

  Serial.begin(9600); // Activar monitor serial
}

void loop() {
  // Apagar LEDS al inicio del ciclo
  digitalWrite(pinLed1, LOW);
  digitalWrite(pinLed2, LOW);
  digitalWrite(pinLed3, LOW);

  // Leer valor del sensor LDR (0–1023)
  valorLDR = analogRead(pinLDR);

  // Enviar valor al monitor serial
  Serial.println(valorLDR);

  // Encender LEDs según la intensidad de luz
  if (valorLDR > 256) {
    digitalWrite(pinLed1, HIGH);
  }
  if (valorLDR > 512) {
    digitalWrite(pinLed2, HIGH);
  }
  if (valorLDR > 768) {
    digitalWrite(pinLed3, HIGH);
  }

  delay(200); // Pausa para estabilidad
}

📊 Resultados Esperados

  • Con poca luz → ningún LED encendido.
  • Luz media → LED 1.
  • Luz alta → LED 1 y LED 2.
  • Mucha luz → LED 1, LED 2 y LED 3.
  • Monitor Serial mostrando valores del 0 al 1023.

📝 Conclusiones

El estudiante comprenderá:

  • Cómo funciona un LDR
  • Cómo leer un sensor analógico
  • Cómo usar divisores de voltaje
  • Cómo controlar LEDs desde Arduino

⭐ Actividades Complementarias

  • Modificar los umbrales de luz.
  • Registrar valores máximos y mínimos.
  • Usar un buzzer en lugar de LEDs.
  • Crear un sistema automático de iluminación.