Skip to main content

Bucles y eventos de tiempo: un termómetro

El siguiente programa proporcionará el valor numérico de la temperatura ambiente en grados Celsius cada vez que se pulse el botón A. La variable temperatura (ºC) se encuentra disponible en el menú Entrada.

Termómetro de pulsador.png

El evento al iniciar comienza encendiendo un punto de la matriz de LED a modo de piloto de funcionamiento. El brillo se ajusta a un valor bajo para conseguir un bajo consumo de energía. Cada vez que ocurre un evento del tipo al presionarse el botón A se sube el brillo de la pantalla, se muestra la temperatura mediante una cadena de texto deslizante y se vueve a encender el piloto de funcionamiento con un brillo bajo.

La temperatura mostrada será algo superior a la ambiental. Esto ocurre porque el sensor de temperatura se encuentra en el microprocesador y éste se calienta ligeramente cuando la placa está en funcionamiento. Martínez de Carvajal (2019) establece el error medio en 3ºC, por lo que habrá que restarse 3 al valor mostrado en pantalla para obtener la temperatura real. La manipulación de la placa con los dedos también contribuir al calentamiento y al error en la medida de la temperatura.

Podemos añadir un evento de tiempo para que el termómetro muestre la temperatura cada cierto tiempo. Para ello debemos usar el evento cada...ms, dentro del menú Bucles.

Termómetro de evento.png

Ahora, cada 30000 ms o 30 segundos el programa mostrará la tenperatura aunque no hayamos pulsado el botón A. No se ha subido el brillo, así que los dígitos se mostrarán con bajo brillo.

Es posible mejorar un poco más el programa haciendo que cada 30 segundos micro:bit muestre tres veces la temperatura. Podríamos repetir sin más la sentencia mostrar cadena temperatura (ºC) tres veces dentro del bucle de tiempo, pero en su lugar vamos a usar un bucle del tipo repetir...veces , que también se encuentra en el menú Bucles.

Evento de tiempo y bucle.png

Nótese que el programa ejecuta un bucle cada 30 segundos, y que dentro de ese bucle se ejecuta otro bucle tres veces. Al hecho de introducir un bucle dentro de otro se le llama anidar bucles.