Go Down

Topic: Proper way to provide a ground output from arduino UNO (Read 2501 times) previous topic - next topic


Jan 10, 2013, 08:51 pm Last Edit: Jan 23, 2013, 07:56 pm by cianide Reason: 1
I've been through a few iterations of trying to provide a single ground output on the arduino and I have had no luck. The main issue is that the output needs to have 0 resistance to ground. It is actually simulating a pull to ground on an already existing circuit on a car. It is a 5v pull-up from an ECU in the car. I simply need to pull the circuit down for about 500ms.

I have tried wiring it directly to the digital pin 3 with no success +100ohms
I have tried wiring it with a 2n2222 and it still has +60ohms
I have tried using a panasonic AQV259 and it has 60-120ohms depending on which leg I use.

All of them have too much resistance to trigger the circuit. I am not extremely familiar electrical components at this level. I know how to do this in a automotive world with relay (which is what I thought the transistor and the DC relay (AQV259) would accomplish for me).

Can someone please suggest a way to get a straight pull to ground with no resistance and very little current? I would appreciate it!


It might help if you were able to specify the voltage being sunk and what 'very little current' means in milliamps.

DigiKey.com lists eleven pages of surface-mount relays with coils of 5 V <30 mA and contacts rated up to 250VDC 500 mA.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


As I feared, yes this was a stupid question. For some reason I couldn't find those relays before. Thanks for the help.


I'm still having issues with this now. I edited the original post with more information.

I am not sure how many milliamps the circuit needs to be able to sink. It should be incredibly small in my mind since it is just trying to sink an internal 5v pull-up resistor circuit to ground.


I don't mean to be a pain with this, but if anyone can help I would greatly appreciate it.

Even if there was a page you could direct me to that explains this type of circuit I am trying to make I would be very grateful!


This is a good question.   I have a similar question.

I am supplying an arduino with an 8V power supply through the concentric plug.  Is it OK,  to have the ground pin of the arduino connected to the negative side of this power supply ?


I am supplying an arduino with an 8V power supply through the concentric plug.  Is it OK,  to have the ground pin of the arduino connected to the negative side of this power supply ?

I thought the neg of the plug was the ground?
Johannesburg hams call me: ZS6JMB on Highveld rep 145.7875 (-600 & 88.5 tone)
Dr Perry Cox: "Help me to help you, help me to help you...."
Your answer may already be here: https://forum.arduino.cc/index.php?topic=384198.0


I don't mean to be a pain with this, but if anyone can help I would greatly appreciate it.

You say you are trying to 'ground' an input to the ECU that has a 5V pull-up.  You say you need "zero resistance to ground" but that makes no sense in a digital logic circuit.  If the ECU uses 5V logic it should be sufficient to get the pin down to, say, 0.25V to ensure it is read as LOW.  WIth a fairly hard pull-up resistor of 1K Ohm you'd only need a contact resistance on the order of 50 Ohms to ensure the signal is read as LOW.

Perhaps the 'signal' is actually a 5V power line.  Get yourself a multimeter and measure the current coming through that pull-up resistor.  If it is delivering more than 20 mA then maybe it's not intended to be driven low.  If it is delivering less than 20 mA you should be able to connect it directly to an Arduino pin and drive it LOW as needed.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


Measuring the current was a great idea.

The circuit rests at 10 volts actually. It is only taking 2.4 ma to ground the circuit.

I don't understand why just grounding it with the digital pin won't work.


Okay - then pin is actually supplying 10V. And the Arduino is rated for 5V. Is the signal expecting a pulse? Or to be constantly held low? And how will the signal behave at 5V? Get a relay and drive it with the Arduino. You will get much more predictable behaviour.


If you connect a 10V signal to a 5V OUTPUT pin it will drag the signal down to 5V.  Perhaps that is triggering the signal continuously.  Try this:

Code: [Select]

const int signalPin = 5;

void setup() {
    pinMode(signalPin, INPUT);
    digitalWrite(signalPin, LOW);

void loop() {
    // ....

    pinMode(signalPin, OUTPUT); // Pull signal LOW
    pinMode(signalPin, INPUT);  //  Let pull-up pull the 10V signal HIGH

    //  ....

Note that you SHOULD NOT be using a 10V signal directly on an Arduino pin.  The NPN transistor SHOULD have worked if it was wired correctly.
Send Bitcoin tips to: 1G2qoGwMRXx8az71DVP1E81jShxtbSh5Hp


Ground is a thing which should be common to all the devices in the same circuit. What connection do you have to the Arduinos GND pin?



Thanks guys.

I ended up using the ground side of a pin that was connected to an LED circuit on the shield that I am using. The circuit is the same as the LED 13 from the Uno board.

The ground planes are sync'd through a connection at the car's OBD II port.

It is tested and working on the car now. I very much appreciate the help.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131