# Bloques condicionales: luz crepuscular

##### Brillo adaptativo

La matriz de LED de micro:bit es también un sensor que puede captar tanto la luz visible como la invisible. En este último caso se encuentra la luz infrarroja emitida por los mandos a distancia.

Los valores de la variable **<span style="color: rgb(224, 45, 184);">nivel de luz</span>** del menú <span style="color: rgb(224, 45, 184);">**Entrada**</span> se encuentran comprendidos entre 0 y 1023. Como en el caso del sensor de sonido, estos valores **no tienen correspondencia con ninguna unidad física**, como el lux.

<p class="callout warning">Para poder obtener buenas medidas de luz, la matriz de LED debe estar descubierta. Las fundas para micro:bit, especialmente las de color oscuro, pueden alterar las medidas del sensor de luz. </p>

De acuerdo con Martínez de Carvajal (2019), el sensor de luz arrojará aproximadamente las siguientes medidas:

- 0 en condiciones de oscuridad absoluta.
- 100 en una habitación con luz artificial.
- 400 en un día muy nublado.
- 1023 a pleno sol.

Podemos retomar el proyecto del sonómetro y acompañarlo de una pantalla con brillo adaptativo, como la de los teléfonos móviles. La pantalla debe iluminarse con más brillo cuanto mayor sea la luz ambiental.

El evento <span style="color: rgb(224, 45, 184);">**al presionarse el botón A** </span>medirá el nivel de sonido y lo mostrará gráficamente con la ya conocida barra.

![Sonómetro de pulsador.png](https://libros.catedu.es/uploads/images/gallery/2023-07/scaled-1680-/sonometro-de-pulsador.png)

Usaremos un evento de tiempo <span style="color: rgb(45, 194, 107);">**cada ms**</span> para medir la luz ambiental cada segundo y así poder ajustar el brillo de pantalla al nivel de luz medido. De esta forma, a mayor luz ambiental, mayor brillo de pantalla. Como el brillo máximo es de 255 y el nivel de luz máximo medible es de 1023, dividiremos la lectura del nivel de luz entre 4 usando un bloque aritmético **<span style="color: rgb(185, 106, 217);">/</span>** del menú **<span style="color: rgb(185, 106, 217);">Matemática</span>**.

##### [![Brillo adaptativo.png](https://libros.catedu.es/uploads/images/gallery/2023-07/scaled-1680-/brillo-adaptativo.png)](https://libros.catedu.es/uploads/images/gallery/2023-07/brillo-adaptativo.png)Luz crepuscular

Vamos a dar solución a un reto propuesto por Muñoz (2022) programando un automatismo que encienda la pantalla de **<span style="color: rgb(224, 62, 45);">LED</span>** cuando la luz ambiental caiga por debajo de un cierto valor, por ejemplo 100.

Todos los algoritmos programados hasta este momento se ejecutan linealmente desde el primer bloque colocado en la parte superior hasta el último situado abajo. Sin embargo, para solucionar el reto de la luz crepuscular necesitaremos que el flujo del programa siga caminos distintos según se cumpla o no una determinada condición.

Empezaremos evaluando la luz ambiental cada segundo mediante un evento de tiempo <span style="color: rgb(45, 194, 107);">**cada ms**</span>. Esto significa que el automatismo tendrá un tiempo de reacción de un segundo.

Dentro del evento de tiempo, usaremos la estructura <span style="color: rgb(92, 198, 183);">**si entonces si no**,</span> disponible en el menú **<span style="color: rgb(92, 198, 183);">Lógica </span>**, para encender con el máximo brillo la luz de la matriz de <span style="color: rgb(224, 62, 45);">**LED**</span> si la luz ambiental es inferior a 100 o para apagar la matriz en caso contrario. Tras el apagado de la pantalla dejaremos un pequeño punto en el centro iluminado a baja intensidad como piloto de funcionamiento.

[![Luz crepuscular.png](https://libros.catedu.es/uploads/images/gallery/2023-07/scaled-1680-/luz-crepuscular.png)](https://libros.catedu.es/uploads/images/gallery/2023-07/luz-crepuscular.png)

El bloque comparador **<span style="color: rgb(92, 198, 183);">&lt;</span>** (menor que) usado dentro de la estructura <span style="color: rgb(92, 198, 183);">**si entonces**</span> también se encuentra dentro del menú **<span style="color: rgb(92, 198, 183);">Lógica</span>**.

##### Semáforo del ruido en el aula  


Make Code permite construir sentencias condicionales más complejas. El código del semáforo del ruido emplea un bloque <span style="color: rgb(92, 198, 183);">**si entonces si no, si entonces si no**</span>. Para construir este bloque se ha utilizado la estructura <span style="color: rgb(92, 198, 183);">**si entonces si no**</span> del ejemplo anterior y se ha añadido una condición suplementaria pulsando sobre el pequeño círculo con el símbolo +. De igual manera, pulsando sobre los círculos con los signos - podremos eliminar condiciones.

![Caras de sonido.png](https://libros.catedu.es/uploads/images/gallery/2023-07/scaled-1680-/caras-de-sonido.png)

Así pues, si el nivel de sonido es inferior a 64, la pantalla mostará un icono sonriente. En caso contrario, si el nivel de sonido es alto pero todavía inferior a 128, se mostrará una cara triste. FInalmente, si el sonido es igual a superior a 128, se mostrará una cara enfadada.