ESP32 - Actuador
Este tutorial te enseña cómo usar el ESP32 para controlar un actuador lineal. En detalle, aprenderemos:
- Cómo funciona un actuador lineal
- Cómo hacer que un actuador lineal se extienda o se retraiga.
- Cómo controlar un actuador lineal usando un controlador L298N.
- Cómo controlar la velocidad de un actuador lineal.
Este tutorial es para un actuador lineal sin retroalimentación. Si quieres aprender sobre un actuador lineal con retroalimentación, consulta este ESP32 - Actuador con Retroalimentación tutorial.
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 actuador lineal

Diagrama de pines del actuador lineal
El actuador lineal tiene dos cables:
- Conductor positivo: normalmente rojo
- Conductor negativo: normalmente negro

Cómo funciona
Al comprar un actuador lineal, debes saber con qué voltaje funciona. Tomemos como ejemplo un actuador lineal de 12 V.
Al alimentar el actuador lineal de 12V con una fuente de alimentación de 12V:
- 12 V y GND al cable positivo y al cable negativo, respectivamente: el actuador lineal se extiende a máxima velocidad hasta que alcanza el límite.
- 12 V y GND al cable negativo y al cable positivo, respectivamente: el actuador lineal se retrae a máxima velocidad hasta que alcanza el límite.
Mientras se está extendiendo o retrayendo, si dejamos de alimentar al actuador (GND a ambos cables, positivo y negativo), el actuador deja de extenderse o retraerse.
※ Nota:
Para motores de corriente continua, servomotores y motores paso a paso sin engranajes, cuando llevan una carga, si dejamos de suministrar energía, no pueden mantener la posición. A diferencia de estos motores, el actuador puede mantener la posición incluso cuando se detiene el suministro de energía mientras soporta una carga.
Si suministramos energía a actuadores lineales por debajo de 12 V, el actuador lineal todavía se extiende/retrae, pero no a la velocidad máxima. Eso significa que si cambiamos el voltaje de la fuente de alimentación, podemos cambiar la velocidad del actuador lineal. Sin embargo, este método no se utiliza en la práctica debido a la dificultad para controlar el voltaje de la fuente de alimentación. En su lugar, fijamos el voltaje de la fuente de alimentación y controlamos la velocidad del actuador lineal mediante una señal PWM. Cuanto mayor es el ciclo de trabajo del PWM, mayor es la velocidad a la que el actuador lineal se extiende o se retrae.

Cómo controlar un actuador lineal con ESP32
El control de un actuador lineal incluye:
- Extiende el actuador lineal a la velocidad máxima.
- Retrae el actuador lineal a la velocidad máxima.
- (opcional) controla la velocidad de extensión/retracción.
ESP32 puede generar la señal para controlar el actuador lineal. Sin embargo, esta señal tiene baja tensión y corriente; no podemos usarla para controlar el actuador lineal. Necesitamos usar un controlador de hardware entre el ESP32 y el actuador lineal. El controlador realiza dos funciones:
- Amplificar la señal de control del ESP32 (corriente y voltaje)
- Recibir la otra señal de control del ESP32 para intercambiar el polo de la fuente de alimentación, para control de dirección
※ Nota:
- Este tutorial se puede aplicar a todos los actuadores lineales. El actuador lineal de 12 V es solo un ejemplo.
- Cuando uses un actuador lineal de 5 V, aunque la salida del pin del ESP32 sea de 5 V (la misma tensión que el actuador), aún necesitas un driver entre el ESP32 y el actuador lineal, porque el pin del ESP32 no proporciona la corriente suficiente para el actuador.
Existen muchos tipos de chips; los módulos (p. ej., L293D, L298N) se pueden utilizar como controladores de actuadores lineales. En este tutorial, utilizaremos el controlador L298N.
※ Nota:
También puedes usar relés como controlador. Sin embargo, se requieren 4 relés para controlar un único actuador lineal (tanto para extender como para retraer).
Acerca del controlador L298N
El controlador L298N se puede utilizar para controlar un actuador lineal, un motor de corriente continua y un motor paso a paso. En este tutorial, aprendemos cómo usarlo para controlar el actuador lineal.
Esquema de pines del controlador L298N

El controlador L298N tiene dos canales, llamados canal A y canal B. Por lo tanto, el controlador L298N puede controlar dos actuadores lineales de forma independiente al mismo tiempo. Supongamos que el actuador lineal A está conectado al canal A, el actuador lineal B está conectado al canal B. El controlador L298N tiene 13 pines:
Los pines comunes para ambos canales:
- Pin VCC: suministra energía al actuador lineal. Puede estar entre 5 y 35 V.
- Pin GND: es un pin de tierra común; debe conectarse a GND (0 V).
- Pin de 5 V: suministra energía al módulo L298N. Puede ser alimentado por 5 V desde el ESP32.
Pines del Canal A:
- Los pines ENA se utilizan para controlar la velocidad del actuador lineal A. Al quitar el puente y conectar este pin a la entrada PWM, podremos controlar la velocidad de extensión/retracción del actuador lineal A.
- Los pines IN1 e IN2 se utilizan para controlar la dirección de movimiento de un actuador lineal. Cuando uno de ellos está en HIGH y el otro en LOW, el actuador lineal se extenderá o retraerá. Si ambas entradas están en HIGH o LOW, el actuador lineal se detendrá.
- Los pines OUT1 y OUT2 están conectados a un actuador lineal A.
Pines del Canal B:
- Pines ENB: se utilizan para controlar la velocidad del actuador lineal B. Al quitar el jumper y conectar este pin a la entrada PWM, podremos controlar la velocidad de extensión/retracción del actuador lineal B.
- Pines IN3 e IN4: se utilizan para controlar la dirección de movimiento de un actuador lineal. Cuando uno de ellos está en ALTO y el otro en BAJO, el actuador lineal se extenderá o retraerá. Si ambas entradas están en ALTO o en BAJO, el actuador lineal se detendrá.
- Pines OUT3 y OUT4: están conectados a un actuador lineal.
Como se describió anteriormente, el controlador L298N tiene dos fuentes de alimentación de entrada:
- Uno para actuador lineal (pines VCC y GND): de 5 a 35 V.
- Uno para el funcionamiento interno del módulo L298N (pines 5V y GND): de 5 a 7 V.
El controlador L298N también tiene tres jumpers para usos avanzados u otros propósitos. Con el fin de simplificar, por favor retire todos los jumpers del controlador L298N.
Podemos controlar dos actuadores lineales de forma independiente al mismo tiempo utilizando un ESP32 y un controlador L298N. Para controlar cada actuador lineal, solo necesitamos tres pines del ESP32.
※ Nota:
El resto de este tutorial controla un actuador lineal utilizando el canal A. Controlar el otro actuador lineal es similar.
Cómo controlar un actuador lineal
Aprenderemos a controlar un actuador lineal utilizando el controlador L298N.
Diagrama de cableado
Por favor, retire los tres jumpers del módulo L298N antes de realizar el cableado.

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.
Cómo hacer que un actuador lineal se extienda y se retraiga
La dirección de movimiento de un actuador lineal puede controlarse aplicando un nivel lógico alto o bajo a los pines IN1 e IN2. La tabla a continuación ilustra cómo controlar la dirección en ambos canales.
| IN1 pin | IN2 pin | Direction |
|---|---|---|
| LOW | LOW | Linear Actuator A stops |
| HIGH | HIGH | Linear Actuator A stops |
| HIGH | LOW | Linear Actuator A extends |
| LOW | HIGH | Linear Actuator A retracts |
- Extiende el actuador lineal A
- Retracta el actuador lineal A
※ Nota:
La dirección de movimiento se invierte si los pines OUT1 y OUT2 se conectan a dos terminales del actuador lineal de forma inversa. Si es así, solo basta con intercambiar los pines OUT1 y OUT2 o cambiar la señal de control en los pines IN1 e IN2 en el código.
Cómo evitar que el actuador lineal se extienda o se retraiga
El actuador lineal se detiene automáticamente al extenderse o retraerse cuando alcanza el límite. También podemos detenerlo programáticamente para que no se extienda ni se retraiga mientras no haya alcanzado el límite.
Hay dos maneras de detener un actuador lineal.
- Controla la velocidad a 0
- Controla los pines IN1 e IN2 al mismo valor (BAJO o ALTO)
- o
Cómo controlar la velocidad del actuador lineal mediante el controlador L298N
Es sencillo controlar la velocidad del actuador lineal. En lugar de controlar el pin ENA a nivel alto, generamos una señal PWM al pin ENA. Podemos hacer esto de la siguiente manera:
- Conecta un pin del ESP32 al pin ENA del L298N
- Genera una señal PWM en el pin ENA utilizando la función analogWrite(). El controlador L298N amplifica la señal PWM al actuador lineal
La velocidad es un valor entre 0 y 255. Si la velocidad es 0, el actuador lineal se detiene. Si la velocidad es 255, el actuador lineal se extiende o se retrae a la velocidad máxima.
Código de ejemplo para ESP32
Lo que hace el código a continuación:
- Extender el actuador a la velocidad máxima
- Detener el actuador lineal
- Retractar el actuador a la velocidad máxima
- Detener el actuador lineal
Pasos R\u00e1pidos
- Quita los tres jumpers del módulo L298N.
- Copia el código anterior y pégalo en el IDE de Arduino
- Compila y sube el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino
- Verás:
- El actuador lineal se extiende y luego se detiene al alcanzar el límite
- El actuador lineal mantiene la posición durante un tiempo
- El actuador lineal se retrae y luego se detiene al alcanzar el límite
- El actuador lineal mantiene la posición durante un tiempo
- El proceso anterior se ejecuta repetidamente.
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.