Make hard drive stepper motor run 7200 rpm

control systemstepper motor

I have an old hard drive (7200 rpm) motor like this:

enter image description here

I'm trying to make it run as fast as possible and I start with this code (arduino uno):

int pin1 = 2;
int pin2 = 3;
int pin3 = 4;

int delay_time = 100;

void setup() {
  pinMode(pin1, OUTPUT);
  pinMode(pin2, OUTPUT);
  pinMode(pin3, OUTPUT);
}

void loop() {
  digitalWrite(pin1, HIGH);
  digitalWrite(pin2, LOW);
  digitalWrite(pin3, LOW);  
  delay(delay_time);

  digitalWrite(pin1, LOW);
  digitalWrite(pin2, HIGH);
  digitalWrite(pin3, LOW);  
  delay(delay_time);

  digitalWrite(pin1, LOW);
  digitalWrite(pin2, LOW);
  digitalWrite(pin3, HIGH);  
  delay(delay_time);
}

The motor runs when delay_time bigger than 50 (it run very slowly of course), with delay_time smaller it just "vibrate". So how can I make that runs at 7200 rpm?

UPDATE:

I use other source and some transistors for motor, not use arduino pins.

Best Answer

In order to run BLDC motor efficiently you need to know rotor position in relation to the winding(s). For sensored motor you will read sensors, for sensorless ( like this one ) you'd have to somehow read back EMF from the non-energized winding. The open-loop drive is very slow and you won't get any torque.

To know more about BLDC drive read Microchip appnote AN885.

BTW, you should've saved the controller to which this motor was initially attached; it can be used "off label" -> http://mightyohm.com/blog/2009/08/diamond-chop-saw-part-2/

Related Topic