
Tabla de contenido:
- Paso 1: demostración
- Paso 2: Recursos utilizados
- Paso 3: Wifi LoRa 32- Pinout
- Paso 4: ESC (control electrónico de velocidad)
- Paso 5: Control electrónico de velocidad ESC (ESC)
- Paso 6: Control de servomotor PWM
- Paso 7: captura analógica
- Paso 8: Circuito - Conexiones
- Paso 9: código fuente
- Paso 10: archivos
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39



Hoy hablamos de motores de drones, frecuentemente llamados motores "sin escobillas". Son muy utilizados en aeromodelismo, principalmente en drones, por su potencia y alta rotación. Aprenderemos a controlar un motor sin escobillas usando ESC y ESP32, realizando una actuación analógica en el ESC usando el controlador interno LED_PWM y usando un potenciómetro para cambiar la velocidad del motor.
Paso 1: demostración
Paso 2: Recursos utilizados

- Jumpers para conexión
- Wifi LoRa 32
- ESC-30A
- Motor sin escobillas A2212 / 13t
- cable USB
- Potenciómetro de control
- Protoboard
- Fuente de alimentación
Paso 3: Wifi LoRa 32- Pinout

Paso 4: ESC (control electrónico de velocidad)


- Controlador de velocidad electrónico
- Circuito electrónico para controlar la velocidad de un motor eléctrico.
- Controlado desde un servocontrol PWM estándar de 50Hz.
- Varía la velocidad de conmutación de una red de transistores de efecto de campo (FET). Al ajustar la frecuencia de conmutación de los transistores, se cambia la velocidad del motor. La velocidad del motor se varía ajustando la sincronización de los pulsos de corriente suministrados a los diversos devanados del motor.
- Especificaciones:
Corriente de salida: 30 A continuos, 40 A durante 10 segundos
Paso 5: Control electrónico de velocidad ESC (ESC)

Paso 6: Control de servomotor PWM

Crearemos un servo PWM para actuar en la entrada de datos ESC dirigiendo el canal 0 del LED_PWM para el GPIO13, y usaremos un potenciómetro para controlar la modulación.
Para la captura usaremos un potenciómetro de 10k como divisor de voltaje. La captura se realizará en el canal ADC2_5, accesible por GPIO12.
Paso 7: captura analógica


Conversión analógica a digital
Convertiremos los valores de AD al PWM.
El PWM del servo es 50Hz, por lo que el período de pulso es 1/50 = 0.02 segundos o 20 milisegundos.
Necesitamos actuar en al menos 1 milisegundo a 2 milisegundos.
Cuando el PWM está en 4095, el ancho de pulso es de 20 milisegundos, lo que significa que deberíamos alcanzar el máximo en 4095/10 para llegar a 2 milisegundos, por lo que PWM debería recibir 410 *.
Y después de al menos 1 milisegundo, por lo tanto 409/2 (o 4095/20), el PWM debería recibir 205 *.
* Los valores deben ser números enteros
Paso 8: Circuito - Conexiones

Paso 9: código fuente
Encabezamiento
#include // Necesario solo para o Arduino 1.6.5 e posterior # include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 SSD1306 display (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display"
Variables
const int freq = 50; const int canal_A = 0; const int resolucao = 12; const int pin_Atuacao_A = 13; const int Leitura_A = 12; int potencia = 0; int leitura = 0; int ciclo_A = 0;
Configuración
configuración vacía () {pinMode (pin_Atuacao_A, SALIDA); ledcSetup (canal_A, frecuencia, resolución); ledcAttachPin (pin_Atuacao_A, canal_A); ledcWrite (canal_A, ciclo_A); display.init (); display.flipScreenVertically (); // Vira una tela verticalmente display.clear (); // ajusta o alinhamento para una pantalla esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta una fuente para Arial 16 display.setFont (ArialMT_Plain_16); }
Círculo
bucle vacío () {leitura = analogRead (Leitura_A); ciclo_A = mapa (leitura, 0, 4095, 205, 410); ledcWrite (canal_A, ciclo_A); potencia = mapa (leitura, 0, 4095, 0, 100); display.clear (); // limpa o buffer do display.drawString (0, 0, String ("AD:")); display.drawString (32, 0, String (leitura)); display.drawString (0, 18, String ("PWM:")); display.drawString (48, 18, String (ciclo_A)); display.drawString (0, 36, String ("Potência:")); display.drawString (72, 36, String (potencia)); display.drawString (98, 36, String ("%")); display.display (); // no muestra ninguna pantalla}
Paso 10: archivos
Descarga los archivos
INO
Recomendado:
Motor paso a paso controlado por motor paso a paso sin microcontrolador: 6 pasos

¡Motor paso a paso controlado por motor paso a paso sin microcontrolador !: En este Instructable rápido, haremos un controlador de motor paso a paso simple usando un motor paso a paso. Este proyecto no requiere circuitos complejos ni un microcontrolador. Así que sin más preámbulos, ¡comencemos
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): 9 pasos (con imágenes)

Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): En uno de mis Instructables anteriores, le mostré cómo controlar un motor paso a paso usando un motor paso a paso sin un microcontrolador. Fue un proyecto rápido y divertido, pero vino con dos problemas que se resolverán en este Instructable. Entonces, ingenio
Motor paso a paso controlado por motor - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)

Motor paso a paso controlado por motor paso a paso | Motor paso a paso como codificador rotatorio: ¿Tiene un par de motores paso a paso por ahí y quiere hacer algo? En este Instructable, usemos un motor paso a paso como codificador rotatorio para controlar la posición de otro motor paso a paso usando un microcontrolador Arduino. Así que sin más preámbulos, vamos a
ESP32 con tutorial del módulo E32-433T LoRa - Interfaz LoRa Arduino: 8 pasos

ESP32 con tutorial del módulo E32-433T LoRa | Interfaz LoRa Arduino: ¡Hola, chicos! Akarsh aquí de CETech.Este proyecto mío está interconectando el módulo E32 LoRa de eByte, que es un módulo transceptor de 1 vatio de alta potencia con un ESP32 usando Arduino IDE. Entendemos el funcionamiento del E32 en nuestra última tutoría
Controle los electrodomésticos sobre LoRa - LoRa en domótica - Control remoto LoRa: 8 pasos

Controle los electrodomésticos sobre LoRa | LoRa en domótica | Control Remoto LoRa: Controla y automatiza tus electrodomésticos desde largas distancias (Kilómetros) sin la presencia de internet. ¡Esto es posible a través de LoRa! Hey, ¿qué pasa, chicos? Akarsh aquí de CETech. Este PCB también tiene una pantalla OLED y 3 relés que un