ESP32 - Motor paso a paso y interruptor de fin de carrera
En este tutorial de ESP32, exploraremos cómo usar el ESP32, un interruptor de límite, el controlador L298N y un motor paso a paso. Específicamente, cubriremos:
- Detener el motor paso a paso cuando se active un interruptor de fin de carrera.
- Cambiar la dirección del motor paso a paso cuando se active un interruptor de fin de carrera.
- Cambiar la dirección del motor paso a paso cuando se activen dos interruptores de fin de carrera.
Estos temas te permitirán crear aplicaciones de movimiento controladas y versátiles con tu ESP32.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 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 límite
Si no conoces el motor paso a paso y el interruptor de fin de carrera (asignación de pines, cómo funciona, cómo programarlo...), aprende sobre ellos en los siguientes tutoriales:
- ESP32 - Limit Switch tutorial
- ESP32 - Controls Stepper Motor tutorial
Diagrama de Cableado
Este tutorial proporciona los códigos ESP32 para dos casos: un motor paso a paso + un interruptor de fin de carrera, un motor paso a paso + dos interruptores de fin de carrera.
- Diagrama de cableado entre el motor paso a paso y un fin de carrera

This image is created using Fritzing. Click to enlarge image
Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.
- Esquema de cableado entre el motor paso a paso y dos interruptores de límite.

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, eche un vistazo detenidamente a este tutorial ESP32 - Stepper Motor para ver cómo conectar el motor paso a paso al controlador de motor L298N.
Código ESP32 - Detener el motor paso a paso mediante un interruptor de fin de carrera
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 llames a la función stepper.run(): De esta manera detiene el motor paso a paso de inmediato
El código a continuación hace que un motor paso a paso gire indefinidamente y se detenga inmediatamente cuando se toca un interruptor de límite.
Pasos R\u00e1pidos
- Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
- Realiza el cableado tal como se muestra en la imagen anterior.
- Conecta la placa ESP32 a tu PC mediante un cable USB micro.
- Abre el IDE de Arduino en tu PC.
- Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
- Conecta la ESP32 al PC mediante un cable USB.
- Abre el IDE de Arduino, selecciona la placa y el puerto correctos.
- Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca “ezButton”, luego encuentra la librería de botones de ArduinoGetStarted.com
- Haz clic en el botón Instalar para instalar la librería ezButton.

- Busque “AccelStepper”, luego localice la biblioteca AccelStepper de Mike McCauley
- Haga clic en el botón Instalar para instalar la biblioteca AccelStepper.

- Copia el código anterior y ábrelo con Arduino IDE
- Haz clic en el botón Cargar en Arduino IDE para subir el código al ESP32
- Si el cableado es correcto, verás que el motor gira en sentido horario
- Toca el interruptor de fin de carrera
- Verás que el motor se detiene de inmediato
- El monitor serial se ve a continuación
Explicación del código
Puede encontrar la explicación en la línea de comentarios del código Arduino anterior.
Código ESP32 - Cambiar la dirección del motor paso a paso mediante un interruptor de final de carrera
El código de abajo hace que un motor paso a paso gire indefinidamente y cambie su dirección cuando se toque un interruptor de límite.
Pasos R\u00e1pidos
- Copia el código anterior y ábrelo con el IDE de Arduino
- Haz clic en el botón Subir en el IDE de Arduino para cargar el código al ESP32
- Si el cableado es correcto, verás que el motor gira en sentido horario.
- Toca el interruptor de fin de carrera
- Verás que la dirección del motor paso a paso cambia a antihorario.
- Vuelve a tocar el interruptor de fin de carrera
- Verás que la dirección del motor paso a paso vuelve al sentido horario.
- El resultado en el Monitor Serial se muestra a continuación.
Código ESP32 - Cambiar la dirección del motor paso a paso mediante dos finales de carrera
El código a continuación 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 el IDE de Arduino
- Haz clic en el botón Subir en el IDE de Arduino para subir el código al ESP32
- 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 horario.
- El resultado en el Monitor Serial se muestra 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.