motor de disco duro BLDC

0

No puedo resolver cuál es el problema con mi configuración para controlar un motor BLDC de disco duro de 2,5 ". Tengo un disco duro de 2,5 polos de 3 polos conectado al siguiente circuito de disco, pero el motor no está girando.

simular este circuito : esquema creado usando CircuitLab

Estoy utilizando un registro de cambios de hundimiento actual para controlar los MOSFET, por lo que es necesario recuperarlos de forma predeterminada. El controlador del motor parece estar funcionando correctamente, el código arduino es simplemente

static uint8_t motorVectors[6] = { 0b100100, 0b100001, 0b001001, 0b011000, 
0b010010, 0b000110};
int vectorPos;
void setup() {
  Serial.begin(9600);
  for(int x=2; x<8;x++){
    pinMode(x,OUTPUT);
  }
}

void loop() {
//AB
  digitalWrite(2, 0);
  digitalWrite(3, 0);
  digitalWrite(4, 1);
  digitalWrite(5, 1);
  digitalWrite(6, 1);
  digitalWrite(7, 0);
  Serial.println("AB");
  delay(10);

//AC
  digitalWrite(2, 0);
  digitalWrite(3, 0);
  digitalWrite(4, 1);
  digitalWrite(5, 0);
  digitalWrite(6, 1);
  digitalWrite(7, 1);
  Serial.println("AC");
  delay(10);

//BC
  digitalWrite(2, 1);
  digitalWrite(3, 0);
  digitalWrite(4, 0);
  digitalWrite(5, 0);
  digitalWrite(6, 1);
  digitalWrite(7, 1);
  Serial.println("BC");
  delay(10);

//BA
  digitalWrite(2, 1);
  digitalWrite(3, 1);
  digitalWrite(4, 0);
  digitalWrite(5, 0);
  digitalWrite(6, 1);
  digitalWrite(7, 0);
  Serial.println("BA");
  delay(10);

//CA
  digitalWrite(2, 1);
  digitalWrite(3, 1);
  digitalWrite(4, 1);
  digitalWrite(5, 0);
  digitalWrite(6, 0);
  digitalWrite(7, 0);
  Serial.println("CA");
  delay(10);

//CB
  digitalWrite(2, 1);
  digitalWrite(3, 0);
  digitalWrite(4, 1);
  digitalWrite(5, 1);
  digitalWrite(6, 0);
  digitalWrite(7, 0);
  Serial.println("CB");
  delay(10);
}

todo parece estar funcionando, no tengo un osciloscopio, por lo que no puedo verificar las formas de onda de salida con el tiempo, pero la salida del controlador parece estar funcionando correctamente cuando pruebo cada fase que se muestra en el código.

¿Hay algo que esté muy mal?

He comprobado otras respuestas y parecen estar de acuerdo con la configuración que tengo aquí.

    
pregunta B_Gsy

1 respuesta

0

Lo primero que haría sería probar la conmutación, debería poder encender un polo a la vez y hacer que el motor gire a esa posición (o simplemente medir la tensión en el motor). Un osciloscopio sería realmente útil para asegurarse de que su forma de onda funciona correctamente.

Deberías ver algo como esto:

Fuente: enlace

Asegúrese de que no haya carga en el motor (estos motores no tienen cargas de torque muy altas)

Es posible que tengas que aumentar la velocidad del motor para que gire desde un inicio muerto.

Otra cosa que podrías intentar es ejecutar tu código y luego girar el motor a mano para ver si puedes hacerlo arrancar.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas