Arduino - Motor paso a paso y interruptor de fin de carrera
En este tutorial de Arduino, vamos a aprender a usar Arduino, interruptor de límite, controlador L298N y un motor paso a paso. En detalle, aprenderemos:
- Cómo detener el motor paso a paso cuando se activa un interruptor de límite
- Cómo cambiar la dirección del motor paso a paso cuando se activa un interruptor de límite
- Cómo cambiar la dirección del motor paso a paso cuando se activan dos interruptores de límite
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del motor paso a paso y del interruptor de fin de carrera
Si no conoces el motor paso a paso y el interruptor de fin de carrera (disposición de pines, cómo funciona, cómo programarlo...), aprende sobre ellos en los siguientes tutoriales:
- Arduino - Limit Switch tutorial
- Arduino - Controls Stepper Motor tutorial
Diagrama de Cableado
Este tutorial proporciona los códigos de Arduino para dos casos: un motor paso a paso y un interruptor de fin de carrera, un motor paso a paso y dos interruptores de fin de carrera.
- Diagrama de cableado entre el motor paso a paso y un final de carrera

This image is created using Fritzing. Click to enlarge image
- Diagrama de cableado entre el motor paso a paso y dos finales de carrera

This image is created using Fritzing. Click to enlarge image
※ Nota:
Dependiendo del motor paso a paso, la conexión de cableado entre el motor paso a paso y el L298N puede ser diferente. Por favor, consulte detenidamente este tutorial Arduino - Motor Paso a Paso para ver cómo conectar el motor paso a paso al controlador de motor L298N.
Código de Arduino - Detener el motor paso a paso mediante un interruptor de límite
Hay varias formas de hacer que un motor paso a paso se detenga:
- Llamar a la función stepper.stop(): De esta manera NO detiene el motor paso a paso de inmediato, sino gradualmente
- No llamar a la función stepper.run(): De esta manera detiene el motor paso a paso de inmediato
El código de abajo hace que un motor paso a paso gire indefinidamente y se detenga de inmediato cuando se acciona un interruptor de fin de carrera.
Pasos R\u00e1pidos
- Conecta Arduino al PC mediante un cable USB
- Abre Arduino IDE, selecciona la placa y el puerto correctos
- Navega hasta el icono Bibliotecas en la barra izquierda del Arduino IDE
- Busca “ezButton”, luego encuentra la biblioteca de botones de ArduinoGetStarted.com
- Haz clic en el botón Instalar para instalar la biblioteca ezButton.

- Buscar “AccelStepper”, luego encuentra la biblioteca AccelStepper de Mike McCauley
- Haz clic en el botón Instalar para instalar la biblioteca AccelStepper.

- Copie el código anterior y ábralo con el IDE de Arduino.
- Haga clic en el botón Subir en el IDE de Arduino para subir el código al Arduino.
- Si el cableado es correcto, verá que el motor gira en sentido horario.
- Toque el interruptor de fin de carrera.
- Verá que el motor se detiene de inmediato.
- El resultado en el Monitor Serial se ve a continuación.
Explicación del código
Puedes encontrar la explicación en las líneas de comentarios del código Arduino anterior.
Código de Arduino - Cambiar la dirección del motor paso a paso mediante un interruptor de límite
El código a continuación hace que un motor paso a paso gire indefinidamente y cambie su dirección cuando se activa un interruptor de fin de carrera.
Pasos R\u00e1pidos
- Copia el código anterior y ábrelo con el IDE de Arduino
- Haz clic en Subir botón en el IDE de Arduino para cargar el código en Arduino
- Si el cableado es correcto, verás que el motor gira en sentido horario
- Toca el interruptor de límite
- Verás que la dirección del motor paso a paso cambia al sentido antihorario
- Vuelve a tocar el interruptor de límite
- Verás que la dirección del motor paso a paso cambia al sentido horario
- El resultado en el Monitor Serial se ve a continuación
Código de Arduino - Cambiar la dirección del motor paso a paso mediante dos interruptores de límite
El código de abajo hace que un motor paso a paso gire indefinidamente y cambie su dirección cuando se active uno de los dos interruptores de límite.
Pasos R\u00e1pidos
- Copia el código anterior y ábrelo con Arduino IDE
- Haz clic en el botón Subir en Arduino IDE para cargar el código en Arduino
- Si el cableado es correcto, verás que el motor gira en sentido horario.
- Toca el interruptor de límite 1
- Verás que la dirección del motor paso a paso cambia a antihorario
- Toca el interruptor de límite 2
- Verás que la dirección del motor paso a paso cambia a sentido horario
- El resultado en el Monitor Serial se ve a continuación
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.