Is this a good way to have the Arduino auto shut off?

I want to cut power to the Arduino after a set time, and have it done automatically. It’ll be nice if there are mechanical switches that would literally open the circuit from the power source after a set time. (are there?)

However, someone else recommended this solution:

Here is their explanation:

You can use a circuit usually made up of two transistors, a momentary switch and a few resistors that will let you push the button to turn on power, and then your Arduino can keep track of the time and turn the power off after a delay. I’m not where I can draw right now, but basically you run all the power throught a P-channel mosfet with its gate tied to the input power rail through a high-value resistor (which keeps the mosfet turned off normally). Also connected to the gate is the push button to ground. And then another transistor, probably an NPN, also connects the mosfet gate to ground, but its base is driven through a resistor by an Arduino I/O pin.
So you push the button long enough for the Arduino to power up and turn on the NPN, which keeps the power on after you release the button. Then when the Arduino is ready, it just turns off the NPN and the power is shut off.

What do you guys think?


Why dont you try it ?

Or buy it from Pololu.

I believe the thread over at the other place also raises the issue of what the V+ power source is. If you use a 9V or whatever supply, or a separate regulated 5V supply, that circuit, or something like it, should work. But if you are powering via USB, you have to find a place on the Arduino where you can cut into the circuit and insert your shut-off mosfet. That might not be easy, depending on how tiny your Arduino is.