Operation Manual
An LED needs a current limiting resistor to protect it from burning out. Without a resistor, an LED will likely only work for a short time before failing and
needing to be replaced. Knowing a resistor is required is one thing, but it’s also important to pick the right resistor for the job. Too high a value and the LED
will be extremely dim or fail to light at all; too low a value and it will burn out.
To calculate the resistor value required, you will need to know the forward current of your LED. This is the maximum current the LED can draw before being
damaged, and is measured in milliamps (mA). You’ll also need to know the forward voltage of the LED. This latter value, measured in volts, should be 3.3 V
or lower—any higher, and the LED will require an external power supply and a switching device known as a transistor before it will work with the Pi.
The easiest way to work out how large a resistor is required is with the formula R=(V-F)/I, where R is resistance in ohms, V is the voltage applied to the
LED, F is the forward voltage of the LED and I is the maximum forward current of the LED in amps (with a thousand mA to the amp).
Taking a typical red LED with a forward current of 25 mA and a forward voltage of 1.7 V, and powering it using the 3.3 V supplied by the Pi’s GPIO port,
you can calculate the resistor needed as (3.3 – 1.7) / 0.025 = 64. Thus, a resistor of 64 Ω or higher will protect the LED. These figures rarely come out
to match the common resistor values as sold, so when you’re choosing a resistor, always round up to ensure the LED is protected. The nearest commonly
available value is 68 Ω, which will adequately protect the LED.
If you don’t know the forward voltage and forward current of your LEDs (for example, if the LEDs did not come with documentation or were salvaged from
scrap electronics), err on the side of caution and fit a reasonably large resistor. If the LED is too dim, you can revise downwards—but it’s impossible to repair
an LED that has been blown.
GPIO Output: Flashing an LED
For the first example, you’ll need to build a simple circuit consisting of an LED and a resistor. The LED will provide visual
confirmation that the Pi’s GPIO port is doing what your Python program tells it to do, and the resistor will limit the current drawn
by the LED to protect it from burning out.
To assemble the circuit, you’ll need a breadboard, two jumper wires, an LED and an appropriate current-limiting resistor (as
described in the “Calculating Limiting Resistor Values” sidebar). Although it’s possible to assemble the circuit without a
breadboard by twisting wires together, a breadboard is a sound investment and makes assembling and disassembling prototype
circuits straightforward.
Assuming the use of a breadboard, assemble the circuit in the following manner to match Figure 12-3:
1. Insert the LED into the breadboard so that the long leg (the anode) is in one row and the shorter leg (the cathode) is in
another. If you put the LED’s legs into the same row, it won’t work.
2. Insert one leg of the resistor into the same row as the LED’s shorter leg, and the other resistor leg into an empty row. The
direction in which the resistor’s legs are placed doesn’t matter, as a resistor is a non-polarised (direction-insensitive) device.
3. Using a jumper wire, connect Pin 11 of the Raspberry Pi’s GPIO port (or the corresponding pin on an interface board
connected to the GPIO port) to the same row as the long leg of the LED.
4. Using another jumper wire, connect Pin 6 of the Raspberry Pi’s GPIO port (or the corresponding pin on an interface
board connected to the GPIO port) to the row that contains only one leg of the resistor and none of the LED’s legs.
Be very careful when connecting wires to the Raspberry Pi’s GPIO port. As discussed earlier in the chapter, you may do serious damage to the Pi if
you connect the wrong pins.
Figure 12-3: A breadboard circuit for a simple LED output