3
\$\begingroup\$

I would like to have a RTC alarm turn on my arduino at a specified time each day. I know that Arduino has good sleep modes but I'm concerned even with the quiescent power consumption from the voltage regulator due to feeding Arduino with 9V (this is my only option). My preference is to completely shut off the arduino board by removing all power to it.

So my thought is to use a RTC that has an alarm to somehow trigger the Arduino to turn on. I'm completely unfamiliar with MOSFETS and relays but I think these are options for my problem.

Does anyone have any suggestions?

\$\endgroup\$
  • 1
    \$\begingroup\$ This isn't a particularly well formed question (What has OP tried? What research has OP done? Would the RTC be running off the same 9V? A standard smoke detector sort of 9v battery or a boat 9v battery? Is there data logging being done? Is OP comfortable building circuits with discrete components?) but I am interested in the answer none the less. I hope OP edits and expands the question to include additional information so that the question gets a good and proper answer. \$\endgroup\$ – mikeY Jun 18 '13 at 20:11
  • \$\begingroup\$ How much is the quiescent current to the regulator? \$\endgroup\$ – pjc50 Jun 18 '13 at 21:58
  • \$\begingroup\$ @pjc50 I believe it is 10 mA when nothing is attached to it \$\endgroup\$ – Anonymous Penguin Jul 15 '13 at 22:28
1
\$\begingroup\$

Here is my solution for anyone who is curious. I have a DS1305 RTC running off a 3V coin cell and have the RTC's INT0 pin pulled up to 5V. INT0 is the alarm interrupt pin. This pin is at high impedance when the alarm time has not been reached and becomes a open drain when the alarm time has been reached (alarm is ringing). Because the INT0 pin is high impedance, it is consuming almost zero current. The 5V is being delivered from a MAX8881 ultra-low Iq regulator rather than the standard Arduino regulator. So for these two reasons, when the device is still sleeping it is consuming only a few microamps.

The next step is to use that alarm to wake everything up. Between my regulator and my main ATMega chip I have a p-channel MOSFET which has its gate connected to the RTC's INT0 pin. So when the alarm time is met, INT0 becomes a common collector bringing the p-ch MOSFET's gate to 0V thus closing the switch and allowing 5V to be delivered to ATMega.

\$\endgroup\$
1
\$\begingroup\$

While OP has already shown their answer, there are two other methods that can be used, both of which involve simply bypassing the existing regulator. Essentially, the highest current draw from a sleeping arduino is the inefficient LDO they use.

The first is by using a regulator with an active low enable pin. This uses the same open drain interrupt pin setup, but without the Mosfet. When the interrupt triggers, the regulator's enable pin is pulled low, and it allows the ATMega to start up.

The second is by simply using an efficient low quiescent current regulator in the first place. Most Arduinos use a 1A or higher ""LDO"" Linear Regulator, which wastes energy (Vin - Vout / Current), have high minimal current for regulation, and have high quiescent current. By know how much peak current your arduino will use, and then choosing a switching regulator to meet 130% of that, you will have longer battery life from both regulator efficiency and low quiescent current usage.

As it stands, OP went with a MAX8881, a 200mA LDO. Using the regulator efficiency formula
Efficiency = (Vout * Iout) / (Vin * (Iin + Iq)) * 100
we get
(5v * 0.2A) / (9v * (0.2A + 0.0000035A)) * 100 = 55.55% Efficiency

A LDO with a 4v input difference will be fairly inefficient. A typical 9v Alkaline battery is 500 mAH. So you will get roughly half of that wasted in heat. A switching regulator could raise that to 80~95%, a 40% increase.

\$\endgroup\$
1
\$\begingroup\$

MCP1702 is an example of a low dropout regulator with a quiescent current of 2uA. Combined with putting the Arduino into one of the low power sleep modes would keep your quiescent current to a few u-Amps. The fact that you want to run it once/day (relatively briefly, I assume) means your energy budget is mostly going for sleep maintenance; the run-time energy will be a small fraction of it despite the conversion inefficiencies.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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