Note: I wanted to point out that, even though my answer was accepted, the reader (you) should really read Anindo's answer first if you really want to save energy with any Arduino board. Once you address those items in your design, then you should read my answer and worry about how to set the MCU into low power mode.
Having said that, there are several ...
Realistically, the biggest power waster on an Arduino board is the linear voltage regulator on it.
As long as the microcontroller on the board, the LEDs, or any other peripherals, draw current, the linear regulator wastes power equal to difference between supply and board voltage x current drawn.
So, a first fix would be to disconnect the power indicator ...
The Arduino boards use a fair bit of power compared to other embedded systems with similar functionality.
There are three main factors:
The NCP1117 (datasheet) 5V linear regulator in the Arduino UNO
R3 (schematic) has a quiescent current of around 6mA.
The ATMega328P (datasheet) draws around 5mA @ 8MHz and 5V, and probably more than ...
Use a switching regulator such as the LM2596. You can get a ready board from eBay for about US$1.
Just set the output voltage to 5 V and feed the Vcc input of Arduino; this bypasses the onboard regulator.
The benefit is that unlike the linear onboard regulator, a switching regulator is very efficient which means less consumption and less generated ...
You could read through the 200-page datasheet, and then mess with some confusing bit shifts and registers, but I recommend this library: http://playground.arduino.cc/Code/Enerlib
Also, if you're using an Uno or any one with a usb-to-serial chip, you could disable that or remove it.
Once your project is working and you need to deploy to "production" environment, you can opt to replace the Arduino with a bare meta ATMega328 or any of the ATTiny family chips. This will get rid of all the power eaters on the Arduino board you don't need.
Arduino board of 9V block battery - 56 mA
ATTiny85 bare on 8 MHz without sleep modes etc - ...
This would be better answered on Stack Exchange Electrical Engineering.
Also see this question and answers. This is not quite the same and the answers there are OK but less than complete or correct, but it adds to the resource available.
You need a battery charging controller, a PV (solar) panel capable of producing somewhat more than maximum battery ...
Yes, if you want to wake an ATMEGA (the chip in the Arduino) spontaneously (no outside trigger) from Power Down mode at periodic intervals, the you will need to rely on an interrupt generated by the watchdog timer, which has a maxim timeout of 8s.
Your goal should be to wake, increment and check the timer, and get back to sleep as quickly as possible since ...
The Arduino Uno is not really designed for that. Simply keeping the power indicator LED, regulators and extra circuits on for a week will require in the order of 1500-2000 mAh (10*24*7=1680mAh). That is without any application at all on the MCU.
Now it is possible to modify the board and reduce this extra power requirements to less than 1 mA and as low as ...
Can I use a I/O as (input/supply) GND?
You can use an I/O pin as a supply for another (low power) device, but
you should power the Arduino itself from its Vcc and GND pins.
I could use the reset button, but would it still give me "random
You will likely see the very same sequence every time you reset it.
There are ways around this:
I'm not surprised you can smell burning. You have the power supply connected backwards.
You see that little + and - symbol next to the ON/OFF jumper? That's the polarity of the two runs of pins. You have the + row connected to the - rail of your breadboard (blue) and the - row connected to the (red) positive rail.
Turn the power supply around 180° and ...
So... turned out what was happening was all in code. Turns out that I was initializing an interrupt on INT0, when it was low, at the very beginning of my code. Problem was that when it started up on 3V backup power, INT0 was always low because INT0 is tied to the 5V line (it's how it knows to go to sleep). Because INT0 was low and the interrupt was ...
Yes, charging a battery and supplying an Arduino at the same time is possible as long as we manage the caveats (see below) of in-circuit charging.
This is what I use:
a 3.3V Arduino (a Pro Mini in my case),
a regular Li-Ion battery,
a charging controller that supports constant voltage (CV) and constant current (CC) charging,
optionally, a 6V solar panel.
Not only can you share the grounds - sharing the grounds is required for there to be any form of meaningful circuit for signals to get around the place.
To copy-and-paste a blog post I wrote some time back:
A lot of the time on the Arduino forums we get questions regarding wiring things together. One common format is:
I want to connect my 12V powered ...
There is an even greater article on this topic: http://www.gammon.com.au/power
It shows how to reduce your power usage for the Uno from about 50mA to 350nA (0.000350mA) - at this point, you need to factor in the natural drain of batteries.
Also, I have had good success with a project that was activated by a pushbutton, by using a latch - the push button ...
What connects the resistor to the LED?
It's hard to work out which holes the LED is plugged into, but I think your current circuit looks something like this:
You need to connect that resistor and LED together.
For your edit:
Now your circuit looks like this:
Behind the 5 pins in that column with the ground wire there is a big chunk ...
An ammeter is basically a small resistor in series over which the voltage drop is measured. That resistance will play a part in the effective output impedance of your power source (battery).
This increased impedance will reduce the overall amount of current the battery can provide before the voltage drops to an unacceptable level.
For instance, I just did ...
You need a voltage divider with resistors that have large values.
...but with all values I have tried one resistor almost melts as soon as you connect to battery.
This suggests that you have been using values that are too low.
So lets go through the calculations to select good resistor values.
1/4 Watt resistors are common and easily available so I ...
Exactly what is happening and why cannot be determined based on the amount of info provided. However, I see at least one potential problem which would at least partially explain the symptoms described.
You said that you are using diodes to select the voltage supply, and one supply is a 3V battery. If you are using standard diodes that drop ~0.6V then the ...
Switching off power to the board only makes sense if you're using a full Arduino. Once you strip the Arduino down to the bare MCU and decoupling capacitors (or start with a basic breakout board instead), disabling unused peripherals and sleeping the CPU has much more of an effect since you no longer need to supply power to an external monitor chip.
There are two constraints here, and I think it might back you into a corner. Size and then power.
2Kbyte/s is 2*60*60*24/1024 = 168.75Mbyte/day. This is a lot. The only readily available technology that can be used with a small microprocessor that can store this volume of data is an SD card. There are no serial EEPROM or flash chips this large, and the ...
... won't the ADC reference voltage constantly be dropping with the battery?
Yes, which is why you either use or measure an internal bandgap reference instead.
Use the analogReference() function to select a reference appropriate for the board in use. Note that you will need to use a voltage divider to reduce the battery voltage to a value below that of the ...
To make sure all pins are responding you could put all your pins as input with internal pull-up except pin 13 which must be set as output. The on board led is connected to pin 13, so when you put pin13 high it will turn the led on. Connect every other pin 1 by 1 to the GND to see if the led is toggling once you've connected a pin to the GND.
Try to use this ...
The datasheet says:
The first ADC conversion result after switching reference voltage
source may be inaccurate, and the user is advised to discard this
Then you could try to take each reading twice, looping over four ADC
Read bandgap with Vcc as reference, discard the value.
Re-take the same, keep the value.
Read A1 with 1.1V ...
You're overthinking it. Use one or more solar panels, a harvesting IC with sufficient storage, and the bare MCU and peripherals. Use enough panels and storage to run the MCU and peripherals 24/7, and to also charge the storage during the day.
(1) A simple method
BEST method is to use a proper charger - they are not high cost if you look around and doing it properly extends precious battery life.
Next best in this context is my "better" method in 2. below.
BUT, given the system you say you are using now, the following very simple method will greatly improve your result and ave your battery ...
I made a Temperature and humidity sensor - battery powered in 2013. It is powered from 3 x AA batteries, and lasted, as I recall, until a couple of months ago before I changed the batteries. That is, almost two years.
It logs to an SD card every 15 minutes. You could change that interval of course, it would probably not last as long logging every minute.
You will definitely not get a week out of a 9V cell - they have very small capacities (and are expensive relative to other types of cell).
Your Uno already has a regulator in it and this regulator wastes a certain amount of energy converting between different voltages. I'm certainly no expert, but from what I've gleaned over the last month or so of owning ...
Seeing as you want to use a 12V battery, you should try an external motor controller. You would essentially connect the Arduino to the controller, then the external battery and motor to the controller. Dimension Engineering makes several high quality motor controllers that are compatible with Arduino and can handle the voltage (like this controller). The ...
There are two things you need to measure the battery of the system that is doing the measuring of the battery:
An analog-to-digital converter
Some form of fixed voltage reference to compare the battery voltage against.
Some ESP8266 modules have a single analog input available, and some don't. You need to check which module you have and which pins are ...