Tutorial de ESP32 49/55 - Controlar motor de corriente continua a través de Internet utilizando Adafruit IoT | Kit ESP32 de SunFounder

Tutorial de ESP32 49/55 - Controlar motor de corriente continua a través de Internet utilizando Adafruit IoT | Kit ESP32 de SunFounder

En este tutorial, exploraremos cómo controlar un motor de corriente continua a través de internet utilizando el ESP32 y el servicio MQTT de Adafruit IO. La velocidad y la dirección del motor de corriente continua pueden ser manipuladas a distancia, permitiendo un control eficiente desde cualquier lugar con conexión a internet. Este proyecto demuestra las capacidades del microcontrolador ESP32, que cuenta con Wi-Fi integrado, lo que lo hace ideal para aplicaciones de Internet de las Cosas (IoT).

esp32-49-motor-de-cc-mqtt-principal

Implementaremos un sistema donde el motor puede ser encendido, apagado y su velocidad ajustada a través de una interfaz web conectada a Adafruit IO. Los usuarios pueden suscribirse a temas específicos para el control del motor y ajustar los parámetros en consecuencia. Para comprender mejor el proceso, asegúrate de ver el video que acompaña a este tutorial (en el video a las 00:00).

Hardware Explicado

Para este proyecto, utilizaremos el microcontrolador ESP32, que es el corazón de nuestro sistema. El ESP32 es capaz de manejar comunicaciones Wi-Fi, lo que lo hace perfecto para nuestra aplicación de IoT. Se conecta a la plataforma Adafruit IO, lo que nos permite enviar y recibir mensajes a través del protocolo MQTT.

Además, utilizaremos el controlador de motor L293D, que es esencial para controlar el motor de corriente continua (DC). El L293D puede controlar dos motores de DC y permite el control tanto de la dirección como de la velocidad a través de la Modulación por Ancho de Pulsos (PWM). Esencialmente, actúa como una interfaz entre el ESP32 y el motor, gestionando la corriente más alta requerida por el motor mientras aísla el ESP32 de cualquier señal de retroceso potencialmente dañina.

Detalles de la hoja de datos

Fabricante Texas Instruments
Número de parte L293D
Voltaje de lógica/IO 4.5 - 36 V
Tensión de alimentación 4.5 - 36 V
Corriente de salida (por canal) 600 mA
Corriente pico (por canal) 1.2 A
Guía de frecuencia PWM 10 kHz (típ.)
Umbrales de lógica de entrada 0.8 V (alto), 2.0 V (bajo)
Caída de voltaje / RDS(on)/ saturación 1.5 V máx
Límites térmicos 150 °C
Paquete DIP-16
Notas / variantes Controlador de medio H de alta corriente cuádruple

  • Asegure una adecuada disipación de calor para un funcionamiento continuo.
  • Utiliza PWM para controlar la velocidad del motor de manera eficaz.
  • Observe los límites de voltaje de entrada para prevenir daños.
  • Verifique las conexiones a tierra adecuadas entre todos los componentes.
  • Ten cuidado con el contraelectromotriz; utiliza diodos si es necesario.
  • Verifica el cableado, ya que la polaridad puede afectar la dirección del motor.
  • Pruebe con un voltaje más bajo antes de la operación completa.
  • Esté atento a sobrecalentamientos durante el uso prolongado.
  • Asegúrate de desactivar el rebote de los interruptores mecánicos si se utilizan.
  • Asegúrate de que el ESP32 no esté sobrecargado por la corriente del motor.

Instrucciones de cableado

ESP32-15_esquemático_motor_L293D

Comienza conectando la fuente de alimentación. Conecta el terminal positivo de tu fuente de alimentación externa al pin VCC del L293D (pin 8) y el ground al pin GND (pin 4). Asegúrate de que el ESP32 esté alimentado por separado si es necesario, típicamente a través de una conexión micro USB.

A continuación, conecta el motor al L293D. Un terminal del motor debe estar conectado al pin de salida 3 (pin 2 del L293D) y el otro terminal al pin de salida 6 (pin 7 del L293D). Para las señales de control, conecta el pin 13 del ESP32 al pin de entrada 2 (pin 1 del L293D) y el pin 14 al pin de entrada 7 (pin 2 del L293D). El pin de habilitación (pin 1) también debe estar conectado a la fuente de 5V para activar el controlador. Por último, asegúrate de que la tierra del ESP32 esté conectada a la tierra del L293D para tener una referencia común.

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

El código proporcionado inicializa las bibliotecas necesarias y configura el cliente de Wi-Fi y MQTT. Los identificadores clave incluyenmotorSpeed,motorDirection, ymotorStart, que gestionan el funcionamiento del motor según los comandos recibidos de Adafruit IO.

bool debug = false;
#define motor1A 13
#define motor2A 14
int motorSpeed = 0;
int motorDirection = 1;
int motorStart = 1;

En este extracto, se definen los pines del motor junto con las variables iniciales para controlar la velocidad, la dirección y el estado de inicio/parada del motor. La variablemotorSpeedse ajustará según la información de Adafruit IO.

void setup() {
  Serial.begin(115200);
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  delay(2000);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
}

En la función de configuración, se inicia la comunicación serial y el ESP32 se conecta a la red Wi-Fi especificada. Esta conexión es crucial para habilitar la comunicación MQTT.

void loop() {
  MQTT_connect();
  mqtt.processPackets(500);
  runMotor();
}

Esta función de bucle establece la conexión MQTT y procesa los paquetes entrantes para controlar el motor según los últimos comandos recibidos. La funciónrunMotor()se llama a aplicar la configuración actual al motor.

Demostración / Qué esperar

Cuando la configuración esté completa y el código esté subido, deberías poder controlar el motor a través del panel de control de Adafruit IO. Puedes ajustar la velocidad del motor usando un control deslizante y cambiar su dirección con un interruptor de palanca. Si todo está cableado correctamente, el motor responderá a estos comandos en tiempo real, mostrando la baja latencia del sistema (en el video a las 00:00).

Los problemas comunes incluyen la dirección del motor invertida debido a un cableado incorrecto, así que verifica las conexiones si el motor no se comporta como se esperaba. Además, asegúrate de que tus temas MQTT estén configurados correctamente en Adafruit IO para coincidir con el código.

Tiempos Del Video

  • 00:00 Comenzar
  • 2:21 Introducción al proyecto
  • 4:20 Cómo se controla un motor de CC
  • 6:39 Controlador de Motor L293D
  • 11:42 ¿Qué es MQTT?
  • 15:03 Configuración de Adafruit IO
  • 19:17 Explicación del cableado
  • 22:42 Código explicado
  • 35:28 Demostración del Proyecto

Imágenes

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
esp32-49-DC-motor-mqtt-main
esp32-49-DC-motor-mqtt-main
851-ESP32 Tutorial 49/55- Arduino code using ESP32 to DC Motor using MQTT service of Adafruit
Idioma: C++
¡Copiado!

Recursos y referencias

Aún no hay recursos.

Archivos📁

No hay archivos disponibles.