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.
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í.