|
|
View previous topic :: View next topic |
Author |
Message |
loomix Guest
|
brushless DC motor control |
Posted: Mon Dec 28, 2009 4:37 pm |
|
|
Hello guys !
I need to develop basic piston motion.
- push piston forward
- wait cca 2 second
- push piston back.
The piston is connected to 5V DC motor.
Regarding on situation piston should move faster or slower.
For this project I was thinking to use some 5V brushless DC motor because there is no need of stepper motor.
My questions are :
- how to turn DC motor on or off ( simply by outputting output_high(somePin) ?
- how to switch "polarity" to get back and forward movement.
- is there any schematic on this ?
L. |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
Ttelmah Guest
|
|
Posted: Tue Dec 29, 2009 3:29 am |
|
|
Lets make some more comments though....
A BLDC motor, is _harder_ to control than a stepper.
Effectively a BLDC motor is just like a stepper motor, but instead of feeding basic 'on/off' pulses, you feed it synthesised sinusodal waveforms. You have these waveforms 'leading' the rotating armature, and adjust the amount of lead to vary the torque. Doing this implies you must detect the rotation, which is either done using a separate sensor, or by detecting the voltage on the undriven phase (one is undriven at any time). Complex code, needing a lot of processor performance, and quite a lot of external hardware.
The big advantage of BLDC, is the power you can get from a given motor size. Have one I'm driving here, using 40V at 10A, and it is only the same size as stepper motors developing less than half the power. Now, the code for this, took a couple of weeks of programming to get right, while I'd expect to be able to implement a stepper based solution in probably a day....
The application does not really sound like a good target for BLDC. It would be far easier to go one of the other routes:
1) Simple DC motor. Difficult to get good speed control, but cheap....
2) BLDC, with an external controller. Much easier to make, but costly.
3) Stepper. Second in price, only to the basic DC approach, and much easier to control.
I'd be looking at either a simple DC motor, and adding some form of speed sensing (slotted disk on the shaft perhaps, with an optical sensor), or a stepper for this. BLDC, is going to get complex.....
Best Wishes |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Tue Dec 29, 2009 9:03 am |
|
|
The most important reason to use a BLDC instead of a standard DC motor would be a lifetime requirement above 5000 or 10000 hours. I don't expect this for your application. A standard DC motor, with some means for position respective speed feedback - if required at all - is most likely the best solution. To use BLDC, also a suitable motor must be available. |
|
|
Loomix Guest
|
|
Posted: Sun Jan 03, 2010 3:23 pm |
|
|
Thank you for reply.
I think I will use stepper motor.
The idea is to create some low power consumption device capable of pushing/drawing cca 10 gram piston. The motor will be fully operational cca 12 hours per day and it will be running completely on created program. There will be no buttons or regulators. All this should be made by the program.
It's like some plug and play solution. You plug it and it runs.
I don't know how much power do I need for something like that but this can be changed later and it's not the main thing.
Where can I find the schematic for something like this ?
I found some projects on google but thats not what I need.
btw. I have picdem 2 plus so I can use any processor that can be supported by this development board. |
|
|
Ttelmah Guest
|
|
Posted: Sun Jan 03, 2010 4:07 pm |
|
|
There is not going to be any 'off the shelf' circuit, that will be exactly what you need. However there may be some solutions that get close.
Start with some questions:
Voltages available?. Only 5v, or are other supplies available?.
Peak currents available?.
How fast need the piston move?.
What is the travel?.
Is the connection direct, or via a worm?. If the former, does the motor have to _hold_ the piston in position, when not moving it.
How often is it going to have to move in the time?.
How big can the unit be?.
Is there any detection of the 'end point' of the travel, and/or would detection of position be needed, or could the movement be 'open loop'?.
One possibility slightly 'off the cuff', for example, is to consider using the core of a RC servo. The small high quality examples of these, contain tiny ballrace motors, of quality 'unmatched' for the price. They draw little power when not moving, and expect feedback from a pot contained in the unit. You could (for example), dismantle such a unit, connect the motor to the piston, with a worm drive, replace the pot, with a linear example attached to the piston, and then just control this with a pulse train from the PIC (hundreds of code examples for this here). 90% of the work would already be done for you. You could use a FET, to turn off the whole assembly, when not moving, if physical 'locking' of position was not required.
Similarly, but rather more expensive, there are off the shelf motor assemblies, designed to drive syringes, used in drug delivery systems on the market. Many are available as complete assemblies, but generally only in largish order quantities....
Small cheap motors in smaller quantities, are things like the ARSAPE AM1020. Only 6mm*9mm, with a lead screw attached, from FutureBot.
It is worth being aware of just how expensive motors can become, if you start to specify super high reliability, and environmental range. I have some only slightly larger bipolar 4 phase motors here, used as part of a 'critical' optical assembly, in a laser system, which cost over 500$ each, before the gearbox, and control is added...
Best Wishes |
|
|
FvM
Joined: 27 Aug 2008 Posts: 2337 Location: Germany
|
|
Posted: Sun Jan 03, 2010 4:12 pm |
|
|
I guess, that friction forces are higher than 10 g? Also some kind of transmission, e.g a crankshaft or screw
spindle is needed. You should have a rough idea of the required motor torque and speed, also if it can work
without an additional gear. For low torque and low up to medium speed, a stepper motor is the most easy solution
besides a simple brushed DC. |
|
|
Loomix Guest
|
|
Posted: Mon Jan 04, 2010 3:37 am |
|
|
Quote: | I guess, that friction forces are higher than 10 g? |
Yes, this is typing error. It's around 100 g.
Quote: | Voltages available?. Only 5v, or are other supplies available?. | The device will be connected to 12V@700mA rechargeable battery but i was not planing to use more then 5V.
Quote: | How fast need the piston move?. |
This is the tricky part. The piston move depends on few other factors but main movement could be described like this:
Time to the upper end - 1 second
Holding the piston in upper state - 2 second
Pull it down - 1 second
The final movement will be set after tests and it can be something like this:
Time to the upper end - 1 second
Holding the piston in upper state - 1 second
Pull it down - 1 second
or
Time to the upper end - 0.5 second
Holding the piston in upper state - 0 second
Pull it down - 0.5 second
Quote: | What is the travel?. |
The whole length of "piston cylinder" is 7 cm.
The piston travel will be cca 1.5 - 2 cm but it can be even smaller
Quote: | How often is it going to have to move in the time? |
It will run continuously for cca 12 hours.
Quote: | How big can the unit be?. |
This is not major issue. I was thinking something in range 13 cm high and 7-10 cm wide.
Quote: | Is there any detection of the 'end point' |
I will set detection point in the second prototype but this one has no end point detection. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|