Categories: Arduino Projects

Arduino HDD Motor Driving

 Old-style hard drives (not SSDs) use very good brushless BLDC motors. And it often happens that the propeller itself has burned out, but the engine works fine and it is a pity to throw it out. Brushless motors are more durable than conventional brushed motors because they do not have a commutator – brush commutator.

 

Arduino HDD Motor Driving
The Arduino outputs power the TIP122 transistors and drive the three phases of the motor. Each phase is controlled by its own microcircuit contact.

Usually a hard disk motor has 3 phases + 1 common = 3 phases with 4 wires. Use a multimeter to check the resistance at these four points of the measurement circuit. Common terminal + coil = 1 ohm. Coil + coil = 2 ohms.

Arduino motor control circuit

To remove the motor from the HDD case, simply unscrew all the screws. Some screws may be hidden under the label.

Then solder the extension wires. The connection to the Arduino is done according to the following scheme:

You need 3 digital contacts to send a signal, here are pins 2, 3, 4.

  • Controller components
  • 3 pieces resistors 1 kOhm
  • 3 transistors TIP122
  • 3 diodes 1N4004
  • 1 battery with voltage from 5 to 12 V

Connect everything as shown in the pictures.

There is a 22×8 bearing in the middle – it is not from a hard drive, it is just for comparison.

Arduino Source Code

The program can be like this, or you can develop your own, for example, with a smooth stop-start.

const int phase1pin = 2;

const int phase2pin = 3;

const int phase3pin = 4;

const int delayTime = 6000; // microsecs

void setup () {  

Serial.begin (9600);  

pinMode (phase1pin, OUTPUT);  

pinMode (phase2pin, OUTPUT);  

pinMode (phase3pin, OUTPUT);

}

void loop () {  

switchStep (1);  

switchStep (2);  

switchStep (3);

}

void switchStep (int stage) {  

 switch (stage) {    

 case 1:      

 digitalWrite (phase1pin, HIGH);      

digitalWrite (phase2pin, LOW);      

digitalWrite (phase3pin, LOW);      

delayMicroseconds (delayTime);      

 break;    

case 2:      

digitalWrite (phase1pin, LOW);      

digitalWrite (phase2pin, HIGH);      

 digitalWrite (phase3pin, LOW);      

delayMicroseconds (delayTime);      

break;    

case 3:

digitalWrite (phase1pin, LOW);      

digitalWrite (phase2pin, LOW);      

digitalWrite (phase3pin, HIGH);      

delayMicroseconds (delayTime);      

 break;   }

 }

For this motor, a voltage of 3.7 x 3 = 11.1 V was used from a 5400 rpm hard drive.Minimum cycle time = 1.3 ms, that is, it takes about 1.3 x 2.25 x 2 = 5. 85 ms for 1 rev. You can change the values ​​in the program.

Source: https://radioskot.ru

 

ahcene_diy

Recent Posts

How to make a portable speaker

You've all seen portable speakers becoming popular right now, but most of them are pretty…

2 years ago

UNIVERSAL BRUSH MOTOR DRIVER AND

UNIVERSAL BRUSH MOTOR DRIVER AND BLDC Introducing an overview of the BLDC motor driver circuit and…

2 years ago

DIY Automatic Sensor Hand Sanitizer

DIY Automatic Sensor Hand Sanitizer Automatic Hand Sanitizer Based on Distance Sensor (No Arduino Required)…

3 years ago

What is Arduino

What is Arduino Arduino is a convenient, flexible and easy-to-use open source electronic prototyping platform,…

3 years ago

Make Your Own Arduino Board

Make Your Own Arduino Board In this DIY Project, I will show you how to…

3 years ago

Wind generator from a gyro-scooter motor

WIND GENERATOR FROM A GYROSCOOTER MOTOR A solar power plant is good when there is sun. But…

3 years ago