¿Puedo conducir un controlador BLDC con este diagrama?

0

Soy programador y solo comencé a jugar con el hardware hace medio año, principalmente con la Raspberry Pi. Ahora quiero conducir un motor de CC sin escobillas usando mi Raspberry pi. Para hacer esto, he comprado este controlador de motor BLDC (aún está en camino) que viene con el siguiente diagrama:

Desdeestaimagen,entiendoquedeboproporcionar5entradasdiferentesalcontrolador(SV,COM,F/R,ENyBRK).Yaquíesdondecreoquememetoenproblemas,pordosrazones:

  1. elSVrequiereunaentradaanalógica,peroporloquesé,elRaspinotieneunpinGPIOanalógico.
  2. Todasestasentradasrequieren5V,mientrasquelospinesRaspiGPIOsolosuministran3.3V

Entonces,primerapregunta;¿Estoyenlocorrectoenestosproblemas?

Supongoquepuedosuperarestosproblemasdelasiguientemanera:

  1. PodríausarPWMoDAC como se describe aquí para entrada analógica, pero como quiero que el motor funcione siempre a la velocidad máxima, supongo que una solución más simple sería alimentar siempre el SV con 5V. ¿Estoy en lo correcto en esto?
  2. Para alimentar los otros puertos con 5V, podría usar optoacopladores en combinación con el pin GPIO alimentado por 5V para suministrar 5V a los otros 4 puertos.

Así que creé el siguiente dibujo:

Utilizando el diagrama anterior, supongo que puedo alimentar todas esas 5 conexiones en el controlador del motor con 5V y puedo activarlas y desactivarlas programáticamente usando los pines GPIO regulares de 3.3V.

Pero como soy realmente un principiante: ¿tiene sentido esto? ¿Crees que esto funcionará? ¿No dañará nada?

¡Todos los consejos son bienvenidos!

    
pregunta kramer65

3 respuestas

1

El manual es muy pobre. Le recomendaría que al recibir el artículo abra el estuche y vea qué hay dentro. La unidad ya puede tener los optoacopladores en su interior, por lo que solo necesitará un transistor NPN y una resistencia de base para controlar las entradas digitales. El potenciómetro de velocidad de punto de ajuste externo no es necesario si utiliza uno incorporado.

EDITAR:

Posible escenario una vez que abra el caso (el buen escenario):

Preste atención a la fuente de voltaje: debe ser de tipo galvánicamente aislado.

simular este circuito : esquema creado usando CircuitLab

El otro escenario (sin aislamiento galvánico incorporado en el controlador BLDC):

simular este circuito

Vea esto:

Las partes internas de DI se muestran como LED (¿tal vez LED de optoacoplador?)

    
respondido por el Marko Buršič
0
  1. Analógico o Digital, no importa en este caso. Así que esto no debería ser un problema

  2. Esto es un problema, pero puedes solucionarlo con un Mosfet de nivel lógico que cambia los 5 V utilizando las salidas RPI

respondido por el S.G
0

Tomaré un enfoque diferente sobre esto, que probablemente funcionaría mejor de todos modos con su fondo de software:

Olvídese del controlador BLDC que acaba de comprar y use un pasatiempo / control de radio en su lugar. Aquí hay una búsqueda de muestra de un fabricante.
(asegúrate de obtener un controlador y no solo un motor, la búsqueda incluye ambos)

Esto tiene un solo conector de 3 pines para un generador PWM de algún tipo (el Pi), e incluso le proporciona 5 V de potencia para ejecutar el Pi.

Sin embargo, el PWM no es 0-100%, sino 1-2ms por encima del umbral lógico seguido de algún tiempo por debajo. La hora anterior se interpreta como la señal, y la hora siguiente es simplemente la frecuencia con la que desea actualizarla. 50Hz es muy común (un pulso cada 20 ms), pero tiene que seguir actualizándolo; Si lo deja solo, se apagará debido a una pérdida de señal. El más rápido permitido es 400Hz (2,5 ms) porque deja solo 0,5 ms entre los pulsos de longitud máxima.

Estos controladores están diseñados para conducir automóviles, que normalmente se adelantan, frenan y avanzan un poco más, con relativamente poco tiempo en reversa. Por lo tanto, el comando "negativo" (< 1.5ms) es en realidad la fuerza del freno hasta que el motor se detiene, y luego se convierte en velocidad de retroceso. La marcha atrás hacia adelante es instantánea sin freno.

Ahora, con todo lo dicho, realmente quieres correr a toda velocidad o apagarlo sin control de velocidad real. No creo que realmente necesites sensores para eso. De hecho, todos los controladores en ese enlace de búsqueda ignoran el sensor por encima de cierta velocidad y usan el EMF inverso del motor en su lugar porque en realidad es más preciso. La misma compañía también tiene una amplia gama de controladores sin sensores, que son un poco más ásperos en el inicio porque no tienen idea de dónde está el motor todavía, pero literalmente no son diferentes a la velocidad debido a lo que acabo de explicar.

En cualquier caso, mi solución convierte el problema de hardware a software al hacer que compre algo que ya resuelva el problema de hardware, pero que tenga un poco de "lenguaje" para que lo descubra en el software. Si desea telemetría en tiempo real (RPM, corriente, temperatura del controlador, etc.), muchos de los controladores de la misma compañía lo admiten. Investiga un poco para descubrir cómo.

Es posible que necesite un Arduino u otro microcontrolador de metal (sin sistema operativo, solo código directo) para hacer que la parte de telemetría funcione porque implica cambiar el pin de entrada a salida y viceversa con una sincronización precisa, lo cual dudo. Pi puede hacerlo a través de su sistema operativo. En ese caso, el Pi hablaría con el 'duino, sin embargo, usted decide hacerlo, y el' duino hablaría con el ESC.

    
respondido por el AaronD

Lea otras preguntas en las etiquetas