Los motores paso, también conocidos como «Steppers» son muy usados para realizar proyectos, en los que se necesita un control preciso del motor. Existe muchos tipos, pero todos se caracterizas por estar formados por un número de bobinas, las cuales al recibir voltaje, hacen que el motor giren un determinado número de grados,
Con Micro:bit es muy sencillo controlar un motor paso a paso.
Antes de empezar y conectar nada a nuestro Micro:bit debemos tener en cuenta que los motores paso a paso son dispositivos que tienen un consumo elevado para ser manejados directamente con salidas de la placa Micro:bit. Todos los motores que conectemos a nuestra placa deben ser usados a través de alguna placa «adaptadora», que normalmente se conoce como «Driver».
En este artículo vamos a usar un motor muy sencillo, y ampliamente usado en el mundo «maker» para realizar pequeños proyectos. De hecho es el motor usado por el famoso robot Escornabot, que sino sabes que es, te animo a conocerlo.



Este modelo de motor, es el 28BYJ-48. Se puede adquirir el motor solo, o con un placa adaptadora que nos servirá para usarlo desde Micro:bit o placas simulares, como Esp32, STM32 etc.
Conectando
El motor que usaremos funciona con 5 voltios. Para ello usaremos una fuente de alimentación de 5 voltios, o sino dispones de ella como es nuestro caso usaremos un porta pilas de 4 pilas de tipo AA.
Conéctalo a los pines de la placa adaptadora, dónde «5–12V», fíjate que el negativo, es el pin más izquierda (observa la foto más arriba).
Y no te olvides de unir el negativo del porta pilas, a pin GND de la placa Micro Bit.
Ahora tenemos que unir nuestro micro bit. Para ello usaremos una placa adaptadora o de expansión que nos permita acceder cómodamente y evitando corto circuitos.
Para controlar el motor necesitamos 4 salidas. Para ello usaremos las salidas 0,1,2,3. Así que desde los pines correspondiente coloca 4 cables a la placa adaptadora del motor. De manera que la salida 0 esté unido con el pin «IN1» de la placa adaptadora. La salida 1, irá conectada al pin «IN2», así sucesivamente tal como indica la siguiente tabla:
Salida Micro:bit | Adaptador Motor |
0 | IN1 |
1 | IN2 |
2 | IN3 |
3 | IN4 |
Debemos ir cambiando el estado o valor de cada una de las salidas de una manera determinada para que nuestro motor se mueva. La siguiente tabla indica como debe ser ese orden o secuencia
Paso | Salida 0 | Salida 1 | Salida 2 | Salida 3 |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
Al ejecutar esta secuencia conseguiremos que se mueva el motor. Pero no una vuelta entera, sino mucho menos, según indica su documentación.
De una manera sencilla, eso es debido a que el paso de este motor de 45 grados, eso significa que necesitas 8 pasos para moverse una vuelta entera. Pero hay que tener que tiene una reductora. Lo que hace que se mueva mucho menos. Echando cuentas, el motor se moverá por cada pasa 0.7 grados, lo que hace un total de 512 pasos para dar una vuelta entera.
Programación
Teniendo todo conectado, y sabiendo que debemos que activar las salidas de un orden determinado, vamos a realizar nuestro programa.
Antes de nada, debemos tener en cuenta que usaremos cuatro salidas. Por defecto, la placa Micro:bit solo tiene 3 salidas (0,1,2), el resto de las salidas están usadas en otras funciones.

Nosotros usaremos la salida 3, que según la documentación de Micro:bit, está siendo usado por el LED de la columna 1. Esto no es ningún problema, ya que podemos indicar no queremos usar la pantalla LED, y así todas las salidas que esté siendo usadas por los LED, estarán disponibles para nuestro uso. Atención al hacer esto ya no se podrá usar de la pantalla LED.
Crea un programa nuevo y llámalo Motor, por ejemplo.

Ahora, lo primero que tenemos que hacer, es introducir el bloque que permite apagar la pantalla LED. Esto lo haremos en el bloque Al iniciar. El bloque lo entrarás en el aparado LED, y después pulsando más.

El bloque Al iniciar debería ser como el de la imagen siguiente.

Ahora vamos a crear 4 funciones, le llamaremos a cada una de ellas Paso1, Paso2, Paso3, Paso4. Dentro de cada una de ellas vamos programar las salidas de cada uno de los pasos de la tabla que está más arriba.

También crearemos una variable llamada Espera, la cual la usaremos para esperar un tiempo entre cada paso. La cual inicializaremos su valor a 1, en el bloque Al iniciar.

Empezamos por el primer paso. Según la tabla de pasos, que está más atrás, debemos activar la primera salida y el resto deben permanecer desactivadas.
Introduce cuatro bloque2 Escritura digital pin0 en el bloque de la función Paso1. Cambia Pin0, a Pin1, en el segundo bloque; tercero cambia Pin4, y el cuarto a Pin3. Y al final introduce el bloque Pausa (ms), y en lugar de 500 que es su valor por defecto, pon la variable Espera. La función Paso 1 debería ser algo como la imagen siguiente.

Ahora haz las otras funciones, de manera que cada una de ellas refleje el estado de las salidas según el paso de la tabla anterior. Te dejo un captura de como deberían ser.

Ahora solo queda llamar a las funciones desde el bloque Para siempre.
Aquí os dejo un enlace con el código fuente y un vídeo demostrativo.
Saludos