Temporizador con micro:bit: cuenta atrás, botones y sonido
Programa un temporizador de 10 segundos con MakeCode. La cuenta comienza al pulsar A, puede detenerse con B y avisa al terminar mediante un icono y un sonido.
¿Qué es un temporizador con micro:bit? Es un programa que reduce un valor a intervalos regulares hasta llegar a cero. En este ejercicio se controla con los botones de la placa y genera una alerta visual y sonora al finalizar.
Crea un temporizador programable con micro:bit
La actividad se construye en tres fases. Puedes realizarla completamente en el simulador de MakeCode y después transferir el programa a una placa micro:bit.
Resultado final
- El botón A inicia o reinicia la cuenta desde 10.
- El botón B detiene el temporizador.
- La pantalla LED muestra los segundos restantes.
- Al llegar a cero, la placa se detiene y emite un aviso.
Contar hacia atrás
Creamos una variable numérica y reducimos su valor cada segundo.
Controlar con botones
Usamos A para comenzar y B para detener la ejecución.
Avisar al terminar
Detenemos la cuenta en cero y añadimos una señal visual y sonora.
¿Qué vamos a aprender con esta actividad de micro:bit?
Vamos a dar nuestros primeros pasos en programación utilizando la facilidad que proporcionan los bloques de MakeCode. No se trata únicamente de copiar el programa: antes de colocar cada bloque vamos a comprender qué función cumple y por qué lo necesitamos.
El ejercicio se construirá poco a poco. Primero crearemos una cuenta atrás. Después haremos que solo comience cuando pulsemos un botón. Finalmente conseguiremos que se detenga y nos avise de forma visual y sonora cuando llegue a cero.
Para siempre
Comprenderemos para qué sirve el bloque forever y por qué ejecuta continuamente las instrucciones que contiene.
Variables
Guardaremos en una variable el número que debe ir disminuyendo durante la cuenta atrás.
Entradas y salidas
Usaremos los botones como entradas y la pantalla LED y el sonido como salidas.
Booleanos
Aprenderemos a controlar el programa mediante los valores verdadero y falso.
¿Qué significan «al iniciar» y «para siempre»?
Cuando abrimos un proyecto nuevo de MakeCode aparecen dos bloques principales: «al iniciar» —on start— y «para siempre» —forever—.
AL INICIAR: contiene las instrucciones que se ejecutan una vez cuando comienza el programa, antes de los demás eventos. Es un buen lugar para asignar el valor inicial de una variable.
PARA SIEMPRE: contiene las instrucciones que deben repetirse mientras el programa esté activo. Al terminar la última instrucción, vuelve a comenzar desde la primera.
También podemos utilizar «para siempre» para mantener una tarea activa mientras otros eventos —por ejemplo, la pulsación de un botón— se ejecutan cuando corresponde. De este modo, el programa puede comprobar continuamente un estado y reaccionar a las entradas.
«Al iniciar» se ejecuta una vez; «para siempre» se repite continuamente.
Repasamos: ¿qué es una entrada y qué es una salida?
¿Qué es un dato lógico o booleano?
En programación, un dato booleano solo puede tener dos valores posibles: verdadero —true— o falso —false—.
Esta misma idea también puede representarse como sí/no, encendido/apagado o 1/0. Lo importante es que solo existen dos estados.
En nuestro programa utilizaremos una variable llamada temporizador. Cuando tenga el valor verdadero, la cuenta atrás podrá ejecutarse. Cuando tenga el valor falso, la cuenta se detendrá.
La condición
El bloque «si… entonces» ejecutará las instrucciones de la cuenta únicamente cuando la comparación temporizador = verdadero se cumpla.
Crea la cuenta atrás
Vamos a comenzar un proyecto nuevo en Microsoft MakeCode. En esta primera parte construiremos una cuenta atrás sencilla. Todavía no utilizaremos los botones ni detendremos el programa al llegar a cero.
1. Crea la variable que guardará el número
- Entra en el apartado Variables y pulsa «Crear una variable» —Make a variable—.
- Escribe el nombre contar y confirma con Aceptar o con la tecla Intro.
- Desde Variables, arrastra el bloque «establecer contar a 0» dentro de «al iniciar».
- Cambia el valor 0 por 10. Con esta instrucción le indicamos que, cuando comience el programa, la cuenta debe partir de diez.
Una variable es como una caja con nombre en la que podemos guardar información. La variable contar contendrá en cada momento el número que debe aparecer en la pantalla.
2. Haz que el número disminuya
- Dentro del bloque «para siempre», añade desde Variables el bloque «cambiar contar en 1» —change contar by 1—.
- Sustituye el valor 1 por −1. Si sumáramos 1, la variable aumentaría; al sumar −1, disminuye una unidad.
- Desde Básico, añade debajo el bloque «mostrar número» —show number—.
- Desde Variables, arrastra el bloque redondo contar al espacio del bloque «mostrar número».
Ahora MakeCode reducirá el valor de la variable y mostrará el nuevo número en la matriz LED. Podemos utilizar números, iconos o dibujos, pero para comprender la cuenta atrás resulta más claro mostrar la variable.
3. Añade una pausa para poder leer la cuenta
- Pulsa el botón de reproducción del simulador. Verás que los números cambian demasiado rápido.
- Entra en Básico y añade el bloque «pausa (ms)» debajo de «mostrar número».
- Selecciona 1.000 ms. Mil milisegundos equivalen a un segundo.
¿Qué problema tiene todavía? La cuenta atrás ya funciona, pero no sabe cuándo debe detenerse. Después de llegar a cero continuará mostrando números negativos. Lo solucionaremos en la tercera parte.
Primera versión: variable, resta, número y pausa.
Haz que la cuenta comience al pulsar el botón A
Hasta ahora la cuenta empieza automáticamente. En esta segunda parte vamos a utilizar una entrada para decidir cuándo debe comenzar. También crearemos una variable booleana que funcionará como un interruptor.
El botón A será nuestra entrada
Le diremos a la placa que, cuando alguien pulse A, cambie el estado del temporizador a verdadero. A partir de ese momento la condición situada en «para siempre» permitirá ejecutar la cuenta atrás.
1. Crea el evento del botón A
- Entra en Entrada —Input— y arrastra al espacio de trabajo el bloque «al presionar el botón A» —on button A pressed—.
- Dentro de Variables, crea una variable nueva llamada temporizador.
- Arrastra el bloque «establecer temporizador a 0» dentro del evento del botón A.
- Desde Lógica, toma el valor verdadero —true— y sustituye con él el número 0.
Acabamos de crear una orden: cuando se pulse A, temporizador será verdadero. Todavía necesitamos indicar qué debe ocurrir mientras ese valor sea verdadero.
2. Crea la condición dentro de «para siempre»
- Entra en Lógica y arrastra el bloque «si verdadero entonces» —if true then— dentro de «para siempre».
- Desde Lógica, selecciona una comparación y colócala en el espacio donde aparece «verdadero».
- En el lado izquierdo de la comparación, sustituye el 0 por la variable temporizador.
- En el lado derecho, sustituye el otro 0 por el valor lógico verdadero.
La condición ahora se lee así: si temporizador es igual a verdadero, entonces…. Pero todavía falta colocar dentro las instrucciones que deseamos ejecutar.
3. Introduce la cuenta atrás dentro de la condición
- Localiza los bloques de la primera parte: cambiar contar en −1, mostrar contar y pausa de 1.000 ms.
- Arrastra esos tres bloques dentro de la condición «si temporizador = verdadero», respetando el mismo orden.
- Prueba el simulador sin pulsar A. La cuenta no debe comenzar.
- Pulsa el botón A del simulador. La variable temporizador se vuelve verdadera y comienza la cuenta atrás.
¿Por qué antes empezaba sola? Porque los bloques de la cuenta estaban directamente dentro de «para siempre». Al introducirlos en una condición, solo se ejecutan cuando el estado del temporizador es verdadero.
La cuenta atrás queda protegida por la condición «temporizador = verdadero».
Detén el temporizador y añade un aviso final
Ya hemos creado una cuenta atrás y hemos conseguido que solo comience cuando pulsamos A. Ahora vamos a poder detenerla con B y haremos que se pare automáticamente cuando llegue a cero.
1. Utiliza el botón B para detener la cuenta
- Duplica el evento «al presionar el botón A» o añade otro evento desde Entrada.
- En el nuevo evento, cambia el botón A por el botón B.
- Dentro del evento B, conserva el bloque «establecer temporizador a…».
- Sustituye el valor verdadero por falso —false—.
Al pulsar B, la variable temporizador pasa a falso. Como la condición de «para siempre» exige que sea verdadera, las instrucciones de la cuenta dejan de ejecutarse.
2. Haz que se detenga automáticamente al llegar a cero
Aunque ahora podemos parar la cuenta con B, todavía continuará por debajo de cero si no pulsamos el botón. Vamos a crear una segunda condición.
- Desde Lógica, añade otro bloque «si verdadero entonces» debajo de la condición de la cuenta atrás, pero todavía dentro de «para siempre».
- Coloca una comparación en el espacio de la condición.
- En el lado izquierdo, sustituye el 0 por la variable contar.
- Cambia el símbolo de la comparación por menor o igual que —≤—.
- Mantén el valor 0 en el lado derecho. La condición debe leerse: si contar ≤ 0.
- Duplica únicamente el bloque «establecer temporizador a falso» que se encuentra dentro del evento B y colócalo dentro de esta nueva condición.
Importante: no introduzcas dentro del condicional el bloque completo «al presionar el botón B». Los bloques de evento no pueden anidarse. Debes duplicar solo la instrucción establecer temporizador = falso.
Cuando la variable contar llegue a cero o tenga un valor inferior, el programa cambiará temporizador a falso. De este modo, la cuenta dejará de ejecutarse.
3. Añade una señal sonora y visual
No queremos tener que mirar continuamente la pantalla para saber que el tiempo ha terminado. Añadiremos un sonido y un icono dentro de la condición si contar ≤ 0.
- Desde Bucles —Loops— añade «repetir 4 veces».
- Dentro del bucle, entra en Música y añade «reproducir tono… durante…». En una micro:bit V2 también puedes utilizar un bloque de sonido.
- Entre los tonos puedes añadir desde Básico una pausa con la duración que prefieras.
- Después del aviso sonoro, añade desde Básico el bloque «mostrar icono» y elige una imagen que indique que el temporizador ha terminado.
Resultado final: la cuenta solo comienza al pulsar A, puede detenerse con B y, cuando llega a cero, se para, reproduce el aviso y muestra un icono.
Solución completa con control mediante botones, condición de parada y aviso final.
Repaso de toda la lógica
- Al iniciar: la variable contar comienza con el valor 10.
- Botón A: convierte temporizador en verdadero y permite que la cuenta se ejecute.
- Para siempre: comprueba continuamente si el temporizador está activo.
- Botón B: convierte temporizador en falso y detiene la cuenta.
- Si contar ≤ 0: detiene automáticamente el programa y ejecuta el aviso final.
Ahora puedes personalizar la duración, los tonos, las pausas y el icono. Lo más importante es comprender que las entradas cambian el estado de una variable y que las condiciones deciden qué instrucciones pueden ejecutarse.
Ejercicio del temporizador con micro:bit en vídeo
Sigue todo el proceso de construcción y compara cada bloque con la explicación escrita.
Después del proyecto: MakeCode permite alternar entre bloques, JavaScript y Python. Puedes observar cómo se traduce la misma lógica a código escrito.
Elige la micro:bit adecuada para aprender y enseñar
Empieza con una placa individual, equipa un aula o amplía el proyecto con construcción y robótica.
Kit micro:bit GO
La opción directa para programar este temporizador y continuar con más ejercicios básicos.
Ver kit micro:bit
Pack de 10 micro:bit
Permite trabajar por equipos y repetir la actividad de forma simultánea en el aula.
Equipar el aula
Kit Ring:bit
Aplica variables, botones y temporización al control de movimiento de un robot.
Ver Ring:bitDudas sobre el temporizador de micro:bit
¿Puedo hacer el ejercicio sin una placa micro:bit?
Sí. MakeCode incluye un simulador que permite pulsar los botones, ver la cuenta atrás y comprobar gran parte del programa.
¿Por qué la cuenta continúa por debajo de cero?
Porque en la primera parte todavía no existe una condición de parada. En la tercera parte añadimos «si contar ≤ 0» y establecemos temporizador en falso.
¿Cómo cambio la duración del temporizador?
Sustituye el valor 10 asignado a la variable contar por el número de segundos que necesites.
¿Qué diferencia hay entre una variable numérica y una booleana?
La variable contar contiene el número de la cuenta atrás. La variable temporizador representa un estado lógico y puede ser verdadera o falsa.
¿Puedo usar este ejercicio en clase?
Sí. Permite trabajar variables, secuencias, entradas, salidas, comparaciones y depuración de errores con un resultado visible.
Programa tu primer temporizador en una micro:bit real
Empieza en el simulador, transfiere el proyecto a la placa y personaliza la duración, los botones y la alerta final.
