Driving Large Loads with the Arduino
- 1 Driving Large Loads with the Arduino
Driving Large Loads with the Arduino
This is a draft it still has a ways to go
( and with other micro controllers, the PIC ….. )
What are Large Loads
The Arduino has a bunch of output pins that can do things like light led's and provide signals to servo motors, but try connecting it to a hi fi loud speaker and not much happens ( although you may damage the Arduino forever ). For out purpose a large load is almost any load ( what you connect the output to ) that is too much for the Arduino. These methods for large loads fall into several different classes with some common features.
Ideas for Driving the Loads
In some sense anything that can be used to drive a large load is an amplifier, a device with a output bigger than its input. If you want loud sounds from a Arduino you can use some computer's amplified speakers, or a hi fi. There are some cautions, but it is pretty basic, for most audio amplifiers the arduino outputs are close to what these audio amplifiers expect as inputs.
In many cases a simpler amplifier will do, many of these fall in the category of a low side switch ( [|Transistor Low Side Switch ] ). Here is a schematic of one using a push button ( not useful for the arduino, because the arduino cannot press the switch ):
To be useful to the Arduino you need to replace the push button with something the Arduino can push:
- Transistor ( bipolar, but not too depressed )
- Transistor ( fet, field effect )
- Driver ICs
With a relay we have a simple adaptation of the push button switch but the “button” is pushed by an electro magnet. Often the electro magnet is itself a large load, but for some relays ( particularly ones called reed relays ) the drive may be within the capacity of the arduino. When the relay is a large load you can use a transistor low side switch to drive it. Here are some features of the relay that are either naughty or nice:
A relay can be set up where there is no electrical connection between the input circuit and the output circuit ( we call this isolating the input from the output ). This can protect both the input circuit and any person who might come in contact with the input circuit or other parts of it ( like control push buttons ) A relay can switch large currents and large voltages: 2 amps 120 volts is pretty easy, currents of 10's of amps and 100's of volts are manageable A relay can not switch too fast, 1 Hz ( one a second ) is pretty fast for most relays, Reed relays tend to be some of the fastest. A relay cannot switch too many times. A transistor might switch at 10 kHz for hours, reaching millions of switching in little time. There are relays called solid state relays that have no mechanical parts, generally they are electrically more like transistors, but configured so that they can be more or less drop in replacements for electro mechanical relays. Solid state diodes can also be fast. Relays use magnets so when turned off they have what is called and “inductive kick”, this can destroy the Arduino. A snubber diode can be used to deal with this. ( []) Relays are not cheap or small for small large loads, a transistor is a few cents ( at the low end ) relays tend to be larger and a few dollars. .
This circuit shows how to connect a relay with a transistor low side switch and a snubber diode, it is a partical circuit for many relays with the Arduino, it leaves out a few details like the values of the components and voltages ( [])
Transistor Low Side Switch
The following is for the old time standard bipolar transistor. This type of transistor is basically a current amplifier, it takes an input current and produces a larger output current, this output current is largely independent of the supply voltage so the transistor can switch large voltages as well ( not too difficult up to 100 volts ). The amplification of current can be a factor between say 10 to 1000 ( the later for so called darling ton transistors ). Here is the same circuit we have looked at for the relay, we are considering the relay as the large load.
Useful ( with simple circuits and common components ) for currents from a max of a few amps and voltages of 10's of volts. Can be very fast, into the Mega Hz. Can be very cheap at the low end. Small, simple. Some integrated circuit drivers like the are basically multiple transistor low side switches.
Transistor ( fet, field effect transistors )
Fet are not so much current or voltage amplifiers, but variable resistors whose resistance is controlled by a control voltage ( much like the voltage on a capacitor, no current is required once the capacitor – gate on a fet – is charged, substantial current is required to charge this fast ). We typically use these in either the on or off state, resistance of infinity ( in partice mega ohms ) and resistance of 0 ( in practice often a small fraction of an ohm ). Unfortunately many fets need voltages in the range of 10 volts, too much for an Arduino. To avoid this we use a special set of fets called logic level which can be switched to low resistance with voltages the arduino can deliver. The characteristic are similar to bipolar transistors hear we will contrast them to bipolar transistors.
Often have a lower voltage drop when turned on and therefore waste less power as heat Many other small technical differences we will skip. May be more susceptible to static damage.
Examples in projects:
any help here?
Is a bit of a specialized part, but is often useful ( again connected as a low side switch ) for controlling fairly large ( 100 or more volts ) voltages at modest currents. One application is EL wire switching.
Examples in projects:
There are all sorts of driver IC's so coverage here will, at least for awhile, be brief. A driver can use all of the parts above plus others.
ULN2803 OCTAL PERIPHERAL DRIVER ARRAYS eight NPN Darlington – drive 2 stepper motors, or 8 fairly heavy loads, max at 35 v and 500 ma