0
\$\begingroup\$

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.

\$\endgroup\$
6
  • \$\begingroup\$ Microcontroller pins are not meant to drive motors, you need a driver device. You may also need a higher voltage depending on winding inductance. Are you sure that is actually a stepper, and not a BLDC motor intended for 3 phase sinusoudal drive between the windings? \$\endgroup\$ Jan 22 '15 at 4:01
  • \$\begingroup\$ @ChrisStratton: I use other source and some transistors for motor, not arduino pins :( \$\endgroup\$ Jan 22 '15 at 4:09
  • \$\begingroup\$ @ChrisStratton: I think a BLDC motor should has 3 wires out, but here has 4. \$\endgroup\$ Jan 22 '15 at 4:25
  • \$\begingroup\$ Watch this video. I think it is in Dutch, but there are english subtitles available (You have to enable them). youtube.com/watch?v=CMz2DYpos8w \$\endgroup\$
    – mkeith
    Jan 22 '15 at 4:49
  • \$\begingroup\$ Running HDD Motor using Sound Card of the PC youtu.be/R9Q1XrFZr5E \$\endgroup\$
    – user115627
    Jul 2 '16 at 8:22
2
\$\begingroup\$

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/

\$\endgroup\$
2
  • \$\begingroup\$ Thanks you very very much. So, for now, I know that's not a stepper motor :D, but why BLDC like this need a common wire (I mean what's common wire used for? - sorry for my bad english)? \$\endgroup\$ Jan 22 '15 at 5:38
  • \$\begingroup\$ I don't know - did you measure anything? \$\endgroup\$ Jan 22 '15 at 6:11
0
\$\begingroup\$

Not sure if BLDCs suffer from the same 'notch' phenomena as steppers, but I'd imagine so. If it's not your problem, it's an interesting thing to note. At certain driving frequencies near the resonant frequency of the motor, there will be some audible vibrations, and the motor may not even move - it will just sit there and rumble even though it is getting 'valid' signals. Having said that, you could be having any number of issues with this.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.