Tutorial micro:bit #7: ¿cómo utilizar el sensor de luz?

¿Sabías que tu micro:bit puede saber la intensidad de luz que incide sobre el? y la forma en que lo mide es fascinante y se basa en un fenómeno muy curioso.

Si has seguido los tutoriales anteriores ya sabrás sobre los LEDs, y que si les aplicas corriente en la dirección correcta estos producen luz. También mencionamos que son en sí, dispositivos semiconductores llamados diodos. Pues sucede que el efecto de producir luz a través de aplicar una corriente es reversible, es decir, que ese mismo material, al exponerse a una fuente de luz, produce una corriente; pequeña, pero lo suficientemente grande como para poder medirla.

Y esto se puede comprobar, si tomas un LED y lo acercas a una lámpara y lo mides con un multímetro en su escala de voltaje podrás observar cómo produce alrededor de 0.7V a 1V, colocando un arreglo más grande, producirá un mayor voltaje.

Y no sólo eso, hay diodos que, aunque no producen luz al aplicarles corriente, puede producir una corriente mucho más pequeña cuando los expones a la luz, justo como lo hacen los LEDs. Esto se debe a que el material semiconductor se encuentra expuesto a la luz debido al empaquetado de cristal con que los fabrican. De manera similar, las celdas solares con las que recargan las calculadoaras, en robots solares, o aquellas que producen electricidad a gran escala, se basan en materiales semiconductores que convierten directamente la luz solar en electricidad.

La matriz de LEDs que incluye tu micro:bit aprovecha esta propiedad para medir la luz que lo rodea, incluso existen bloques de código para aprovecharlas. Para este ejercicio vamos a desplegar una gráfica que aumenta a medida que incide más luz en la tarjeta y para aumentar la dificultad, te retamos a que hagas un generador de tonos sensible a la luz.

En tu micro:bit podrás apreciar mucho mejor el efecto

Desarrollo del programa

Para hacer el programa necesitamos primero crear una variable con un nombre que nos ayude a almacenar los datos leidos, esto también nos ayudará a interpretar mejor el programa. Para ello iremos a la sección de «Variables» y seleccionamos «Make a variable»

A continuación, nos aparecerá una ventana en la que asginaremos un nombre a la variable, cualquier nombre servirá pero nostros decidimos llamarla «luminosidad». Da clic en aceptar y se habrá creado una nueva variable.

Ahora necesitamos arrastrar el bloque que dice «establecer «luminosidad» para» dentro del bloque para siempre. Esto nos permitirá asignarle el valor que mida el sensor de luz a nuestra variable «Luminosidad» y que se actualice periodicamente. Y luego en la sección de entradas buscamos el bloque «nivel de luz» y lo arrastramos dentro de «establecer luminosidad» esto le indicará al micro:bit que lea los sensores de luz y el valor lo asigne a la variable. El código va mas o menos así.

Ahora buscamos en la sección «LED» el bloque que dice «plot bar graph of» y lo arrastramos dentro del bloque «para siempre» abajo del bloque «establecer Luminosidad». Ahora necesitas agregar el bloque «Luminosidad» de la sección de «Variables» dentro de «plot bar graph» en la primer sección que dice «0» y en la segunda sección escribe 255. Lo que hará con estos cambios es leer el valor guardado en Luminosidad y asignarlo a la gráfica. El máximo valor que puede tener (es decir todos los LEDs encendidos) es de 255. Con esto el código estará terminado. Si todo salió bien en tu simulador podrás ver el funcionamiento de la tarjeta ajustando el circulo que representa el nivel de luz.

Ahora sólo queda descargar el código y subirlo a tu micro:bit. Si revisamos la sección de Javascript podremos ver la misma estructura que hicimos con los bloques. Aquí lo interesante es como manejamos lo que llamamos anteriormente como variables. Las variables en un programa son como espacios en tu memoria, tu por ejemplo puedes pensar en tu edad y sabes que son 12 años. Así, en un programa es útil definir variables para que sea más fácil de hacer y de entender, y su valor puede cambiar dependiendo de nuestras necesidades, así como cambia tu edad al pasar el tiempo.

El bloque «establecer Luminosidad para» se puede entender como la línea que dice Luminosidad=input.lightLevel(). Esto significa que nosotros le decimos al programa que la luminosidad tiene el valor que mide el sensor de luz. Y luego, en la función led.plotBarGraph() que es igual al mismo bloque, nosotros le decimos que «lea» o averigue cuánto vale «Luminosidad» y con ése valor, determine los LEDs que hay que encender. El 255 es, como antes, el valor máximo que puede tomar Luminosidad y que se puede mostrar en la matriz.

La línea resaltada que dice let Luminosidad=0 es para definir el valor inicial de Luminosidad, hacer esto evita errores en nuestro código y es una buena práctica de programador

Si aceptaste el reto pero estás teniendo problemas te recordamos que uses un buzzer como el del tutorial #5 y veas la sección de «Música» para generar el sonido. Esperamos que te diviertas!

Sensor de luz: https://makecode.microbit.org/_CU2bhqY0vYgk

Referencias:

https://www.youtube.com/watch?v=TKhCr-dQMBY&t=1s https://www.youtube.com/watch?v=RRW4pBCzXBA

Comentarios