MONTAJE5 LDR
Primero de todo
¿Qué es un LDR?
Vamos a la Wikipedia:
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.
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
, 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
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:
en el decice dispositivo Arduino:
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
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 | --- |
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
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
En el objeto, el panda es
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