Use a ULN2803 to run a Stepper Motor

PLEASE SEE POSTS FROM 11/12/15 AND ON

You can not use this device in a H-bridge setup, because the output transistors can only work as a switch to ground.
It can not switch to the + voltage.
This is because it is an open collector design, with NPN transistors.

It would be no problem at all to parallel all 8 on-chip transistors, if you also parallel the inputs.
But that wont help you, as it still can not do what you want to.

Yoy must instead find a ready made H-bridge.
These are pretty common as Arduino shields at very low costs.
Look for the text H bridge - and look at the specifications.
The chips used are mainly :
HG7881
L9110S
L298N

Have a google look for datasheets on these chips.
I'm pretty sure you find something useful.

If you search on stepper motor driver, you are on the wrong track, as that would be ULN2803 or similar chips.

What voltage are you powering the H-bridge from?
Low Rds P-channel (for high side) and N-channel (for low side) MOSFETs would be good as you lose very little voltage across, leaving more to generate power in your motor.
If 5V is used then all parts should have Logic Level (<=4.5V) gates so a 5v Arduino can drive them directly, see attached.

While that chip is rated at 500mA per channel due to thermal considerations the whole chip can not sink more than about 650mA at any instant in time.

Could I use this setup with 4 ULN2803? I would parallel all of the inputs and outputs to achieve the max current of 2.5A listed in the datasheet (although it is listed as a negative, not sure why). Because the chips would not be on continuously (because I am running a stepper, each chip should only be on for 1/4 of the time), would I have any thermal issues etc with this?

electricviolin:
Could I use this setup with 4 ULN2803?

No you couldn't. Read reply #1 again.
You cannot drive a bi-polar stepper with a ULN2803 as a H-bridge. A H-bridge switches each end of each coil to +V and to 0V. A ULN2803 can only switch to 0V. No ifs or buts!
(A ULN2803 can only be used to drive a small, 'unipolar' stepper motor. Take note that the circuit you linked is for a unipolar stepper, not a bipolar.)

Edit: If your motor is 'unipolar', you don't need a H-bridge, by the way.

There's an IC that's like a PNP version of the 2803, the UDN2981 - so if you're using a bipolar stepper, that could be used, if the stepper was small.

However, that doesn't change the fact that they're crappy BJT transistors, with a fairly high voltage drop in their on state (IIRC, ~1.3v). Check the datasheet for specifics, and make sure that's acceptable for your application. Those chips get hot too, due to said voltage drop, if you're actually putting current through them.

IMO, they're not very impressive drivers. Their main appeal is they're so cheap and abundant (also, if you accidentally try to ground the supply with them, the chip will generally fail, not your power supply - this is one of the most common failure modes in pinball machines - something happens on the playfield that results in a supply getting connected to the switch matrix and blows the 2803 when it tries to ground it to read the matrix)

I would recommend a purpose built H-bridge if driving a bipolar stepper - or you could make your own with some N- and P- channel MOSFETs; either will work better than 2803's and 2981's.

As I said in my most recent post, it is a 6 wire unipolar

As I said in my most recent post, it is a 6 wire unipolar

Post a link to the datasheet for the motor specs.

Also, I suggest you take the time to research the H-bridge concept. You are not grasping the reasons explained why that chip cannot be used as an H-bridge. In addition , there are off the shelf H-bridges that would fit your application. IMO you are not prepared to "roll your own" H=bridge. Nine'll get you ten that you have never heard of shoot-through. Anyone who has never heard of shoot-through should not be building their own h-bridge. It can only end badly.

electricviolin:
As I said in my most recent post, it is a 6 wire unipolar

That post was not in this thread! Do you expect us to read your mind?

Your title in this thread was "Use a ULN2803 as an H-bridge", with no mention of what motor you had, so of course we assumed you had a bipolar motor.

And the answer was a resounding "No".

That changes e everything

raschemmel:
That changes e everything

Yep, the old XY. :slight_smile:
He asked the wrong question, should have posted his motor type and specs, then asked how to drive it.
Mind you, a 6-wire unipolar is also a 4-wire bipolar stepper.

You could in theory use 3 ULN2803's to make an H-bridge, one each for the floating
high-side switches and one sharing the low-side duties. But why would you do anything
that arcane if there's a better chip (there are many).

MarkT:
You could in theory use 3 ULN2803's to make an H-bridge, one each for the floating
high-side switches and one sharing the low-side duties. But why would you do anything
that arcane if there's a better chip (there are many).

Since he only wants about 1A per channel, even a simple L298N would suffice, or better still one of the cheap L298N-based modules from eBay. I bought one the other day - cost me all of $2.

Depends on the supply voltage - at 5V using any darlington driver is a bit like banging
one's head on the wall I think! At 12V its plausible, at 24V its not really an issue to use 2V

I certainly hope the OP wasn't planning on powering a unipolar motor from 5V. (unless it's one of those 5V little geared jobbies but even then he shouldn't use his arduino 5v for the motor.

MarkT:
Depends on the supply voltage - at 5V using any darlington driver is a bit like banging
one's head on the wall I think! At 12V its plausible, at 24V its not really an issue to use 2V

Can't argue with that. I usually take the Darlington's voltage drop into account automatically. Wouldn't even consider using the L298N on a 5V supply. MOSFETs are the only way to go in that case.

Ok - I am going to re clarify some stuff

This is an older thread that I started when I had a question about using a bipolar stepper with the ULN2803 as an H-bridge (which I now understand is not really possible).

I posted another sub question on this thread because it was related to using the ULN2803 with a stepper, however it is a 6 wire unipolar stepper this time.

Rather than using 1 IC to drive the stepper, I was thinking of using 2 ICs per coil to try to reduce the heat produced. This is a motor I pulled out of a label maker with no markings to find a datasheet. I don't know its voltage (but I'll assume 12V for now) and I don't know the current draw, which is why I would rather use more ICs for now on a breadboard just to be on the safe side.

Could I connect ALL the inputs of one chip together and ALL the outputs of that same chip together and use it as essentially a large single MOSFET? Therefore, I would have 4 ICs and 4 "MOSFETs"

Could I connect ALL the inputs of one chip together and ALL the outputs of that same chip together

Yes

and use it as essentially a large single MOSFET?

No it would always be a transistor with the Vsat of a darlington and all that entales for power dissipation.

If you do not know the specifications of the motor it is not likely that just applying a voltage is sufficient. Many stepping motors have very low resistance coils, ones that will saturate at about 1 to 3V. They are designed to be run off a high voltage with a chopping regulator ensuring the average current stayed within spec but the current got into the coils quickly enough for it to be able to step fast.

and I don't know the current draw, which is why I would rather use more ICs for now on a breadboard just to be on the safe side.

@electricviolin, the first step should be to measure the resistance of the coils. Then you will know how much current will be drawn per winding at a given voltage.