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).
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.
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

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
Common Course Links
Common Course Files
Cosas que podrías necesitar
-
Amazonas
-
eBayCompra un chip L293D en eBay.ebay.us
-
AliExpressCompra el IC controlador de motor L293D en AliExpress.s.click.aliexpress.com
Recursos y referencias
-
DocumentaciónDocumentación de control de motores de SunFounder ESP32 Tutorial 15/55docs.sunfounder.com
Archivos📁
Hoja de datos (pdf)
-
L293d_Puente_de_mitad_cuádruple_ficha_técnica
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB