Basically, I want an Arduino to power up whenever a "creature" enters viscinity (at least within up to 3 meters).

I would really like this to be able to keep monitoring for at least 4-8 weeks, without having to replace batteries. I don't want to use more than 1 or 2 18650 Liion cells.

Couple of methods that I believe would work:

  • Changes in light-conditions.
  • Sound.
  • Small vibrations in the ground.

Approaches to conserve power:

  • Checking for changes in light at most every 30 seconds (boot the Arduino, and power off quickly).
  • Checking for 1 second for sound, every 10-15 seconds.
  • Vibrations in the ground using an accelerometer?

The ideal solution does not run the Arduino at all, unless a trigger causes it to run. When the Arduino starts, it will have to turn itself off again to resume monitoring mode.

What approach should I go for? I'm not very good with electronics, and would like to avoid configurations involving transistors, resistors and so on - unless stricktly required.

Is it possible/easy to wire an Arduino Pro Mini to run directly off a 3.7 V battery, bypassing any power hungry voltage regulators?

  • 1
    Is this a counter device you are seeking to construct? What will the arduino perform once triggered by creature and powered on? Is it practical to consider a solar charging system as an add-on, to keep your selected battery healthy during the desired period?
    – fred_dot_u
    Commented May 26, 2016 at 17:18
  • Many MEMS accelerometers can be programmed to generate a wakeup interrupt to a host MCU when a threshold is exceeded. In terms of power savings, you will need care to both hardware and software design. The simplest conservative power solution is indeed to run directly off the cell with no regulator losses, as that is in the allowable range for your MCU - but it may not be for the MEMS. Greater efficiency would be a well chosen switching regulator running the electronics near their minimum suitable voltage where consumption will be lowest. Watch out for voltages left across resistors! Commented May 26, 2016 at 17:21
  • 2
    I'd just go with a PIR sensor. I have my arduino check light levels every 250ms, and it runs for more that half a year on 2 AA batteries.
    – Gerben
    Commented May 26, 2016 at 18:31

3 Answers 3


For a truly low-power, Arduino-based, solution the following it's needed:


  1. Use a supply voltage and clock frequency as low as possible. The Arduino Pro Mini 3.3V @ 8Mhz board is a good starting point for a first project.
  2. Get rid of all the LEDs in the board. Their consumption is in the mA range, way too high.
  3. Get rid of the onboard regulator and replace it with a low quiescent current, low dropout regulator like the MCP1700. You don't need a switching regulator unless your Arduino spends most of the time awake and consuming a lot of current, which is a very unlikely scenario. The high quiescent current of switching regulators rules them out for this kind of applications.
  4. Select a low-power consumption sensor and signal conditioning circuitry. PIR and CMOS logic family 74HC are good technologies for this.
  5. The signal conditioning circuit must generate a level interrupt from whichever signal is delivered by the sensor. Timing elements (like capacitors) may be required for this. To be on the safe side, design it for a 100 ms resettable pulse.


  1. Install a low power Arduino library like this one. Use the ATmega328p power-down sleep mode.
  2. Write a interrupt service routine (ISR). This is the piece of code will deal with whichever needs to be done upon an interrupt event.
  3. Configure the interrupts as required. Note that only level-triggered interrupts can wake up ATmega328p from power-down sleep mode, as per its datasheet:

Wake-up sources

Here you can find really good information on the way to go low power.


What you want to do after the triggering is an important part of this design.

An Arduino platform is not necessarily the best choice for power sensitive applications. You identified one problem in your post: Linear regulators. What you are likely wanting is an efficient switching power supply to support a wide range of voltages as your batteries drain.

Many embedded processor have low power modes. Some are specially designed to reduce current draw down into the nA range when idle or sleeping. However, all such processors require special care when configuring for these deep sleep modes. That is to say, the application plays an important roll in deciding how to put a processor into such modes.

Supporting hardware is perhaps the most important aspect of a low power designs. Contributions from the most advanced low power processors can be wiped out if supporting hardware runs at mA ranges. A simple 10K pull up resistor will draw 0.5mA in a 5 volt circuit. The impact is meaningless in a mains powered application. But for long term battery operation is could means days of lost time.

All that said, there are resources for Arduino low power operation. Here is a low power library. You will have to decide if it is sufficient for you application. Or if you need to also investigate low power hardware solutions.


Rechargeable lithium batteries have great energy density but they also have some significant self-discharge, making a bad choice for low-power applications. Have a look on this Arduino "clone": https://talk2.wisen.com.au/product-talk2-whisper-node-avr/, which is designed to run from standard Alkaline batteries and consumes very little (under 4µA when sleeping).

For the sensors, you should look for smart ones. You can find some very sophisticated MEMs sensors which will produce interrupt based on thresholds. You normally use I²C interface to talk to those little devices.

For example, you could use something similar to this one for light sensing: http://www.vishay.com/optical-sensors/list/product-83462/. Although this is a proximity sensor, it also has thresholds for the ambient light as well as consumes very little current.

The most important is to design the solution to run at lower voltage (3.3V instead of 5V) and also use interrupts to wake-up everywhere. If you like to run a bare ATMega328p directly from a 18650 cell, make sure everything will be ok to run from 4.2V to 3.0V as you're not using any regulation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.