Problem of Arduino sharing ground pin on Darlington array chip ?

Hi everyone.

First of all, thanks for all the help and advice forum members gave to me a couple of weeks ago regarding connecting an Arduino Uno to a Darlington Array chip in order to switch a set of small dc motors (each independently) on and off.

I'm pleased to say after taking on board the points raised and modifying the circuit accordingly the circuit worked first time and most importantly the Arduino's heart is still beating !

Now I have a related issue which I hope I can gain some more insight from forum members. I need to up the voltage and current on the load side of the darlington array chip because the 6V battery supply I'm using to power any one motor works fine when tested without the darlington array but when connected to the array the voltage drop reduces the torque of the motor to less than is useful for the movement I need.

I figure I only need to up the voltage a couple of volts to compensate for the voltage drop caused by the array and I don't expect this to cause a problem for the Darlington chip because I measured the current drawn by the motor and it was only 200mA and even with a few spikes I think I can limit this with a resistor to under the 500mA max rating of the Darlington array.

To be on the safe side (and becuase to me it appears easier to wire up the circuits separately) I am powering the motors as I mentioned by a separate battery on the load side of the chip and the darlington inputs from the Arduino 5V outputs.

My main worry however is that although these circuits are seemingly separate (in that there does not appear to be a complete circuit linking the supply of either to the other) they inevitably have to share the ground pin of the Darlington array chip and I'm worried that voltage-current spikes caused by the motors might somehow flow from the common ground into the Arduino. Is this the case ? Do I have to worry about the shared ground or are the circuits effectively separate ? I'm aware that the rating of the Darlington is 500mA (per output) but that the Arduino is 200mA in total and this is also why I am concerned about the shared ground.

Thanks in advance for any help in understanding this.

Placing a diode backwards across the motor will help reduce spikes, I stay away from motors but some people place a small ceramic across the motor (not entirely sure except protecting the electronics?)

The Darlington array ULN 2003A chip already contains 7 internal diodes. (One on each output) which via the shared common pin places these across each load.

Would this also limit current flow in the other direction. ie: The other side of the motors would be connected to the positive terminal of the battery and the negative side of the battery then to ground.

No problem. The current rating of the Arduino does not matter here, the darlington array current flows to the common ground, and the Arduino circuitry flows to the same common ground but one has no effect on the other. It's like two rivers flowing into one; neither has an effect on the other unless one circuit has so high a current as to cause a large voltage drop across the common ground wiring, which does not seem to be the case here.

It's like two rivers flowing into one; neither has an effect on the other unless one circuit has so high a current as to cause a large voltage drop across the common ground wiring

Thank you for the great analogy. It has helped me to understand the significance of current direction which is what I think I was mainly confused about before.

How do you calculate the voltage drop ? What would constitute a large drop ?

The current in the outputs of the darlingtons doesn't affect the voltage difference between base and emitter more than a fraction, and that's the only thing the Arduino can be affected by (unless there's a another connection between the circuits other than the array.)

Technically you can think of the darlington stage as a two-port device, the controlling port is base/emitter and connects to Arduino and takes a low current. The output port is emitter/collector and takes high current. Since they connect only at one point, the emitter, there is no direct route for current (current flows in a loop and you need two connections).

The properties of the darlington pair mean that the base current is orders of magnitude smaller than the collector current, and the base-emitter voltage is constrained.

Thanks for the very complete explanation. I think the reason I was finding this difficult to grasp is becuase the ULN2003A chip when it's drawn within a circuit usually only shows how the internal connections (topologically) relate to the pins but not spacially so that I could mentally map up the connections.

I just look at my circuit and see the battery from my motors connecting to the array ground and then the same array ground connecting to the Arduino ground. Not being sure how the array ground connects internally to the transistors was the source of my confusion and compounded by not fully understanding whether the direction of current flow made any difference.

I think I understand from your explanation the key point being that within the array the two circuits are 'effectively' isolated. Thank goodness for that ! I feel happy now :)

As far as calculating that voltage drop, its current (in amps) times resistance of the copper wire and copper traces in the circuit wiring ( in ohms). In your case that would be current times effectively zero unless your ground wires are too small. Not measurable by any instruments you're likely to have.

I could have stated this better. If i'ts properly wired the way I assume, with Arduino ground tied directly to the external power supply negative terminal, you only have the very small current needed to drive the darlingtons returning to your Arduino ground.

There are two wires that I have to the Arduino ground. One as you say from the negative terminal of the external power supply and one from the ground pin of the Darlington Chip.

The wire from the negative terminal of the external power supply I have connected to the ground pin on the darlington array chip. I had assumed this was necessary to complete the Darlington array collector emitter circuit.

The ground pin on the Darlington array chip I connect to the arduino ground which I assume is connecting the base - emitter circuit. In practise I am joining up the wire from the negative power supply terminal to the wire going from the darlington chip to the Arduino ground becuase the wire is short and its effectively joined to the pin anywhere along the wire.

I hope this is correct. As I said - it seems to work.

Sure, that works. As I understand your description, you might have one more wire than is actually needed, but it works.

you might have one more wire than is actually needed

You worried me there for a minute but reading back on what I said I have to confess my description is a little ambiguous. When I said I have two wires to the Arduino ground it would be more precise to say the wire from the battery terminal joins the wire from the Darlington ground pin and then they share a single wire to the Arduino ground. I said I had two wires to the Arduino ground because (as you know) both sides of the Darlington: The load side (collector emitter) has to return to ground and the Arduino side (base collector) has to return to ground. In practise, I have them meeting at the Darlingon chip ground pin and then they share the single wire to ground from there.

I figure there is the inevitable overlap between the two circuits becuase if I understand it correctly connection of the negative power supply of the load circuit has to complete the collector-emitter circuit which can only be physically made at the ground pin (or anywhere along the ground wire from that pin). On the base-emitter circuit (from the arduino 5v output) the darlington ground pin is the only return point for that circuit to the Arduino.

I only mention this because I can't see how I could use less wires.

Thank you for all the help. I hope I am understanding things correctly now.