Skip to main content

MONTAJE5 LDR

Primero de todo

¿Qué es un LDR?

Vamos a la Wikipedia:

Fotorresistor 

Una fotorresistencia es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente. Puede también ser llamado fotorresistor, fotoconductor, célula fotoeléctrica o resistor dependiente de la luz, cuyas siglas, LDR, se originan de su nombre en inglés light-dependent resistor. Su cuerpo está formado por una célula fotorreceptora y dos patillas. 

More at Wikipedia (ES)

Lo verás en el Echidna arriba un poco a la derecha, y está conectado a la entrada analógica del Arduino A5 y según https://echidna.es/ los valores van desde 20 en ausencia de luz, hasta 1.000 con mucha luz.

Comprobar los límites

No os creáis al pie de la letra los límites oficiales del LDR! Los componentes electrónicos no son ideales, cada uno es particular, probar esos límites en vuestro Echidna

2024-12-03 19_55_23-EchidnaML.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

, para ello

¿Qué vamos a hacer?

Jugar un poco con vuestras condiciones de luz, y definir unos valores de oscuridad, poca luz, media luz y mucha luz, en mi caso mis valores son 

    Oscuridad menor 200 Poca luz entre 200 y 500 Media luz entre 500 y 800 Mucha luz mayor 800

    Con estos valores vamos a realizar un programa que

      Oscuridad: Ningún led encendido Poca luz Luz roja Media luz Luz naranja Mucha luz Luz verde
      Solución con EchidnaScratch

      2024-12-05 09_43_50-Presentación1 - PowerPoint.png

      Lo puedes encontrar en en este repositorio: https://github.com/JavierQuintana/Echidna

      Reto: Haz un sprite tipo semáforo que también se enciendan las luces igual que el Echidna real, tal y como hicimos en MONTAJE1 SEMAFORO

      Solución con mBlock

      Con mBlock al no tener instrucciones específicas para Echidna, para leer en directo los valores del LDR, hay que utilizar nuestro mBlock y que nuestro simpático oso panda nos diga esos valores, con este sencillo programa:

      programa

      en el decice dispositivo Arduino:echidna-medirluz1.png

      DONDE LUZ ES UNA VARIABLE GLOBAL QUE LO LEEN TODOS LOS OBJETOS luego ahora el panda con este programa puede decirnos cuánta luz hay

      echidna-medirluz3.pngechidna-medirluz2.png

      El valor que leemos con máxima luz (utilizando una linterna) y el valor de máxima oscuridad (a tapar con el dedo, no te compliques) no llegan a los límites que se marcan oficiales en Echidna EN TU CASO PUEDEN SER OTROS !! pero parecidos.

      El programa lo tienes aquí https://planet.mblock.cc/project/3228782

      MONTAJE 5 Semáforo luminoso

      RETO Vamos a reutilizar esfuerzos: reutilizar el semáforo visto pero vamos a hacer que se iluminen los colores según la luz:

      Semáforo Luz
      Todo apagado Mucha oscuridad
      Rojo Oscuridad
      Amarillo Luz normal
      Verde Mucha luz
      Solución


      Según nuestros límites medidos en el anterior programa fijamos nuestras propias fronteras para cumplir el enunciado (puedes poner otros valores parecidos):

      Semáforo Luz Límite inferior Límite superior
      Todo apagado Mucha oscuridad --- 199
      Rojo Oscuridad 200 499
      Amarillo Luz normal 500 799
      Verde Mucha luz 800 ---

      echidna-medirluz6.png

      El programa lo tienes aquí https://planet.mblock.cc/project/3228793

      Reto: Añade un objeto que sea un semáforo, y que su disfraz cambie acorde a la luz y encima lo diga

      echidna-medirluz4.png

      El resultado lo puedes ver en este vídeo:

      3.2.3 MONTAJE 6 Piano luminoso

      Nuestro RETO es el siguiente:

      Realizar un programa que suene una nota diferente según la luz

      Solución

      En el Arduino el programa es

      ECHIDNA-PIANOLUZ1.png

      En el objeto, el panda es

      ECHIDNA-PIANOLUZ2.png

      Nota: se ha incorporado una música con un tono, el C Elec Piano

      El programa lo tienes aquí

      https://planet.mblock.cc/project/projectshare/3228812

      Con mBlock versión 3 obsoleto

      En esta versión no es tan sencillo ¿por qué? Porque hay cambios de escala: el LDR nuestro trabaja con valores distintos al de las notas, por lo tanto hay que hacer UN CAMBIO DE ESCALA, y esto necesita un apartado diferente, te recomendamos ver 3.2.3.1 Cambios de escala

      Solución


      El programa es pues el siguiente



      ¿por qué lo hacemos con la opción de subir a Arduino? Porque la simulación va lenta (se oye tut-tut-tut) si lo subes al Arduino reproduce el tono correctamente. VER COMO SUBIR AL ARDUINO.

      El resultado lo puedes ver en este vídeo:

      3.2.3.1 Cambios de escala

      Nos encontramos que:

      • Los valores de entrada, es decir, el LDR trabaja con unos límites, que según hemos visto en el apartado comprobar los límites, el nuestro va de 108 a 982, llamaremos a esta variable de entrada X
      • Los valores de salida son los tonos,que mBlock trabaja con la norma americana (la europea es el típico Do-Re-Mi-Fa-Sol) y los americanos, son valores numéricos que van desde 48 hasta 72 (lo puedes comprobar con la instrucción “tocar nota” que está en Programas-Sonido). Llamaremos a la variable salida de notas Y:

      Problema: ¿cómo convertimos X en Y?

      Matemáticamente es una recta con una pendiente m y una ordenada n :

      Y = m*X + n

      Para calcular m y n tenemos que utilizar un sistema de ecuaciones dadas las condiciones límites de X e Y:

      • Cuando X = 108 quiero que Y valga 48: 48=m*108 + n
      • Cuando X = 982 quiero que Y valga 72: 72=m*982 + n

      Ala! dos ecuaciones y dos incógnitas: calcula m y n

      Buen ejercicio para los alumnos para que vean matemáticas aplicadas

      No obstante, como esto lo repetiremos muchas veces los cambios de escala, hemos confeccionado ESTA HOJA DE CÁLCULO que te lo puedes descargar y facilita las cosas: Ponemos en las celdas amarillas los valores límites :

      • X1= 108 X2=982
      • Y1=48 Y2=72

      Y nos da los valores m y n automáticamente:

      Luego la fórmula para el cálculo de la Y (las notas) en función de la luminosidad X es:

      Y = 0.027 * X + 45