Bucles y eventos de tiempo: un termómetro
Programación del 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.
El evento al iniciar comienza encendiendo un punto de la matriz de LED a modo de piloto de funcionamiento. El brillo de la pantalla 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 restar 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.
Ahora cada 30000 ms, o cada 30 segundos, el programa mostrará la temperatura aunque no hayamos pulsado el botón A. Dentro del bucle de tiempo no se sube 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.
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.
Mejorando la lectura del sensor de temperatura
Para corregir el error de 3 grados Celsius en la lectura del sensor, bastará con restar 3 al valor de temperatura (ºC). El menú Matemática contiene bloques para realizar operaciones aritméticas. Si se usa el bloque de resta - dentro de los bloques mostrar cadena resulta sencillo realizar la corección necesaria. El código del termómetro completo quedará:
Los dos bloques mostrar LED han sido sustituidos por dos bloques graficar x y para conseguir que el código sea algo más compacto.