ESP32 - Atuador
Este tutorial ensina como usar o ESP32 para controlar um atuador linear. Em detalhes, vamos aprender:
- Como o atuador linear funciona
- Como fazer o atuador linear estender ou retrair.
- Como controlar um atuador linear usando o driver L298N.
- Como controlar a velocidade de um atuador linear.
Este tutorial é para atuador linear sem feedback. Se você quiser aprender sobre atuador linear com feedback, veja este tutorial ESP32 - Atuador com Feedback.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Atuador Linear

Pinagem do Atuador Linear
O atuador linear possui dois fios:
- Fio positivo: geralmente vermelho
- Fio negativo: geralmente preto

Como Funciona
Quando você compra um atuador linear, precisa saber com qual tensão o atuador linear funciona. Vamos usar um atuador linear de 12V como exemplo.
Quando você alimenta o atuador linear de 12V com uma fonte de 12V:
- 12V e GND no fio positivo e no fio negativo, respectivamente: o atuador linear estende em velocidade máxima até atingir o limite.
- 12V e GND no fio negativo e no fio positivo, respectivamente: o atuador linear retrai em velocidade máxima até atingir o limite.
Durante a extensão ou retração, se cortarmos a alimentação do atuador (GND nos fios positivo e negativo), o atuador para de estender/retrair
※ Nota:
Para motor DC, servo motor e motor de passo sem redução, ao carregar uma carga, se cortarmos a alimentação, eles não conseguem manter a posição. Ao contrário desses motores, o atuador consegue manter a posição mesmo quando a alimentação é cortada enquanto ele carrega uma carga.
Se fornecermos aos atuadores lineares uma tensão abaixo de 12V, o atuador linear ainda estende/retrai, mas não na velocidade máxima. Isso significa que, se mudarmos a tensão da fonte de alimentação, podemos mudar a velocidade do atuador linear. No entanto, esse método não é usado na prática devido à dificuldade de controlar a tensão da fonte de alimentação. Em vez disso, fixamos a tensão da fonte de alimentação e controlamos a velocidade do atuador linear por meio de um sinal PWM. Quanto maior o ciclo de trabalho do PWM, maior a velocidade com que o atuador linear estende/retrai.

Como controlar um atuador linear usando o ESP32
Controlar um atuador linear inclui:
- Estender o atuador linear em velocidade máxima.
- Retrair o atuador linear em velocidade máxima.
- (opcional) controlar a velocidade de extensão/retração
O ESP32 pode gerar o sinal para controlar o atuador linear. Porém, esse sinal tem baixa tensão e corrente, e não podemos usá-lo para controlar o atuador linear. Precisamos usar um driver de hardware entre o ESP32 e o atuador linear. O driver faz duas tarefas:
- Amplificar o sinal de controle do ESP32 (corrente e tensão)
- Receber o outro sinal de controle do ESP32 para inverter a polaridade da fonte de alimentação → para o controle de direção.
※ Nota:
- Este tutorial pode ser aplicado a todos os atuadores lineares. O atuador linear de 12V é apenas um exemplo.
- Quando você controla um atuador linear de 5V, você ainda precisa de um driver entre o ESP32 e o atuador linear, porque o pino do ESP32 fornece apenas 3.3V e não fornece corrente suficiente para o atuador linear.
Existem muitos tipos de chips e módulos (ex.: L293D, L298N) que podem ser usados como drivers de atuador linear. Neste tutorial, usaremos o driver L298N.
※ Nota:
Você também pode usar relés como driver. Porém, são necessários 4 relés para controlar um único atuador linear (tanto para estender quanto para retrair)
Sobre o Driver L298N
O driver L298N pode ser usado para controlar atuador linear, motor DC e motor de passo. Neste tutorial, aprendemos como usá-lo para controlar o atuador linear.
Pinagem do Driver L298N

O driver L298N possui dois canais, chamados canal A e canal B. Portanto, o driver L298N pode controlar dois atuadores lineares de forma independente ao mesmo tempo. Vamos supor que o atuador linear A esteja conectado ao canal A e o atuador linear B esteja conectado ao canal B. O driver L298N possui 13 pinos:
Os pinos comuns aos dois canais:
- Pino VCC: fornece alimentação para o atuador linear. Pode ser qualquer valor entre 5 e 35V.
- Pino GND: é um pino de terra comum, precisa ser conectado ao GND (0V).
- Pino 5V: fornece alimentação para o módulo L298N. Pode ser alimentado pelo 5V do ESP32.
Pinos do canal A:
- Pinos ENA: são usados para controlar a velocidade do atuador linear A. Remover o jumper e conectar este pino a uma entrada PWM nos permite controlar a velocidade de extensão/retração do atuador linear A.
- Pinos IN1 e IN2: são usados para controlar a direção de movimento de um atuador linear. Quando um deles está em HIGH e o outro em LOW, o atuador linear estende ou retrai. Se ambas as entradas estiverem em HIGH ou ambas em LOW, o atuador linear para.
- Pinos OUT1 e OUT2: são conectados ao atuador linear A.
Pinos do canal B:
- Pinos ENB: são usados para controlar a velocidade do atuador linear B. Remover o jumper e conectar este pino a uma entrada PWM nos permite controlar a velocidade de extensão/retração do atuador linear B.
- Pinos IN3 e IN4: são usados para controlar a direção de movimento de um atuador linear. Quando um deles está em HIGH e o outro em LOW, o atuador linear estende ou retrai. Se ambas as entradas estiverem em HIGH ou ambas em LOW, o atuador linear para.
- Pinos OUT3 e OUT4: são conectados a um atuador linear.
Conforme descrito acima, o driver L298N possui duas entradas de alimentação:
- Uma para o atuador linear (pinos VCC e GND): de 5 a 35V.
- Uma para o funcionamento interno do módulo L298N (pinos 5V e GND): de 5 a 7V.
O driver L298N também possui três jumpers para usos avançados ou outros propósitos. Para simplificar, remova todos os jumpers do driver L298N.
Podemos controlar dois atuadores lineares de forma independente ao mesmo tempo usando um ESP32 e um driver L298N. Para controlar cada atuador linear, precisamos de apenas três pinos do ESP32.
※ Nota:
O restante deste tutorial controla um atuador linear usando o canal A. O controle do outro atuador linear é semelhante.
Como Controlar o Atuador Linear
Vamos aprender a controlar o atuador linear usando o driver L298N
Diagrama de Ligação
Remova os três jumpers do módulo L298N antes de fazer a ligação.

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Como Fazer o Atuador Linear Estender/Retrair
A direção de movimento de um atuador linear pode ser controlada aplicando um nível lógico HIGH/LOW aos pinos IN1 e IN2. A tabela abaixo mostra como controlar a direção nos dois canais.
| Pino IN1 | Pino IN2 | Direção |
|---|---|---|
| LOW | LOW | Atuador Linear A para |
| HIGH | HIGH | Atuador Linear A para |
| HIGH | LOW | Atuador Linear A estende |
| LOW | HIGH | Atuador Linear A retrai |
- Estender o Atuador Linear A
- Retrair o Atuador Linear A
※ Nota:
A direção de movimento fica invertida se os pinos OUT1 e OUT2 estiverem conectados aos dois pinos do atuador linear de forma invertida. Nesse caso, basta trocar os pinos OUT1 e OUT2 ou alterar o sinal de controle nos pinos IN1 e IN2 no código.
Como Parar o Atuador Linear de Estender ou Retrair
O atuador linear para automaticamente de estender/retrair quando atinge o limite. Também podemos pará-lo por programação enquanto ele ainda não atingiu o limite.
Existem duas formas de parar o atuador linear
- Controlar a velocidade para 0
- Controlar os pinos IN1 e IN2 para o mesmo valor (LOW ou HIGH)
Ou:
Como Controlar a Velocidade do Atuador Linear por meio do Driver L298N
É simples controlar a velocidade do atuador linear. Em vez de colocar o pino ENA em HIGH, geramos um sinal PWM no pino ENA. Podemos fazer isso assim:
- Conecte um pino do ESP32 ao ENA do L298N
- Gere um sinal PWM no pino ENA usando a função analogWrite(). O driver L298N amplifica o sinal PWM para o atuador linear
A velocidade é um valor entre 0 e 255. Se a velocidade for 0, o atuador linear para. Se a velocidade for 255, o atuador linear estende/retrai em velocidade máxima.
Código de Exemplo ESP32
O código abaixo faz o seguinte:
- Estende o atuador em velocidade máxima
- Para o atuador linear
- Retrai o atuador em velocidade máxima
- Para o atuador linear
Passos Rápidos
- Remova os três jumpers do módulo L298N.
- Copie o código acima e cole-o na Arduino IDE
- Compile e faça o upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE
- Você verá:
- O atuador linear estende e depois para ao atingir o limite
- O atuador linear mantém a posição por um certo tempo
- O atuador linear retrai e depois para ao atingir o limite
- O atuador linear mantém a posição por um certo tempo
- O processo acima se repete continuamente.