Arduino Forum

Forum 2005-2010 (read only) => Hardware => Interfacing => Topic started by: cxl2253 on Jun 25, 2008, 02:00 pm

Title: how to drive the cd-rom brushless motor?
Post by: cxl2253 on Jun 25, 2008, 02:00 pm
now i got one BLDC motor from my old cd-rom. The motor was 3 wires. Anybody can tell me how drive it using arduino?The motor have 13 pins,maybe it's diffcult to drive.Maybe i will have to cut the driver part from the origial . :D
Title: Re: how to drive the cd-rom brushless motor?
Post by: Franklin97355 on Jun 25, 2008, 11:30 pm
3 wires or 13 pins which is it? Perhaps a clear photo or drawing or part number will help.
Title: Re: how to drive the cd-rom brushless motor?
Post by: cxl2253 on Jun 26, 2008, 02:24 am
you can get it from an old cd-rom. it's used to rotate the cd in center of shield.
Title: Re: how to drive the cd-rom brushless motor?
Post by: Franklin on Jun 26, 2008, 04:29 am
Sorry, I don't have an old CDROM I care to tear apart.
Title: Re: how to drive the cd-rom brushless motor?
Post by: melka on Jun 26, 2008, 04:42 am
and every CD-rom drive don't have the same motor... we need more infos to be able to help you...
Title: Re: how to drive the cd-rom brushless motor?
Post by: cxl2253 on Jun 26, 2008, 05:22 am
just found BA6840BFS IC can driver the cd-motor with 3-phase . i cannot find the motor stype,it is nothing  about it,maybe i will detach it to see which pin is wire A,b,c ,whici is Hall 1,2,3, etc
Title: Re: how to drive the cd-rom brushless motor?
Post by: westfw on Jun 26, 2008, 08:50 am
There's a whole cult following in converting old CDROM 3-phase motors to high-power "outrunner" motors for model planes and such.  Rewind the stator, add stronger magnets, drive with a multi-amp ESC...
While there are many different motors, the principles of the three-phase motors which are usually there are the same, and you can learn a lot from the cult, even if you don't go to the extremes...  (the motor is the same before you start mods; just not as powerful.)

   http://www.rcgroups.com/electric-motor-design-and-construction-361/

This does mean that driving such a motor from an Arduino is relatively difficult; about comparable to driving a stepper motor.  Standard circuit is a half H-bridge for each of the three wires.  I'm still looking for a simple circuit that will do for light loads...

It ALSO means that one way of driving such a motor is to buy a cheap RC Electronic Speed Controller (http://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=6455&Product_Name=SuperSimple_10A_ESC), which the arduino can then drive as it would a servo...
Title: Re: how to drive the cd-rom brushless motor?
Post by: cxl2253 on Jun 29, 2008, 02:46 am
yes, now i found that it is diffcult to drive the BLDC, maybe  it is relatively easy to drive BLDC with sensor than sensorless . LBP6190 maybe meet the need if with hall sensor. But it cost nearly $2 more. Does anybody use arduino to drive BLDC without sensor ???
Title: Re: how to drive the cd-rom brushless motor?
Post by: kiwijor on Apr 10, 2010, 01:35 am
Hi, I have tried and found this Sketch useful for driving a Sensorless BLDC Motor.

Quote


// this uses the Arduino servo library included with version 0012

// caution, this code sweeps the motor up to maximum speed !
// make sure the motor is mounted securily before running.

#include <Servo.h>

Servo myservo;

void arm(){
 // arm the speed controller, modify as necessary for your ESC  
 setSpeed(0);
 delay (1000); //delay 1 seconds,  some speed controllers may need longer
}

void setSpeed(int speed){
 // speed is from 0 to 100 where 0 is off and 100 is maximum speed
 //the following maps speed values of 0-100 to angles from 0-180,
 // some speed controllers may need different values, see the ESC instructions
 int angle = map(speed, 0, 100, 0, 180);
 myservo.write(angle);    
}

void setup()
{
 myservo.attach(9);
 arm();  
}


void loop()
{
 int speed;

 // sweep up from 0 to to maximum speed in 20 seconds
 for(speed = 0; speed <= 100; speed += 5) {
   setSpeed(speed);
   delay(1000);
 }
 // sweep back down to 0 speed.
 for(speed = 95; speed > 0; speed -= 5) {
   setSpeed(speed);
   delay(1000);
 }
 setSpeed(0);  
 delay(5000); // stop the motor for 5 seconds
}  





I am building my Knowledge up to drive a large very powerful BLDC Motor.

Kiwijor 8-)
Title: Re: how to drive the cd-rom brushless motor?
Post by: retrolefty on Apr 10, 2010, 01:41 am
A lot can be learned reading a Atmel application docs on driving brushless DC motors:

http://www.atmel.com/products/AVR/mc/3p_bldc.asp?family_id=607

This app note looks very informative for sensorless applications:

http://www.atmel.com/dyn/resources/prod_documents/doc8012.pdf

Lefty
Title: Re: how to drive the cd-rom brushless motor?
Post by: westfw on Apr 10, 2010, 02:23 am
@Kiwijor: i assume that you also have a BLDC "speed controller" between the Arduino and the actual motor...  Driving a bare motor is a lot different.
(since such controllers are available for under $10 these days, I'm not even sure it makes sense to try to build discreet controllers any more.)
Title: Re: how to drive the cd-rom brushless motor?
Post by: kiwijor on Apr 10, 2010, 04:17 am
Hi,
I omitted to mention that didn't I, I bought a small motor and 20 amp ESC from Hobby City for experiment cost of both was under $20 I think.

I have a high Power BLDC motor that came from a Fisher and Paykel washing machine, and intend to construct a higher power ESC for controlling it, I also bought a serial Arduino Bd Kit, I've been involved in Electronics for many years, and enjoy tinkering.

My first Microcontroller used a 6801L which was a 1bit CPU with 2k of ram, back in 1980 it was the first of the modern CPU chips.

The F'nP' washing machine, built in 1984 was the first ever to use a BLDC computer controlled Motor, as an aside, it also makes a great Wind Turbine generator, turning out considerable energy.

Kiwijor.