Tutorial ESP32 16/55 - Mini Bomba de Água usando ESP32 e L293D | Kit de Aprendizado em IoT ESP32 da SunFounder
Neste tutorial, aprenderemos a controlar uma bomba de água de 5V usando o microcontrolador ESP32 e o driver de motor L293D. Este projeto é uma ótima introdução ao uso de drivers de motor com microcontroladores, permitindo que você controle dispositivos que exigem mais corrente do que um microcontrolador pode fornecer diretamente. Ao final deste tutorial, você terá uma bomba de água funcionando que pode ser ativada e desativada programaticamente.

O ESP32 é um microcontrolador poderoso que vem com capacidades integradas de Wi-Fi e Bluetooth, tornando-o adequado para aplicações de IoT. O driver de motor L293D é utilizado para controlar a bomba d'água, gerenciando a corrente mais alta necessária para operar o motor. Essa configuração nos permite ligar e desligar a bomba, garantindo que o ESP32 permaneça seguro contra consumo excessivo de corrente.
Hardware Explicado
Neste projeto, utilizamos o microcontrolador ESP32, que é conhecido por sua versatilidade e opções de conectividade. Ele pode funcionar como um Arduino enquanto oferece recursos adicionais, como Wi-Fi e Bluetooth. O driver de motor L293D atua como uma interface entre o ESP32 e a bomba d'água, permitindo o controle da operação da bomba sem sobrecarregar o microcontrolador.
O L293D possui dois H-bridges, permitindo controlar a direção e a velocidade do motor. Cada H-bridge pode acionar um motor em qualquer direção, tornando-o adequado para aplicações onde é necessário o controle do motor. Neste caso, só precisaremos habilitar a bomba para funcionar em uma direção.
Detalhes da Ficha Técnica
| Fabricante | Texas Instruments |
|---|---|
| Número da peça | L293D |
| Tensão lógica/IO | 4,5 - 36 V |
| Tensão de alimentação | 4,5 - 36 V |
| Corrente de saída (por canal) | 600 mA |
| Corrente de pico (por canal) | 1.2 A |
| Orientação sobre a frequência PWM | 1 kHz - 10 kHz |
| Limiares de lógica de entrada | 2 V (alto), 0,8 V (baixo) |
| Queda de tensão / RDS(on)/ saturação | 1,5 V (máx) |
| Limites térmicos | +150 °C (máx) |
| Pacote | DIP-16 |
| Notas / variantes | Inclui diodos embutidos para proteção de cargas indutivas. |
- Garanta a dissipação adequada de calor para operação contínua.
- Utilize capacitores de desacoplamento para uma fonte de alimentação estável.
- Tenha cuidado com a tensão de entrada para evitar danos.
- Implemente PWM para controle de velocidade, se necessário.
- Verifique a fiação para evitar curtos, especialmente com cargas indutivas.
Instruções de Fiação

Para ligar o ESP32 e o driver de motor L293D à bomba d'água, siga estas etapas cuidadosamente. Primeiro, conecte a fonte de alimentação ao L293D. Conecte o pino 1 (pino de habilitação para o motor A) e o pino 8 (Vcc2) à fonte de tensão positiva (5V). Conecte o pino 4 (terra) ao terra do seu circuito.
Em seguida, conecte o ESP32 ao L293D. Conecte o pino GPIO 13 do ESP32 ao pino 2 (entrada 1) do L293D e o pino GPIO 14 ao pino 7 (entrada 2). Por fim, conecte a bomba de água ao pino 3 (saída 1) e ao pino 6 (saída 2) do L293D. Certifique-se de que todas as conexões de terra estejam ligadas para uma operação adequada. Se você seguir estas instruções, sua fiação deve ser simples e funcional.
Exemplos de Código e Passo a Passo
No texto, definimos as conexões dos pinos para o controle do motor. Os identificadoresmotor1Aemotor2Acorrespondem aos pinos GPIO 13 e 14 no ESP32, respectivamente. Esses pinos controlarão a bomba de água através do driver L293D.
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
In thesetup()função, inicializamos os pinos de controle do motor como saídas. Isso garante que podemos enviar sinais para o driver L293D para controlar a bomba. Oloop()a função então controla a operação da bomba.
void loop() {
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(5);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(2000); // wait for a second
}
No textoloop()função, definimosmotor1Apara ALTO emotor2Amuito BAIXO para iniciar a bomba. Após uma breve pausa, paramos a bomba definindo ambos os pinos como BAIXO. Esse ciclo se repete indefinidamente, permitindo que a bomba funcione por um breve período e depois pare.
Demonstração / O que esperar
Depois de concluir a fiação e carregar o código, você deve ver a bomba de água ativar e desativar em um ciclo. A bomba funcionará por um curto período, depois parará, criando um padrão de liga-desliga. Certifique-se de que sua fonte de alimentação é adequada para as necessidades da bomba para evitar problemas (no vídeo às 09:30).
Tempo do Vídeo
- 00:00 Início
- 1:50 Introdução do Projeto
- 3:17 Por que precisamos do L293D com Arduino?
- 5:47 Fiação para bomba de água explicada
- 10:01 Código Arduino explicado
- 12:21 Selecionando a porta COM para ESp32 no Arduino IDE
- 14:03 Demonstração de funcionamento da bomba
- 15:25 Demonstração com água
#define motor1A 13
#define motor2A 14
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin as an output.
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
// Rotate
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(5);
// Stop
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(2000); // wait for a second
}
Common Course Links
Common Course Files
Recursos e referências
-
DocumentaçãoTutorial ESP32 16/55 - Documentação do motor SunFounderdocs.sunfounder.com
Arquivos📁
Folha de dados (pdf)
-
L293d_Quadruple_half_bridge_ficha_técnica
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB