:: Interfacing with Hardware ::
Design considerations and solutions for powering your projects
This page is new November 1st 2010. As it grows, the way the relevant material is split into categories will have consequences for years to come, and will ensure... or prevent... the page's success. Care, please?
Voltage: What your voltmeter reads. (Volts)
Current: How many electrons are flowing. (Amperes or "Amps")
Battery capacity: How many hours the battery can deliver a given current, if you start to discharge it from a fully charged state. Measured in "Ah" (Amp hours). Example: If a battery can deliver 200 mA (0.2 Amp) for 10 hours, it is a 2 Ah. Note that a battery is designed to deliver a voltage within a narrow band, and the current that arises when you connect a given circuit... when the battery is not yet into its "discharged" state... is determined by the resistance of the circuit.
For the precise reader: A "battery" may be one or more cells. A 1.5v "AA" "battery" is actually just a cell. A standard disposable 9v battery truely is a battery, consisting of a number of cells, internally. If your flashlight uses two 1.5v cells, it has a 3v "battery" consisting of the two cells. The underlying chemistry of a cell determines the voltage it produces. Each cell has its own internal resistance. When you connect a cell in a circuit the same current that flows through your device is flowing through the cell. That is why batteries get warm under load. As batteries deteriorate this resistance gets higher. A perfect battery would have zero internal resistance and be able to deliver any current into its load.
The cells in a battery can be connected in series and/or parallel. If you want more current, connect them in parallel. If you want more voltage connect them in series. Connecting cells allows you to have a battery with more potential difference (Volts) or current capacity (Ampere hours)than the individual cells.
Connecting cells together in a battery is not without problems. In series, failure of one of the cells will break the circuit. In parallel, dissimilar cells can cause inbalance in the current flowing through the cells which causes overheating.
(NEEDED HERE: Discussion of general principles of charging/ discharge, etc.... but remember that there are sections below for things specific to different storage options)
(NEEDED HERE: Discussion of calculating the current a particular system will draw, and how to minimize that demand)
(NEEDED HERE: Discussion of issues surrounding boosting a batteries capacity by adding cells in parallel, and boosting voltage by adding cells in series)
Catch your rabbit... You need a voltage source before you can do much else.
Beware: Some "wall-warts" (simple transformers to produce low DC voltages from high AC voltages) will produce voltages which are higher than the wall-wart says it will produce... sometimes so much higher that an Arduino's built in regulator cannot cope.
You can buy photo-voltaic solar panels of different sizes, design, capacity... and price!
Bigger panels may give you a higher voltage, or a higher current... you need to look carefully at the specs when buying.
See http://tomtor.blogspot.nl/2012/09/solar-powered-arduino-and-attiny.html for a description of solar powering your Arduino based projects.
These can be simple disposable batteries, or re-chargable batteries. The latter can be in standard forms, i.e. equivalent to common disposable batteries and removable from your project for re-charging in external units, or they can be permanently wired into more complex systems which have integral re-charging arrangements.
(More to be said here, or in the "power storage" section, on this subject!)
(Please discuss this sort of system in the "Power Storage" section)
You will often start with voltage from a source that is either consistently higher than your circuit needs, or is higher and variable. You "fix" this with voltage regulation. In a very simple scenario, you connect a disposable 9v battery (probably one of the (approx) 4cm x 2.5cm x 1.5cm units with two snap connectors on one end) to your Arduino, and the Arduino's built in voltage regulator takes care of reducing the voltage to a consistent 5v or 3.3v, depending on the sort of Arduino you have. The battery may be labelled "9v", but over it's lifetime, that will vary by more than the Arduino would like, even if the Arduino was designed for 9v, which it isn't. The 5v (or 3.3v) the Arduino needs must be quite close to the design voltage... but the regulator takes care of this for you.
There are ways to power an Arduino or clone without using a regulator built into the Arduino... but if you follow this course, you need to ensure that the voltage you supply stays between the design requirements of the Arduino.
Different voltage regulators "waste" different amounts of power in the regulation process.
In this section: First division is by type of storage. Within each section, please discuss pros and cons, and the details of how to charge each type of storage, and the general characteristics of the storage.
The "right" way to charge a battery depends on what sort of battery it is. And there are at least two basic schemes.
Under the first charging scheme, you use a set of cells until they are exhausted, remove them from the circuit, and re-charge them in an separate unit. Fine for some scenarios.
Under the second charging scheme, you leave the cells in the circuit at all times. From time to time, external power is available, and it is used to re-charge the cells while simultaneously supplying power to your Arduino and associated electronics. This is more likely to be what you want... but is more complicated to implement.
Some charging notes should be put in the sections for the different power storage alternatives. Some general information should be added here, e.g....
Over-charging: Some cells will be damaged if you continue to apply a charging voltage after they are fully charged. See the individual sections for which alternatives this applies to.
Over-discharging: Some cells will be damaged if you leave them connected to a circuit after they are dis-charged below a certain voltage. See the individual sections for which alternatives this applies to.
Memory: This isn't the problem it used to be. NiCad cells suffered, but later technologies don't.
Until this part of the Arduino playground is better developed, you might want to visit the Wikipedia article on trickle charging and float charging.
You can buy NiMH technology "batteries" (cells, actually) in the conventional form factors, e.g. "AA". The little "gotcha" that you need to know about is that these cells actually run at about 1.2v after only a brief burst of nearly 1.5v, which you only get if the load is light... and 4 x 1.2v is low enough to start making your Arduino unreliable. It really needs something closer to 5.0v.
But all is not lost! You can put 6 or 8 "1.5v" cells in series, and feed the resulting voltage to a voltage regulator between the battery and your Arduino... Many Arduinos expect you to give them something more than 5v to be regulated down to the 5v needed "inside" the Arduino. The downside of this "solution" is that is wastes some of the charge stored in the cells during the process of regulation.
N.B. You need a charger intended for NiMH cells if you are using them.
High power density, i.e. lots of Amp hours per gram of battery. Expensive compared to other options. Somewhat dangerous if not operated correctly. Use a charger designed for LiPo. Will be damaged by over-charging. Will be damaged by over-discharging.
Nuelectronics does a LiPo power pack specifically designed for 5v Arduinos. 1500 mAh. At 11/10: £15.50 Internal high accuracy charging circuits for battery. Internal protection circuits for overcharge, over-discharge, over-current. Can be charged from on-board mini-USB socket, or from external source, such as solar panel... also available from Nuelectronics. (£5, 80x60mm, 250mW at 50K Lux.)
Sparkfun also do LiPo chargers. (Here is a link to one of them.) Both the Sparkfun and Nuelectronics chargers seem to require human intervention to switch them between "being changed" (during which time they can't be used to power the project) and powering the project. A search for a way around this was under discussion at the Arduino Hardware Interfacing forum, Jan 2011.
You can monitor the actual state of charge (SoC) of a LiPo battery with a "fuel-gauge" IC, like the MAX17043.
The basis of many commercial UPS (uniterruptible power supply) products, for PCs, for burglar alarms. If you don't need a portable system, and just want to buy an "answer", this may be the one for you. So many wheels to be invented out there... why re-invent one that has been invented?
Speaking of not re-inventing wheels... The batteries used for portable power tools might perhaps be pressed into service for powering Arduino projects. This was discussed at the Arduino Hardware Interfacing forum, Jan 2011.
The following either needed to go in several of the sections above, or didn't quite fit any of them.
Uninterrupted power for your electronics. Automatically switches in between a DC input source (15-18V) and a SLA battery. The switching between the power sources is instantaneous, allowing uninterrupted device operation. The picoUPS-100 also has a built-in, two stage battery charger unit.
Designed for uninterruptible small/medium power PC operation, where “always on” operating is required.
Cost at 11/2010: $30 +p&p.