How do I ground a 3.3V pin with digital I/O?

Hi all. I have an Intel motherboard that has uses a two pin system for a momentary-contact switch. One pin is pulled up high by a resistor to 3.3V and the other is ground. To power on the motherboard the 3.3V pin needs to be grounded for at least 50ms. I would like to control the ability to turn on the motherboard using the Arduino. What would be the best way to ground a 3.3V line using a digital I/O? Perhaps a small relay? Transistor? Any other ideas? Thanks.

Do you know what the value of the pull-up resistor is? You could probably just use a transistor from the 3.3V Pin to Ground (assuming that pin has a reasonable pull-up resistor attached to it). A transistor is a solid state button.

Thanks for the suggestion, James. I’m afraid I don’t know the exact value of the resistor, can’t find it in the datasheet. Regarding the transistor method (assumed NPN), would I then connect the 5V digital out to the base and the 3.3V to the collector and ground to the emitter? Any suggestions regarding the transistor I use?

Does the Arduino share a common ground with the motherboard?

What would be the best way to ground a 3.3V line using a digital I/O? Perhaps a small relay? Transistor? Any other ideas? Thanks.

If I was doing that I would use a small 5vdc reed relay. I like the galvantic isolation it would give between the PC and the Arduino Vs a transistor solution. The following relay is nice as it can be driven directly by an Arduino output pin (only draws 10ma) and includes an internal protection diode across the coil terminals (so be sure you identify the + and - coil terminals correctly).

http://www.allelectronics.com/make-a-store/item/RLY-541/5-VDC-SPST-N.O.-DIP-REED-RELAY/1.html

Lefty

Thanks retrolefty. I’m thinking about this relay as it would be easy to order: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=306-1062-ND

Does anyone know if I’ll need a transistor to power this relay, or would the digital out from the Arduino be enough? From this blog: http://jtoee.com/2009/11/connecting-relays-to-arduinos/ he is using 2N3904 to power his relay, however looking at the relay datasheet, it only requires 10mA. Is there something I’m missing or could he just power it right off of the microcontroller?

Also, when a relay’s coil current is rated at, say 10mA, does this imply the maximum current it can support?

Does anyone know if I'll need a transistor to power this relay, or would the digital out from the Arduino be enough? From this blog: http://jtoee.com/2009/11/connecting-relays-to-arduinos/ he is using 2N3904 to power his relay, however looking at the relay datasheet, it only requires 10mA. Is there something I'm missing or could he just power it right off of the microcontroller?

That relay will work fine. No need for a transistor with that relay as an Arduino output pin can supply 10ma with no problem continuously. You might consider adding a diode across the coil terminals for transient suppression. The relay used in that blog example, OMRON G5SB, has a 5vdc relay coil that requires 80ma of current which would require a driver transistor to use with an Arduino output pin.

Also, when a relay's coil current is rated at, say 10mA, does this imply the maximum current it can support?

A relay coil draws a certain fixed amount of current depending on it's coil resistance and the voltage wired to it, per ohms law. That is the coil acts like a fixed resistor of 500 ohms. That relay coil is designed to draw 10 ma when powered with 5vdc. This is independent of the amount of current and voltage the relay's contacts can support as that is a separate specification, up to 1/2 amp at 200 volts per the spec sheet.

Lefty

Awesome, thanks for the great explanation, much appreciated. If there was a way to +rep, I would.