Aprende a encender y apagar un LED con un fotorresistor

23.1  Objetivo General:

Encender un led con una fotorresistencia.

Esta práctica se va a usar un circuito analógico el activador formado por una fotorresistencia o resistencia LDR y un circuito secundario, que será el que queremos activar, que en este caso será un led.

23.2  Materiales y Métodos:

  1. Un led 
  2. Una fotorresistencia
  3. Dos resistencias de 100Ω
  4. Tarjeta protoboard
  5. Cables de circuito
  6. Un cable USB impresora.
  7. Un computador
  8. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560

23.2.1 Las Fotorresistencias

La fotorresistencia es un componente electrónico que está hecho de un semiconductor de alta resistencia como el sulfuro de cadmio, CdS. Si, la luz que incide en el componente es de alta frecuencia, los fotones son absorbidos por la elasticidad del semiconductor haciendo que su conductividad sea mayor

A la fotorresistencia también se le conoce como LDR, que por sus siglas en ingles significa “light-dependent resistor “o “resistencia dependiente de la luz”, ya que, su característica más destacable es que su resistividad varía según la cantidad de luz que reciba, que va desde 50 Ω a 10 MΩ.
Entre sus aplicaciones están, las luces nocturnas de encendido automático o fotosensibles (como las que se van a hacer en esta práctica), lo cual se hace principalmente para automatizar luces nocturnas, entre otros proyectos, que utilizan una fotorresistencia para activar uno o más circuitos secundarios al llegar a una cierta oscuridad, activando un relé (controlado por luz), donde el estado de iluminación de la fotorresistencia, activa o desactiva el relé.

23.3 Montaje de la práctica:

Antes de hacer la practica físicamente se esquematiza y se comprueba en el programa TinkerCad.

montaje de la practica en el programa TinkerCad

En la figura se puede apreciar que los pines a utilizar serán A0, 5v, GND y 13; siendo los pines A0 y 13 los que van a dar las señales analógica y digital.

23.3 IDE del código Arduino

• Esta práctica requiere de dos códigos el primero para obtener el valor del mínimo de luz ambiental y el segundo es el código accionador que utiliza el valor adquirido en el anterior para dar la señal a nuestro led.

• Primero que todo, se debe seleccionar la tarjeta Arduino:  Arduino Uno-R3, Arduino Mega 2560 o Nano

• Seguidamente, se selecciona bajo que puerto USB se va a conectar el Arduino con el computador.

• Antes de comenzar el código, se colocar el título del programa, esto se hace a través del símbolo // a los fines de introducir comentarios dentro del programa.

23.3.1 Procedimiento de cómo llevar a cabo el codificado del primer programa:

• Primero identificamos las variables con el comando “int” siendo estas “analogPin” el cual es el valor analógico de la LDR, y “valorLDR” que es el valor de la luz ambiental, que vamos a utilizar para el segundo código

• Luego, en el bloque void setup (), se declara que se va a utilizar la ventana de puerto serial, esto es, Serial.begin(9600), siendo 9600 un indicativo de la velocidad de comunicación.

• Seguidamente en el bloque void loop() se indica se establecen las instrucciones que ejecutará Arduino. Se indica la variable valorLDR y el signo = junto con el comando analogRead(analogPin)

• Luego se agrega el comando Serial.println(valorLDR) el cual junto con el comando Serial.begin(9600) establece el valor de la luz ambiental, en el monitor serial

• Y se coloca un retraso de 400 milisegundos

  • al estar ejecutando este código se debe abrir el monitor serie para saber el valor de la LDR, y anotar el valor que necesitamos, en este caso 900, para el trabajo o función de la que se necesita

23.3.2 Procedimiento de cómo llevar a cabo el codificado del segundo programa:

• Se declaran las variables con el comando int, las variables que se van a declarar son: analogPin=0, valorLDR=0, umbralNumber= y en esta ultima el valor de la luz ambiental visto en el código anterior, por ejemplo, 900, y LED=13.

• En el bloque void setup() se define el tipo de variable siendo el Led una variable de salida y se identifica con el comando pinMode(LED, OUTPUT) y el comando Serial.begin(9600).

• En bloque void loop() se hace el comando valorLDR=analogRead(analogPin). Luego se declara una serie de vaiantes para que el circuito secundario se ejecute, en este caso la variante es if(valorLDR >= umbralNumber) el cual dice que si le valor de la LDR aumenta (oscurece) y se hace mayor o igual al valor impuesto por nosotros se cumple lo que esta dentro de las llaves que seria el comando de activación del led, digitalWrite(LED, HIGH).

• Después se coloca el comando “else” para decir que la variable cambia a un valor inferior y debe terminase la variable, vuelve abrir una llave y dentro de este se coloca el ultimo comando digitalWrite(LED, LOW) y se cierra.

23.4 Algoritmo del primer código

//Identificar el valor de la luz
int analogPin=0;
int valorLDR=0;
void setup(){
  Serial.begin(9600);
}
void loop(){
  valorLDR=analogRead(analogPin);
  Serial.println(valorLDR);
  delay(400);
}

23.4.1 Algoritmo del segundo código

int analogPin=0;
int valorLDR=0;
int umbralNumber=900;// Ejemplo puede ser cualquier numero deseable
int LED=13;
void setup(){
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}
void loop(){
  valorLDR=analogRead(analogPin);
  if (valorLDR >= umbralNumber){
    digitalWrite(LED, HIGH);
  }
  else{
    digitalWrite(LED, LOW);
  }
}

  • Al terminar el desarrollo del programa se debe compilar para verificar si existen errores dentro del codificado. Luego si no existen errores se debe cargar el código en la tarjeta Arduino para que lo ejecute.

Aquí incluye la practica el primer y segundo código en el programa tinkercard

  1. https://www.tinkercad.com/things/0zjDqp4quQ6-brave-stantia
  2. https://www.tinkercad.com/things/eEXGGS1qFxQ-sizzling-robo

23.5 conclusión

En esta práctica como  desarrollar un sistema de iluminación autónomo sensible a la luz o fotosensible con una fotorresistencia. Otros proyectos que se pueden hacer con este simple principio, pueden ser el encendido y apagado de una red eléctrica hogareña para que a cierta hora se cumplan las condiciones que nosotros medimos e indicamos en los dos códigos anteriormente vistos. Pero llevar esta concepto a la practica puede ser algo difícil porque al ser nuestro circuito dependiente de la cantidad de luz en el ambiente, puede ser afectado por el secundario si este involucra una fuente de iluminación que puede alterar nuestras mediciones. Además, usamos un nuevo material que parte de un concepto ya visto como son las resistencias, agregándole un concepto nuevo e interesante como es la foto resistividad