¿Interesado en aprender a controlar motores sin escobillas con Arduino? ¡Estás en el lugar correcto! En este tutorial te enseñaremos paso a paso cómo puedes utilizar esta plataforma de desarrollo para controlar motores sin escobillas de una manera eficiente y sencilla. ¡Sigue leyendo para descubrir todos los detalles y sacarle el máximo provecho a tus proyectos con Arduino!
En este tutorial aprenderemos a controlar un motor sin escobillas usando Arduino y ESC. Si quieres conocer más detalles sobre cómo funcionan los motores BLDC, puedes leer el otro artículo o ver el siguiente vídeo que contiene una explicación sobre el principio de funcionamiento de un motor brushless y su control con Arduino y ESC.
descripción general
Para este ejemplo, tengo un motor Outrunner BLDC con las siguientes especificaciones: tiene una clasificación de KV de 1000, puede funcionar con una batería LiPo 2S, 3S o 4S y requiere un ESC de 30 A. La clasificación KV de un motor sin escobillas define la velocidad del motor por voltio sin carga.
En>
Los motores sin escobillas consumen mucha energía y, en la mayoría de los casos, funcionan con baterías LiPo. El número «S» de una batería LiPo indica cuántas celdas tiene la batería y cada celda tiene un voltaje de 3,7 V.
Para>
Por último, un ESC de 30A que usaré para este ejemplo y adaptaré a los requisitos del motor. Por un lado, el ESC tiene tres cables que controlan las tres fases del motor, y por el otro lado tiene dos cables, VCC y GND, para la alimentación.
También>
Podemos ver aquí que esta conexión es en realidad la misma que vemos en los servomotores.
Así>
Esto>
Entonces, al usar Arduino solo necesitamos generar la señal PWM de 50 Hz y, dependiendo del ancho del pulso o la duración del estado alto, que debe variar entre 1 y 2 milisegundos, el ESC impulsará el motor de la velocidad mínima a la máxima.
Controlador de motor sin escobillas Arduino – Diagrama de circuito
Aquí está el esquema de este ejemplo. Además del ESC, sólo utilizamos un potenciómetro simple para controlar la velocidad del motor.
Puede>
- Motor sin escobillas……………………… Amazon / Banggood / AliExpress
- Controlador de velocidad 30A ……………………………………………. Amazon / Banggood / AliExpress
- Batería Li-Po……………….……..…… Amazonas / Banggood / AliExpress
- Placa Arduino………………………… Amazon / Banggood / AliExpress
- Potenciómetro …………………………. Amazon / Banggood / AliExpress
- Cables de puente y placa de pruebas… Amazon / Banggood / AliExpress
Divulgación: estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
Código Arduino para controlar motores BLDC
El código Arduino es realmente simple con sólo unas pocas líneas de código.
/*
Arduino Brushless Motor Control
by Dejan, https://howtomechatronics.com
*/
#include <Servo.h>
Servo ESC; // create servo object to control the ESC
int potValue; // value from the analog pin
void setup() {
// Attach the ESC on pin 9
ESC.attach(9,1000,2000); // (pin, min pulse width, max pulse width in microseconds)
}
void loop() {
potValue = analogRead(A0); // reads the value of the potentiometer (value between 0 and 1023)
potValue = map(potValue, 0, 1023, 0, 180); // scale it to use it with the servo library (value between 0 and 180)
ESC.write(potValue); // Send the signal to the ESC
}
Code language: Arduino (arduino)
Descripción: Entonces tenemos que definir Servobibliotecaporque con la biblioteca de servos podemos generar fácilmente la señal PWM de 50Hz, de lo contrario las señales PWM generadas por Arduino tienen frecuencias diferentes. Luego necesitamos crear un objeto servo para el control ESC y definir una variable para almacenar la entrada analógica del potenciómetro. En la sección de configuración, definimos a qué pin Arduino está conectada la señal de control ESC usando la función adjuntar(), y también definimos el ancho de pulso mínimo y máximo de la señal PWM en microsegundos.
Ver también
Tutorial de control de motores de CC Arduino – L298N | PWM | puente H
En la sección de bucle, primero leemos el potenciómetro y convertimos su valor de 0 a 1023 en un valor de 0 a 180. Luego usamos la función write() para enviar la señal al ESC o generar la señal PWM de 50Hz. Los valores de 0 a 180 corresponden a los valores de 1000 a 2000 microsegundos definidos en la sección de configuración.
Entonces, si cargamos este código en nuestro Arduino y luego alimentamos todo desde la batería, podemos controlar la velocidad del motor sin escobillas de cero al máximo usando el potenciómetro.
Sin>
Calibración ESC
Finalmente, explicamos cómo funciona la calibración del ESC. Cada ESC tiene sus propios puntos altos y bajos, y estos pueden variar ligeramente. Por ejemplo, el punto más bajo podría ser 1,2 milisegundos y el punto más alto podría ser 1,9 milisegundos. En tal caso, nuestro acelerador no hará nada durante el primer 20% hasta que alcance ese valor mínimo de 1,2 milisegundos.
Para>
Luego,>
Eso es prácticamente todo en este tutorial. Si quieres aprender cómo hacer este controlador de motor sin escobillas Arduino de forma inalámbrica, puedes ver mi video anterior donde construyo un transmisor RC basado en Arduino y explico cómo usarlo para controlar motores BLDC.
Espero>
Tutorial de control de motores sin escobillas con Arduino
En este tutorial, aprenderemos cómo controlar un motor sin escobillas utilizando Arduino y un ESC. Si deseas más detalles sobre cómo funcionan los motores BLDC, puedes revisar el otro artículo o ver el siguiente video que contiene una explicación del principio de funcionamiento de un motor sin escobillas y cómo controlarlo utilizando Arduino y un ESC.
Visión general
Para este ejemplo, tenemos un motor BLDC brushless con las siguientes especificaciones: tiene una clasificación de KV de 1000, puede ser alimentado con baterías LiPo de 2S, 3S o 4S y requiere un ESC de 30A. La clasificación de KV en un motor sin escobillas define las RPM del motor por voltio sin carga.
En este caso, el 1000KV significa que, por ejemplo, si suministramos al motor una batería LiPo de 2S con un voltaje de 7.4 voltios, el motor puede alcanzar un máximo de 7.4 veces 1000 RPM, es decir, 7400 RPM.
Los motores sin escobillas consumen mucha potencia y el método más común para alimentarlos es utilizando baterías LiPo. El número «S» de una batería LiPo indica cuántas celdas tiene la batería, y cada celda tiene un voltaje de 3.7V.
Para este ejemplo, utilizaré una batería LiPo de 3S que tiene 3 celdas y eso significa 11.1V. Por lo tanto, puedo esperar que mi motor alcance un máximo de 11100 RPM.
Por último, aquí tenemos un ESC de 30A que usaré para este ejemplo y que coincidirá con los requisitos del motor. Por un lado, el ESC tiene tres cables que controlan las tres fases del motor y, por otro lado, tiene dos cables, VCC y GND, para la alimentación.
También hay otro conjunto de tres cables que salen del ESC y son la línea de señal, +5V y tierra. Esta característica del ESC se llama Circuito Eliminador de Batería y, como su nombre lo indica, elimina la necesidad de una batería separada para un microcontrolador. Con esto, el ESC proporciona 5V regulados que se pueden utilizar para alimentar nuestro Arduino.
Podemos notar que esta conexión es en realidad la misma que la que vemos en los motores de servo.
Por lo tanto, controlar un motor sin escobillas utilizando ESC y Arduino es tan simple como controlar un servo utilizando Arduino. Los ESC utilizan el mismo tipo de señal de control que el servo, que es la señal PWM estándar de 50Hz.
Esto es muy conveniente, porque por ejemplo, al construir un avión RC, generalmente necesitamos tanto servos como motores sin escobillas y, de esta manera, podemos controlarlos fácilmente con el mismo tipo de controlador.
Preguntas frecuentes
- ¿Cuál es la clasificación de KV en un motor sin escobillas y por qué es importante?
- ¿Qué tipo de batería se recomienda para alimentar un motor sin escobillas?
- ¿Cómo se calibra un ESC?
La clasificación de KV en un motor sin escobillas define las RPM del motor por voltio sin carga. Es importante porque nos permite saber la velocidad máxima que puede alcanzar el motor con cierta alimentación.
Se recomienda utilizar baterías LiPo para alimentar motores sin escobillas, ya que son capaces de suministrar la potencia necesaria que estos motores demandan.
Para calibrar un ESC, primero debemos asegurarnos de que el potenciómetro esté en una posición que indique el punto alto, luego alimentamos el ESC y movemos el potenciómetro al punto bajo deseado. Esto establecerá los puntos altos y bajos de la señal de control del ESC.
Espero que hayas disfrutado este tutorial y aprendido algo nuevo. Si tienes alguna pregunta, no dudes en dejar un comentario en la sección de abajo. No olvides revisar mi colección de Proyectos de Arduino.
¡Esto es justo lo que estaba buscando! Gracias por la guía detallada.
¡Muy útil! ¡Gracias por compartir esto!
¡Buenísimo tutorial! Me encantó lo fácil que lo explicaron, ¡gracias por compartirlo!