Maker Pro
Maker Pro

How to connect a stepper motor to a bipolar driver

Dear all,
I have a big problem to connect my stepper motor to a bipolar dirver.

On the driver I have several inputs including (pulse+, pulse-, direction +, direction -, enable +, enable -) etc.
And the outputs: motor phase A, and phase B.

Questions:
1) my motor has 6 wires. And I have only 4 inputs on my driver!! what should I do with the 2 other wires?
2) Can you please tell me if I can find a good tutorial to understand these connections?

Many thanks and bests regards
 
Two of the 6 wires will be center taps of 2 others. I.e. there are actually two center-tapped coils. Use an Ohmmeter to determine which wires are which, and then just ignore the center tap wires.

Bob
 
You can find the schematic of my connections in the file attached.
I left the common wires open (unconnected).
This is a summary of the code:


// ports direction = output
// all ports =0
// direction = 1

while (1)
:
enable =1
pulse=0
wait ()
pulse=1
wait ()
enable =0
:

This code send continiously pulses (because its in a while loop).
The wait() is about 100 ms. I changed it several times to see if it can help me to resolve my problem, but it did not.
This code set the enable to 1 at the begining of each iteration of the while loop. I think I have also tried to set it to 1 during the whole motor movement. but if I am not wrong did not resolve the problem.

So its a wrong way to do?
Bests regards
 

Attachments

  • connections.jpg
    connections.jpg
    32.9 KB · Views: 148
Updates from PMs:


Dear Sir,
Some times ago, I asked you a question about how to drive a stepper motor using a driver and a microcontroller:

https://www.electronicspoint.com/th...-output-frequency-of-pic.272380/#post-1639563

I am sorry to ask you again. But now I have problems with my connections.
I would like to aks you please if you can help me about how should I connect my motor to the driver and the microcontroller.


On my driver : I have inputs: Pulse+, pulse-, direction+, direction-, enable+, enable - (and some other inputs).
For outputs I have: motor phase A, motor phase B, motor phase A bar, motor phase B bar.
This is the data sheet of the driver:

https://www.electronicspoint.com/th...-output-frequency-of-pic.272380/#post-1639563


What I did : I connected the inputs of the driver (enable, pulse and direction )to my microcontroller, and the output to the motor (phase A : coil 1 and B: coil B)

My motor has 6 wires (3 for each phase), but I dont know what I can do with 2 of them!! because my driver has only 4 input for the motor.



With my microcontroller I do the followings:

- I set the direction with a PORT of the microcontroller : for ex: PORTBbits.RB1=1 // for reverse direction
- I enable the output with a PORT of the microcontroller for ex. PORTCbits.RC1=1
- I send step pulse with a PORT of the microcontroller for. ex PORTCbits.RC2=0 wait() and PORTCbits.RC2=1


With all these effor, I see that my motor receive some pulses, and I can sense a torque applied to my motor, but I can not see that it rotates!!!

Could you please help me, and tell me why.

I would like to thank you very much for your help.
Bests regards
Sounds like you are using the driver correctly..
The motor you have is a unipolar motor... and the driver is for a bi-polar motor.
You will need to look around a little to see if you can find some absolute facts about how to interconnect it.

Otherwise, you could omit the 'common' wire from each phase, and wire that to the stepper.
Do you have a multi-meter? You can always test the output of the stepper driver.
Dear Sir,
Again you gave me agood idea to better solve the problem.

Since you told me that my motor is unipolar, so I tried to connect each phase seperatly (first phase A connectd while Phase B unconnected, and then phase B connected while phase A unconnected) to my driver.
So I discovered that if I connect the phase A, the motor can move in the reverse direction, and not in the forward direction.
And if I connect the phase B, the motor can move forward and not moving backward.

My motor has 6 wires : 2 geen wires, 2 brown wires, and 2 blues wires. The blue wires are the common connection of the coil. So I did not use them at all.
Yes I have a multimeter. But for which purpuse.

Still I dont know how to connect my motor!

Many thanks again and bests regards
Is it possible that my supply voltage (and the current ) is not high enough?
Because on my driver I have a selector to choose the nominal cirrent for ex, 0.2 A, 0.5 A etc. And I see that for high currents my motor works (with both phase A and phase B) connected.
But at the same time my motor heats alot !
For supply I use 15 V , and current between 1-2 Amps



here is the data sheet of the driver:
http://www.acpd.co.uk/sei/s/1488/sonceboz sb9103 stepping motor driver datasheet.pdf
The motor heating is due to it not rotating...
The stepper driver outputs are two H-Bridges..

So.. The output will follow this pattern:
1) Phase A and Phase B positively energized
2) Phase A will reverse polarity.
3) Phase B will reverse polarity.
4) Phase A will return to original polarity.
5) Phase B will return to original polarity.

Steps 2 - 5 repeat indefinitely as the motor rotates forward.
Simply do the steps backward to reverse rotation.
This is what I was hoping you could confirm with the multi-meter. (To make sure that every time you send a new pulse to 'step' that it goes to the next listed step above)
While you are testing, enable should always remain high. The direction should remain stable and only toggle when you want to reverse rotation. Neither one of these pins get sent 'pulses'.

To avoid damaging the motor, use a lower voltage and decrease the speed at which you are sending 'step' pulses.

You can wire your motor a couple of ways : http://fab.cba.mit.edu/classes/863.12/people/dsawada/images/w14-diagram.jpg

If you can, please start a new thread and we can continue from there, or lets resume in the thread you already have.
That way any information can be shared to others who may be in your situation.
Dear Sir,

I tried to check the output of the driver using a multimeter.
My driver has 4 inputs for the motor: Phase A, phase A bar, Phase B, Phase B bar.

I can detect voltage changes on PhaseA and Phase B inputs. But I have no indication of voltages for Phase A bar and phase B bar. In fact the multimeter show the value "OL" for these two inputs.
Could it be a reason for not fucntionning?



Ok from now I ll try to publish on the forum directly.
Many thanks
That is awkward... if Phase A is high, Phase A Bar should be 0V. They should always be opposite to each other. If Phase A Bar is high, Phase A will be 0V... Do your readings change if you send a step pulse? That's what I'm interested in.
When you start a thread, let me know, and I'll quote our PMs over to it.
In fact the Phase A Bar and phase B bar are always at "OL" state on my multimeter.
Yes I see a difference when I send "step" pulses. But only on Phase A and phase B and not phase A bar and phase B bar.

I really dont know what is the problem. The connections should be OK:

Driver supply = 16 V, GND
Input of drivers= enable +, direction+ and pulse + connected to ports of the microcontroller
enable -, direction - and pulse - connected to the ground
Output of the driver = Phase A, A bar, B , B bar connected to the motor. the common wires unconnected.


Could be the code which is not good?
This is the resume of the code:

// port direction = output
// all ports =0
// direction = 1

while (1)
:
enable =1
pulse=0
wait ()
pulse=1
wait ()
enable =0

:

I am completely lost beause it seems to be an easy problem but for me does not work!!
Again many thanks
How long is the 'wait()' ?
Is the code meant to only send one pulse?
When you set enable to 0, it will turn the driver off... so if you plan to send more than 1 pulse, the enable should be left set at 1 until you are done making the motor move.
Can you provide a picture and/or diagram for how you have connected things?

((lets move this to a forum post instead of a PM))

Thank you for the diagrams
 
Top