Sensor de luz LDR (3 unidades)

PGM5516-03

Sensor de luz LDR (3 unidades)

Sensor de luminosidad (LDR) cuya resistencia aumenta con la luz.

Ideal para trabajar con Crumble, Compluino/Arduino, Raspberry Pi y otro tipo de controladores.

Estado: NUEVOEN STOCK  (7) Entrega 24/48 h
1,20
21.00% IVA incluido
unidades

Añadir a cesta

Peso: 20 gramos

Especificaciones técnicas:

  • Referencia: PGM5516
  • Resistencia a luz ambiente (10 Lux): 5 - 10 K
  • Resistencia en oscuridad: 200 K (min)
  • Longitud de onda en el punto de sensibilidad máxima: 540 nm
  • Tensión máxima de trabajo: 100 VDC
  • Diámetro: 5 mm

¿Qué es una LDR?

Una LDR (Light Dependent Resistor) es una resistencia cuyo valor ohmico varía dependiendo de la cantidad de luz que recibe. Como sensor, un sensor LDR es un sensor analógico que proporciona un voltaje continuo proporcional al nivel de luz recibido.

¿Cómo conectar una LDR a Crumble?

Para conectar una LDR a Crumble solo es necesario conectar una de sus patas a la alimentación positiva y la otra al puerto en el que queramos leer el sensor (el puerto C en este caso).

¿Cómo programar la lectura de un sensor analógico en Crumble?

Crumble nos permite leer cualquier sensor analógico utilizando el bloque de lectura analógica. Con él obtendremos valores de 0 a 255 dependiendo del voltaje recibido en el puerto.

En este programa hemos definido que el valor de la lectura se muestre en la variable "ldr". De esta forma podremos ver ese valor en tiempo real en el apartado Variables del software Crumble.

Recuerda activar el interruptor del portapilas cuando quieras leer un sensor analógico. Si solo obtienes valores de entre 0 y 30 aproximadamente lo más probable es que hayas olvidado activar el portapilas.

Si queremos que la lectura del sensor defina el estado de un actuador (por ejemplo, un Sparkle) podemos introducir la lectura del sensor analógico en un bloque condicional. En este ejemplo modificamos el color de un Sparkle dependiendo de si leemos un valor inferior o superior a 128 en el puerto C.

También puedes utilizar la lectura directa de un sensor analógico en un parámetro de un bloque. En este caso utilizaremos la lectura de la LDR para definir la intensidad del color blanco de un Sparkle.

Descargas

 

 

Esquema y diagrama de montaje en Compluino UNO y Arduino UNO

 

La conexión de este sensor de luz se basa en un circuito con un divisor de tensión. Este circuito incluye dos resistencias: una variable (la LDR) y otra de valor fijo (4K7). El voltaje a medir es el que se encuentra en el punto medio entre ambas resistencias (salida). Este voltaje aumentará al bajar la resistencia de la LDR (más luz) y disminuirá cuando crezca ésta (menos luz). Es decir, que el voltaje de salida sigue las variaciones de la luz en el mismo sentido que esta.

Si quieremos que el circuito se comporte de forma inversa, que el voltaje suba al bajar el nivel de la luz, solo tenemos que intercambiar la LDR por la resistencia R1 en nuestro montaje.

El montaje con una placa Compluino UNO resulta especialmente sencillo al disponer esta placa de pines de alimentación (+5V y GND) asociados a todas las entradas y salidas de la placa.

La placa Arduino original dispone de un número muy limitado de pines de +5V y GND por lo que en la mayoría de los montajes será necesario usar las lineas de distribución de alimentación de la propia protoboard, especialmente si queremos añadir otros elementos al montaje. Esta diferencia la podemos ver entre este montaje y el siguiente, que incluye un led.

Programa de ejemplo: cómo leer un sensor de luz y mostrarlo en el monitor serie con Arduino / Compluino UNO

En este programa leemos la cantidad de luz medida con la LDR. Para poder mostrarla en el monitor serie la almacenaremos en una variable, que aparecerá en el monitor junto con el texto "La lectura es: ".

// Lectura de una LDR

#define LDR A0

int lectura_ldr = 0;

void setup()

{

 Serial.begin(9600);

}

 

void loop()

{

 lectura_ldr = analogRead(LDR); //Guardar el valor leido en el pin A0 en una variable

 Serial.print ("La lectura es: "); //Mostrarlo en la pantalla

 Serial.println(lectura_ldr);

 delay(100);

}

 

A continuación puedes ver la información que se mostraría en el monitor del IDE de Arduino

Programa de ejemplo: programar una farola con sensor de luz

En este programa utilizaremos la lectura de una LDR para saber cuánta luz hay en una habitación. Cuando la cantidad de luz sea inferior a la deseada se encenderá un led.

Estos son el esquema eléctrico, el montaje con una placa Compluino UNO y el montaje sobre una placa Arduino.

Este es el programa necesario para este montaje.

// Encender un led con una ldr

#define LDR A0

#define LED 9

#define MEDIA 500 //Calcular el valor medio entre la máxima luz recibida y la menor por la ldr

int lectura_ldr = 0;

void setup()

{

 pinMode(LED, OUTPUT);

 Serial.begin(9600);

}

void loop()

{

 lectura_ldr = analogRead(LDR); //Guardar el valor leido en el pin A0 en una variable

 Serial.println(lectura_ldr);

 if (lectura_ldr <= MEDIA)

 {

   digitalWrite(LED, HIGH);

 }

 else

 {

   digitalWrite(LED, LOW);

 }

}

 

Cómo controlar el brillo de un led con una LDR

Utilizando el montaje anterior podemos programar que el brillo del led dependa del valor leído en el puerto analógico al que hemos conectado la LDR. Esto es posible porque el led está conectado a un pin de control PWM.

Para conseguirlo no solo es necesario almacenar el valor de la LDR en una variable, también debemos convertirlo de un rango de 0 a 1023 a uno de 0 a 255, el que utiliza el control PWM.

// Controlar el brillo de un led con una ldr

#define LDR A0

#define LED 9

int lectura_ldr = 0;

int brillo = 0;

void setup()

{

 pinMode(LED, OUTPUT);

}

void loop()

{

 lectura_ldr = analogRead(LDR); //Guardar el valor leido en el pin A0 en una variable

 brillo = map(lectura_ldr, 0, 1023, 0, 255); //Convertir el valor a un rango de 0 a 255

 analogWrite(LED, brillo);

}

 

Cómo montar y programar tu primer Theremín

Un theremín es un instrumento musical electrónico cuyo sonido acercando o alejando la mano de sus antenas pero sin llegar a tocarlas. En este experimento simularemos un instrumento similar utilizando una LDR y un zumbador. Un pulsador adicional activará o desactivará el sonido.

Indudablemente el sonido no será el mismo pero puede ser un buen primer paso para conocer este curioso instrumento.

Estos son el esquema eléctrico, el montaje con una placa Compluino UNO y el montaje sobre una placa Arduino.

Este sencillo programa será necesario para que todo funcione.

// Theremin

#define LDR A0

#define PULSADOR 2

#define ZUMBADOR 8

int lectura_ldr = 0, frecuencia = 0;

void setup()

{

 pinMode(ZUMBADOR, OUTPUT);

 pinMode(PULSADOR, INPUT_PULLUP);

}

void loop()

{

 lectura_ldr = analogRead(LDR); //Guardar el valor leido en el pin A0 en una variable

 frecuencia = map(lectura_ldr, 0, 1023, 523, 987); //Convertir el valor leido al rango de la quinta octava

 if (digitalRead(PULSADOR) == LOW) //Si pulso activa el theremin

 {

   tone(ZUMBADOR, frecuencia);

 }

 else

 {

   noTone(ZUMBADOR);

 }

}

 

Productos relacionados