Arduino

Tutorial: Encendido de un LED mediante una Fotorresistencia (LDR) con Arduino

¿Qué es una fotorresistencia (LDR)?

Una fotorresistencia o LDR (Light Dependent Resistor) es un componente electrónico cuya resistencia varía según la cantidad de luz que recibe.

  • Mayor luz → Menor resistencia

  • Menor luz → Mayor resistencia

Esto permite que Arduino detecte cambios en la iluminación del ambiente y tome decisiones, como encender o apagar un LED automáticamente.

Que aprenderas en este tutorial?

Diseñaras un sistema capaz de detectar la luz ambiente y a partir de la la intensidad encender o apagar un led. Esto funcionara similar a las lamparas automaticas que se encienden durante la noche en tu barrio o ciudad.

Materiales:

  • Arduino uno o arduino nano

  • Fotorresistencia (LDR)

  • Resistencia de 10 kΩ

  • LED

  • Resistencia de 220 Ω

  • Protoboard o placa de prueba

  • Cables de conexión

Esquema de conexión:

Conexión led:

Terminal catodo del led lleva una resistencia de 220 Ω y esta conectada a negativo de la protoboard.

Terminal anodo del led conectado al pin digital número 10 del arduino.

Conexión fotorresistencia:

Terminal 1 de la fotorresistencia conectado a la línea positiva de la protoboard.

Terminal 2 de la fotorresistencia conectamos una resistencia de 10 kΩ y desde la terminal 2 de la fotorresistencia conectamos un cable a linea negativa de la protoboard.

Terminal 2 de la fotorresistencia conectamos un cable que debera ir conectado a un pin analogo del arduino en este caso al pin A0

Nota: La fotorresistencia se puede usar tanto digital o analogo, es la mayoria de los casos se usa analoga ya que con esta podemos conocer y generar acciones más controladas de acuerdo a los valores de luz ambiente.

Código arduino:

int pinLed = 10;
int pinFoto = A0; 
int Intencidad = 0; 
void setup()
{
  pinMode(10, OUTPUT); 
  pinMode (A0,INPUT); 
}

void loop()
{
  Intencidad = analogRead(pinFoto);
  
  if(Intencidad < 70){ 
  digitalWrite(pinLed, HIGH); 
  }else{
  digitalWrite(pinLed, LOW);
  }
}

Con este codigo se define un valor de 70 cómo valor minimo de luz ambiente, si este valor se encuentra por debajo automaticamente se encendera el led, si la luz ambiente su valor sube por encima de 70 de manera automatica se apagan los leds, este valor se configura de acuerdo a la necesidad del ejercicio o proyecto, por lo cual es fundamental conocer cual es el valor mínimo que entrega la fotorresistencia y el valor máximo de la misma.

Para ello aconsejo realizar pruebas con luz ambiente en diferentes escenarios y agregar las siguientes dos líneas al código actual:

Serial.begin(9600);
Serial.println(Intencidad);

El Serial.begin permite inicializar el uso del monitor serial que nos presta tinkercad para lectura y envio de datos. Y con el Serial.println se imprime el valor que esta guardando la variable Intencidad.

El código completo quedaria de la siguiente manera:

int pinLed = 10;
int pinFoto = A0; 
int Intencidad = 0; 
void setup()
{
  Serial.begin(9600);
  pinMode(10, OUTPUT); 
  pinMode (A0,INPUT); 
}

void loop()
{
  Intencidad = analogRead(pinFoto);
  
  if(Intencidad < 70){ 
  digitalWrite(pinLed, HIGH); 
  }else{
  digitalWrite(pinLed, LOW);
  }
  Serial.println(Intencidad);
}

Al iniciar la simulación da clic en la parte inferior donde aparece monitor en serie y empezaras a ver unos valores, modifica la intensidad de la resistencia de manera progresiva con el fin de ver el valor mínimo y máximo que nos puede entregar, con estos valores podras definir tus propios parametros y crear tus propios condicionales para tu proyecto.

Te dejo algunos ejemplos de proyectos que puedes trabajar:

  • Alumbrado público automático

  • Luces automáticas para jardines

  • Sistema de iluminación para viviendas

  • Control de cortinas inteligentes

  • Sistema de ahorro energético en oficinas

  • Invernaderos inteligentes

  • Medidor de intensidad luminosa

Canal de YouTube

Ver canal

Vistas

31