In an old printer I found a 3 phase hybrid stepping motor with an optical shaft encoder attached to it.
Does anyone know if Arduino can handle it and if there are any relatively cheap motor controllers to buy (or circuits to build) for this type of motor?
Thanks.
Its basically very like a brushless motor - you'll need 3 half-H-bridges to drive it. Do you have any specs / part number for it? Are the windings high or low resistance?
I think the only difference from standard brushless motors is the high number of poles.
There are 6 windings. Each 2 opposite windings are connected in series. Each winding has a resistance of 37 ohm.
I salvaged 3 okidata microline printers from an office and have three of these motors (thinking they might work in a cnc mill).
On the board they have the code OKI GKH-4. I have not yet been able to find a data sheet or other technical info.
Do you have further details on what kind of half H bridge might be needed and where I can get more info?
Thanks.
Are the three pairs of windings separate electrically?
Do you know the voltage its rated for?
robyc:
Do you have further details on what kind of half H bridge might be needed and where I can get more info?
The H-bridge is nothing special. The point of an H-bridge is to be able to drive current "both ways" into an output, that's it.
The Arduino can drive as many H-bridges as you have wires to hook up, but there may not be a library that can drive the particular device you want to drive. What you will need is different software, because the driving pattern of a three-phase motor is different from a two-phase (at a minimum, you're using 6 output wires instead of 4
At 37 Ohms, I would guess that those motors are 12V, 1/3A. But they could be 5V, 0.15A. Or anything else If you start with 12V, and run them for a little bit, you can see if they get extremely hot -- if so, immediately lower the voltage. Running a motor "too hot" for a little while usually isn't bad, it's when you get them too hot that they start failing.
Unfortunately I do not know the voltage the motor is rated for.
I do know it has three wires and that there are 3 pairs of windings in a star formation:
Wire n.1 --> V winding --> V1 winding --> connection to U1 and W1
Wire n.2 --> U winding --> U1 winding --> connected to V1 and W1
Wire n.3 --> W winding --> W1 winding --> connected to V1 and U1
I hope the above makes sense.
So I believe that at every x fraction of a second one wire needs to have positive voltage, one negative voltage and one neutral. And they alternate continuously to make the shaft turn?
I checked for info on half H bridges, Wikipedia has too many types and my book, robot bonanza, hardly talks about them.
I do have a controller for a brushless motor (like the one used to turn the propeller on model airplanes) I could try to use it but that thing turns fast... at least a lot more than what this motor was used for (positioning the printer head on an ink jet printer).
Any other bridge that can be adapted to work with arduino on one side and the motor on the other?
Thanks for the help!
robyc:
I do know it has three wires and that there are 3 pairs of windings in a star formation:
Wire n.1 --> V winding --> V1 winding --> connection to U1 and W1
Wire n.2 --> U winding --> U1 winding --> connected to V1 and W1
Wire n.3 --> W winding --> W1 winding --> connected to V1 and U1
Oh, that makes it harder Each wire needs to be drive-able to positive, neutral, or negative. That needs something "better" than an H-bridge.
Those motors are more like a 3 phase motor than a 3 phase stepping motor. Step sequence would look like this = Windings A B & C - A+ BC-, AB+ C-, B+ AC-, BC+ A-, C+ AB-, AC+ B-, back to A+ BC-, Would require 6 transistors, 3 high side, and 3 Low Side. (actually 9 tansistors, 3 for current, and 3 to drive the power transistors). A 3Phase Bridge.
Yes, you're right!
I was able to recuperate a part of the circuit board: there is an HA13412, for which the data sheet talks about it as a controller for brushless motors (max 35V 1Amp).
So I guess I need to go with a commercial controller.
Thanks for all the help.
Here is a solution I've been working with: http://jrkerr.com/boards.html. I've only used it for stepper and PMDC motors so far and I've not yet mastered its communication protocol so I have to use the auxillary Motion Basic chip to control it with an Arduino . Note that if you are able to build your own board there are a number of example circuits provided in the thorough documentation so you can buy the chip only and save a lot. The board uses an LM18200 h-bridge but it will work with any number of less expensive chips (L298, L293, etc. ). Jeffrey Kerr also provides very good email support. There is also a complete library for use with PIC microcontrollers which I'm sure could be ported to Arduino if you are a skilled programmer, something I'm still working on :).
Yankee:
The board uses an LM18200 h-bridge but it will work with any number of less expensive chips (L298, L293, etc. )
I don't think it will, because of the "three-phase brushless motor" part. It would be sad if the poster bought this part, and then it didn't work with his motor. Are you using it with a three-phase brushless motor, like described?
The chip will drive a single LMd18200 for a PMDC setup or 3 for 3 phase brushless. The L293 and L298 are double H-bridges so you only need two for the brushless.
I emailed jrkerr: their 3 phase motor controller works if the motor also has 3 hall effect sensors.
This motor has no sensors near the windings so i do not believe it would work (and it would be too expensive to buy it just to try it out).
That is rather unusual for a brushless motor designed for motion control to be without hall sensors. I guess they used the encoder to generate the commutation signals. Have you checked the encoder outputs to see if there are additional pins for the encoder? Here is an example of such an encoder: http://www.renco.com/fileadmin/files/Productinfo/RCML15_Datasheet_646770_06_C.pdf.
This is a very informative blog about 3 phase motor and controllers. This guy also has some interesting things to say about sensorless motor control if it helps.
http://blog.spingarage.com/my-approach-to-sensorless-motor-control
Check out page 9 of this pdf on sensorless motor control for three phase motors too.
"It is possible to determine when to commutate the
motor drive voltages by sensing the back EMF voltage
on an undriven motor terminal during one of the drive
phases."
-Ward Brown
Yankee, i must admit that most of the technical info on the motor you posted is beyond my level of comprehension. The motor i have has an optical shaft encoder just above the windings that controls movement quite precisely as it has at least 150 notches on it. With that type of precision it might not need hall sensors.
jaysettle, thank you for the info, it will take me some time to go through all that documentation (hoping i will understand enough of it to work on ), but i see it also suggests schematics for a controller...
tks for the suggestions.
There are 23 wires connected to the PCB:
- 3 for the three phase motor,
- 4 for the optical shaft encoder (within which there is also a resistor attached)
- 13 go towards what used to be the printer head
- 3 to mechanical switches and resistors that refer to the printer head (but for which I do not have full knowledge).
hello good day! im newbie in programming i want to ask help to all. . i am planning to make a 3 phase linear motor with the use of arduino mega and dual channel h-bridge motor please do help me to do this project
thank you!