Tutorial ESP32 16/55 - Mini Bomba de Água usando ESP32 e L293D | Kit de Aprendizado em IoT ESP32 da SunFounder

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

FabricanteTexas Instruments
Número da peçaL293D
Tensão lógica/IO4,5 - 36 V
Tensão de alimentação4,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 PWM1 kHz - 10 kHz
Limiares de lógica de entrada2 V (alto), 0,8 V (baixo)
Queda de tensão / RDS(on)/ saturação1,5 V (máx)
Limites térmicos+150 °C (máx)
PacoteDIP-16
Notas / variantesInclui 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

ESP32-16-motor-pump_wiring

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

Imagens

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
ESP32-16-motor-pump_wiring
5V DC water pump
5V DC water pump
815-ESP32 Tutorial 16/55 - Arduino code to control DC water pump
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Folha de dados (pdf)