Tutorial ESP32 16/55 - Mini bomba de agua utilizando ESP32 y L293D | Kit de aprendizaje IoT ESP32 de SunFounder

Tutorial ESP32 16/55 - Mini bomba de agua utilizando ESP32 y L293D | Kit de aprendizaje IoT ESP32 de SunFounder

En este tutorial, aprenderemos a controlar una bomba de agua de 5V utilizando el microcontrolador ESP32 y el controlador de motor L293D. Este proyecto es una excelente introducción al uso de controladores de motor con microcontroladores, lo que te permitirá controlar dispositivos que requieren más corriente de la que un microcontrolador puede proporcionar directamente. Al final de este tutorial, tendrás una bomba de agua funcional que puede ser activada y desactivada programáticamente.

El ESP32 es un microcontrolador potente que viene con capacidades de Wi-Fi y Bluetooth integradas, lo que lo hace adecuado para aplicaciones de IoT. El controlador de motor L293D se utiliza para controlar la bomba de agua gestionando la mayor corriente requerida para operar el motor. Esta configuración nos permite iniciar y detener la bomba mientras aseguramos que el ESP32 se mantenga a salvo de un consumo excesivo de corriente.

Hardware Explicado

En este proyecto, utilizamos el microcontrolador ESP32, que es conocido por su versatilidad y opciones de conectividad. Puede funcionar como un Arduino mientras ofrece características adicionales como Wi-Fi y Bluetooth. El controlador de motor L293D actúa como una interfaz entre el ESP32 y la bomba de agua, lo que permite el control de la operación de la bomba sin sobrecargar el microcontrolador.

El L293D cuenta con dos puentes H, lo que le permite controlar la dirección y la velocidad del motor. Cada puente H puede accionar un motor en cualquier dirección, lo que lo hace adecuado para aplicaciones donde se necesita control del motor. En este caso, solo necesitaremos habilitar la bomba para funcionar en una dirección.

Detalles de la hoja de datos

FabricanteTexas Instruments
Número de piezaL293D
Voltaje de lógica/entrada/salida4.5 - 36 V
Tensión de alimentación4.5 - 36 V
Corriente de salida (por canal)600 mA
Corriente pico (por canal)1.2 A
Orientación sobre la frecuencia PWM1 kHz - 10 kHz
Umbral de lógica de entrada2 V (alto), 0.8 V (bajo)
Caída de tensión / RDS(on)/ saturación1.5 V (máx)
Límites térmicos+150 °C (máx)
PaqueteDIP-16
Notas / variantesIncluye diodos incorporados para la protección de cargas inductivas.

  • Asegure una adecuada disipación del calor para un funcionamiento continuo.
  • Utiliza capacitores de desacoplamiento para una fuente de alimentación estable.
  • Tenga cuidado con la tensión de entrada para prevenir daños.
  • Implementar PWM para el control de velocidad si es necesario.
  • Revisa el cableado para evitar cortocircuitos, especialmente con cargas inductivas.

Instrucciones de cableado

ESP32-16-motor-pump_wiring

Para cablear el ESP32 y el controlador de motor L293D con la bomba de agua, siga estos pasos cuidadosamente. Primero, conecte la fuente de alimentación al L293D. Conecte el pin 1 (pin de habilitación para el motor A) y el pin 8 (Vcc2) a la fuente de voltaje positivo (5V). Conecte el pin 4 (tierra) a la tierra de su circuito.

A continuación, conecta el ESP32 al L293D. Conecta el pin GPIO 13 del ESP32 al pin 2 (entrada 1) del L293D, y el pin GPIO 14 al pin 7 (entrada 2). Finalmente, conecta la bomba de agua al pin 3 (salida 1) y al pin 6 (salida 2) del L293D. Asegúrate de que todas las conexiones a tierra estén unidas para un funcionamiento adecuado. Si sigues estas instrucciones, tu cableado debería ser sencillo y funcional.

Ejemplos de Código y Tutoriales

En el código, definimos las conexiones de pines para el control del motor. Los identificadoresmotor1Aymotor2Acorresponden a los pines GPIO 13 y 14 en el ESP32, respectivamente. Estos pines controlarán la bomba de agua a través del controlador L293D.

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

En elsetup()función, inicializamos los pines de control del motor como salidas. Esto asegura que podemos enviar señales al controlador L293D para controlar la bomba. Elloop()la función luego controla el funcionamiento de la bomba.

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);
  
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // wait for a second
}

En elloop()función, establecemosmotor1Aa ALTA ymotor2Ademasiado BAJO para encender la bomba. Después de un breve retraso, detenemos la bomba configurando ambos pines en BAJO. Este ciclo se repite indefinidamente, permitiendo que la bomba funcione por un breve período y luego se detenga.

Demostración / Qué Esperar

Una vez que hayas completado el cableado y subido el código, deberías ver la bomba de agua activarse y desactivarse en un ciclo. La bomba funcionará durante un corto período, luego se detendrá, creando un patrón de encendido y apagado. Asegúrate de que tu fuente de alimentación sea adecuada para los requisitos de la bomba para evitar cualquier problema (en el video a las 09:30).

Marcadores de tiempo del video

  • 00:00 Comenzar
  • 1:50 Introducción al Proyecto
  • 3:17 ¿Por qué necesitamos L293D con Arduino?
  • 5:47 Explicación del cableado para la bomba de agua
  • 10:01 Código de Arduino explicado
  • 12:21 Seleccionando el puerto COM para ESp32 en Arduino IDE
  • 14:03 Demostración de la operación de la bomba
  • 15:25 Demostración con agua

Imágenes

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 y referencias

Archivos📁

Hoja de datos (pdf)