Table of Contents
Lighting an LED
LEDs are delicate devices. If you put too much current through them they will pop (sometimes quite spectacularly). To limit the current going through the LED, you should always use a resistor in series with it.
Try connecting the long leg of an LED to the Pi’s 3V3 and the short leg to a GND pin. The resistor can be anything over about 50Ω.
The LED should light up. It will always be on, because it’s connected to a 3V3 pin, which is itself always on.
Now try moving it from 3V3 to GPIO pin 17:
The LED should now turn off, but now it’s on a GPIO pin, and can therefore be controlled by code.
Switching an LED on and off
GPIO Zero is a new Python library which provides a simple interface to everyday GPIO components. It comes installed by default in Raspbian.
You can switch an LED on and off by typing commands directly into the REPL. Click on the REPL button in the menu bar.
First import the GPIO Zero library, and tell the Pi which GPIO pin you are using - in this case pin 17.
In : from gpiozero import LED In : led = LED(17)
Press Enter on the keyboard.
To make the LED switch on, type the following and press Enter:
In : led.on()
To make it switch off you can type:
In : led.off()
Your LED should switch on and then off again. But that’s not all you can do.
About the import statement
from gpiozero import LED tells Python to pull in code from
the gpio library, which is code that has been written by someone else
and packaged so that you can use it easily.
In this case we are importing the LED class from that library. A class is a combination of variables (assigned values) and methods (things you can do with objects created from the class). An class is abstract which means that it doesn’t do anything until you give it’s variables some value. When we do that we say we ‘instantiate’ (create an instance/example of) the class to create an object which is can actually ‘do’ things.
When we say
led = LED(17) we are saying create an instance (object)
of the LED class that has a value of 17. For the LED class that means
that GPIO 17 is what the methods will act.
led.on() applies the method on() to the object led (which in
this case is means turn GPIO 17 on).
When we turn GPIO 17 on, it becomes a 3.3V power source and creates a circuit though the LED and resistor to ground.