Estoy tratando de aprender a controlar los motores BLDC sin usar un ESC, pero en cambio estoy usando Arduino y un controlador. En casa encontré un viejo controlador de DVD y saqué el motor, que era Nidec Slim 24C, enlace , con 5 hilos: u, v, w, COM, fg. Lo sé, normalmente los motores BLDC tienen tres cables (u, v, w). Entiendo que en este punto, COM es el punto central y fg es la línea de información de comentarios.
Tenía algunos módulos L298N en casa y decidí probarlos. Normalmente, con un BLDC de 3 cables, se cablearía el motor de manera que u-v, v-w, w-u, estén energizados. Pero con el L298 no parecía tan fácil, conecté cada polo contra el COM, en secuencia; Y pude hacer funcionar el motor. Las fases se conectan a las líneas de salida L298 1,2,3 y COM se conecta a + 5V en L298. Aunque no es tan rápido como el valor nominal (6000 rpm), sino de aproximadamente 1000 rpm, más o menos, suave y silencioso, pude obtener una velocidad estable (y alta) al jugar con el parámetro de retardo entre fases. Aquí está el código simple de Arduino:
int u = 2;
int v = 3;
int w = 4;
int EN1 = 5;
int EN2 = 6;
int f = A0;
int val2 = 6000;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(u, OUTPUT);
pinMode(v, OUTPUT);
pinMode(w, OUTPUT);
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);
pinMode(f, INPUT);
digitalWrite(u, LOW);
digitalWrite(v, LOW);
digitalWrite(w, LOW);
digitalWrite(EN1, HIGH);
digitalWrite(EN2, HIGH);
digitalWrite(w, HIGH);
delayMicroseconds(val2);
digitalWrite(u, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
delayMicroseconds(val2);
digitalWrite(v, HIGH);
digitalWrite(w, LOW);
delayMicroseconds(val2);
digitalWrite(w, HIGH);
digitalWrite(u, LOW);
delayMicroseconds(val2);
digitalWrite(u, HIGH);
digitalWrite(v, LOW);
if (val2 > 2000) {
val2 -= 10;
Serial.println(val2);
}
}
Mi pregunta es si esta implementación es correcta, ¿se utilizará en el futuro para cualquier motor BLDC?
-
Al conectar cada fase con el COM, ¿pierdo velocidad y / o par?
-
Con el motor solo de 3 cables, ¿cómo usaría la misma lógica? En algún lugar leí sobre "Punto de centro virtual", conectando los tres conductores de fase juntos, con resistores de igual peso en serie. ¿Eso me dará el mismo resultado que el punto central real?
EDIT1: Sí, el "punto del centro virtual" funciona. Probé con resistencias de 6 ohmios conectados en serie a cables (secundarios / paralelos), conectados entre sí, en lugar de un pin COM, y funcionó bien.
EDIT2: He modificado el código, de forma que se acelera lentamente al disminuir el tiempo de retardo. Podría bajar a 2000 microsegundos, es decir, 2 milisegundos entre fases. Entonces, aproximadamente, creo que una revolución toma alrededor de 10 milisegundos, lo que hace 100 revoluciones por segundo y 6000 rpm. Mis resistencias tenían un vataje bajo, por lo que se calentaron mucho (sin límite de corriente ni control), por lo que me detengo cuando veo 2000 microsegundos.