[SOLVED] Controlling ATX power on switch with 3.3V Arduino

Hi Arduino experts,

I would like to power-up my PC using this Arduino-based GSM board: http://imall.iteadstudio.com/im120411004.html
My idea is to call the board which then triggers the PS_ON switch of the ATX power supply or shorts the respective POWER pins on the mainboard.
Unfortunately, the voltage on this pin is +5V according to the ATX specs while the board mentioned above works with 3.3V only. Hence, I doubt that I can simply connect the PS_ON pin and switch it to low when a call comes in as the high voltage (5V) would immediately burn the board even if there is a pull-up resistor (2K to 4.7K) present in the ATX power supply.

Is there any easy way to ground the PS_ON pin on a 3.3V board ?
As I am not too deep into electronics I hope that someone with experience in this field can recommend some components (e.g. specific material codes of an optocoupler / transistor / relay,...) to get this simple task done...

Thanks a lot !

FNW

I'd use an optocoupler for something like this. Simple to use and isolates the devices from each other.

A reed relay would also work.

If you share grounds a simple NPN transistor + base resistor might be enough (I'm assuming ATX the power
enable signal is switched to ground).

Wow, that was fast !
Thanks a lot your all the replies :slight_smile:

Unfortunately, I can't make sure that both Arduino board and PC mainboard share grounds, as the former will be powered by another circuit than the latter...
Hence, I guess an optocoupler might be a good idea as there are only minimal currents to switch (a few milliamps only as the 5V PS_ON line has a 2k to 4.7k pull-up resistor in the ATX power supply). As I am not used to these components, could someone who already used an optocoupler with a 3.3V Arduino board please name me a specific part number (like e.g. BC517C for a transistor) which will do the trick ?

My personal favorite would be a relay, but unfortunately I did not find one that can be triggered by just the 3.3V (and 50 mA) provided by this board. Once again: Does anybody know a specific part number of a simple relay which works at this low voltage ?

Thanks a lot four your efforts, folks - that's what I really like about the Arduino community ! XD

Naturally, I will also provide the full code here when the project is done - if anybody is interested...

It requires 16 mA at 3V.

MarkT:
If you share grounds a simple NPN transistor + base resistor might be enough (I'm assuming ATX the power
enable signal is switched to ground).

Yes, that works well. I have before now created a "soft" power switch using a couple of NPN transistors, a few buttons, and resistors. Yes, it just connects the power on signal wire to ground to activate the PSU. There is even a handy standby power line on the ATX PSU that supplies 5V if your current requirements are small enough (probably not with GSM).

@Shpaget:
Thanks a lot for the datasheets - this would meet the requirements, I guess. :slight_smile:

Doing some more "research" regarding optocouplers, I found out that Panasonic also has a "brand" called PhotoMOS featuring neat components like e.g. this one: Panasonic AQY210ST PhotoMOS Relay AQY210ST N/A N/A | Conrad.com
This might be even easier to handle as it does not get me the hassle of dealing with a parasitic inductivity and a corresponding flyback diode or interference suppression in general.
Did someone use one of these in a specific Arduino project, yet ?

@majenko:
Well, I am not perfectly sure if I won't run into problems when driving a transistor from a circuit that doesn't share ground with the circuit it controls...
But you are naturally right: A transistor would render switching even much higher loads easily possible. I am just not sure if a simple optocoupler would be even easier and more save as I always try to use as few discrete external components as possible to prevent extra sources of error.

An optocoupler is just a transistor whose base connection has been replaced by a photo-sensor, and an LED. You can do the same job as the transistor with any optocoupler. Just connect it between the signal wire and ground (at the PSU end) and drive it like any other LED from the arduino. All you need is:

  1. A cheap optocoupler
  2. A resistor

Perfect !
That's exactly what I had in mind :smiley:
I am just very unexperienced when it comes to electronic components, so please excuse my many questions...

Now, I ordered the aforementioned optocoupler - plenty of different resistors are still available in stock at home XD.

Although I guess I won't be able to actually start the project within the next two weeks, I will keep you updated as soon as all components have arrived and my schedule permits working on it.

THANKS A LOT to everybody who helped me out with this obviously very simple question !