Tutorial ESP32 15/55 - Control de Velocidad del Motor de Corriente Continua con ESP32 L293D | Kit de Aprendizaje IoT ESP32 de SunFounder

Tutorial ESP32 15/55 - Control de Velocidad del Motor de Corriente Continua con ESP32 L293D | Kit de Aprendizaje IoT ESP32 de SunFounder

Tutorial de ESP32 15/55 - Control de Velocidad de Motor de Corriente Continua con ESP32 L293D | Kit de Aprendizaje IoT ESP32 de SunFounder

Controlar un motor de corriente continua con un ESP32 puede parecer desalentador, pero es bastante manejable con los componentes adecuados y una buena comprensión. En este tutorial, construiremos un proyecto que nos permita controlar la velocidad y dirección de un motor de corriente continua utilizando el controlador de motor L293D. Al final, tendrás una configuración funcional que puede hacer girar el motor hacia adelante y hacia atrás, mientras ajustas su velocidad. Para una referencia visual, asegúrate de revisar el video en (en video en 00:00).

ESP32-15_esquema_de_motor_L293D

Hardware Explicado

Los componentes principales de este proyecto incluyen el microcontrolador ESP32 y el controlador de motor L293D. El ESP32 es un microcontrolador potente con capacidades integradas de Wi-Fi y Bluetooth, lo que lo hace adecuado para aplicaciones de IoT. Puede controlar diversos componentes de hardware, incluidos motores, a través de sus pines GPIO. El L293D es un controlador de motor de doble puente H que permite controlar la dirección y la velocidad de dos motores de corriente continua. Cada puente H puede accionar un motor en ambas direcciones invirtiendo la polaridad de la tensión aplicada a los terminales del motor. Además, el L293D puede manejar una corriente de hasta 600 mA por canal, lo que lo hace adecuado para motores de tamaño pequeño a mediano.

L293D-Controlador de Motor-IC

Detalles de la hoja de datos

Fabricante Texas Instruments
Número de parte L293D
Voltaje de lógica/IO 2.5 - 7 V
Tensión de suministro 4.5 - 36 V
Corriente de salida (por canal) 600 mA (típ.)
Corriente pico (por canal) 1.2 A (máx)
Orientación sobre la frecuencia PWM 20 kHz (típ.)
Umbrales de lógica de entrada 0.8 V (alto), 2.0 V (bajo)
Caída de tensión / RDS(on)/ saturación 1.5 V (máx)
Límites térmicos 150 °C (máx)
Paquete 16-DIP
Notas / variantes Controlador de media cuadruplicado

  • Asegúrese de una adecuada disipación de calor para aplicaciones de alta corriente.
  • Desacoplar la fuente de alimentación con capacitores para prevenir picos de voltaje.
  • Ten cuidado con el cableado para evitar la polaridad inversa.
  • Utiliza PWM para el control de velocidad y evitar el sobrecalentamiento.
  • Verifique el voltaje nominal del motor para evitar daños.

Instrucciones de cableado

ESP32-15_L293D_motor_wiring

Para cablear el ESP32 y el controlador de motor L293D, comienza conectando la alimentación. Conecta el pin 16 del L293D al terminal positivo de tu fuente de alimentación y el pin 4 a tierra. A continuación, conecta el motor: un terminal al pin 3 y el otro al pin 6 del L293D. Para las señales de control, conecta el pin GPIO 13 del ESP32 al pin 2 del L293D y el pin GPIO 14 al pin 7. Finalmente, asegúrate de conectar la tierra del ESP32 a la tierra del L293D para asegurar una referencia común. Si el video menciona un cableado alternativo (en el video a las 05:00), asegúrate de seguir los cambios específicos mostrados.

Ejemplos de código y guía paso a paso

El código para controlar el motor consiste en definir los pines para el motor y establecer sus modos. Aquí hay un extracto de la función de configuración:

#define motor1A 13
#define motor2A 14

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

En este fragmento, definimos los pines de control del motor como constantes y los configuramos como salidas en la función de configuración. Esto es crucial ya que prepara los pines para controlar el motor. La función de bucle es donde se controla el comportamiento del motor. Aquí hay una parte clave del bucle:

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, HIGH);    
  delay(2000); 

  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(3000);
}

Este código rota el motor en una dirección durante 2 segundos, luego invierte la dirección durante otros 2 segundos y finalmente detiene el motor durante 3 segundos. Este bucle se repetirá indefinidamente, permitiendo un control continuo. Para obtener más información y el código completo, consulta el programa completo que se carga a continuación del artículo.

Demostración / Qué esperar

Al completar con éxito el cableado y la carga del código, deberías ver el motor girar en una dirección durante 2 segundos, cambiar de dirección durante otros 2 segundos y luego detenerse durante 3 segundos. Si el motor no responde como se espera, verifica los errores comunes, como la polaridad invertida o conexiones de pines incorrectas (en el video a las 08:00). Esta configuración proporciona una forma sencilla de controlar la velocidad y la dirección de un motor de corriente continua utilizando el ESP32 y el L293D.

Sellos de tiempo del video

  • 00:00 Inicio
  • 2:01 Introducción al motor de CC
  • 6:14 Controlador de motor L293D
  • 9:17 Documentos del proyecto.
  • 11:04 Explicación del cableado
  • 14:41 Control de motor de Arduino con ESP32
  • 17:10 Seleccionando puertos de Arduino para la placa ESP32
  • Demostración del proyecto 18:52
  • Control de Velocidad del Motor usando ESP32
  • 26:22 Demostración de Control de Velocidad
  • 28:01 Control de velocidad y dirección código Arduino
  • 29:05 Demostración de Velocidad y Dirección

Imágenes

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Hoja de datos (pdf)