Blink LED is a very first step for beginners. You can learn how to connect each electric component and control it with minimum numbers of components and a small chunk of code.
|Table of contents|
The necessary parts and tools are here. The selection of resistor depends on LED’s Vf (forward voltage). You can usually find the value on its specification/catalog.
|Red LED||1||Vf = 2.0 V|
|Breadboard jumper wire (male-female)||2|
1. GPIO pin layout
GPIO (General Purpose Input/Output) is an interface for Raspberry Pi to be connected with any external devices. Raspberry Pi 3 has 40 pins. Each pin is assigned different function. Wrong connection could cause failure. Thus you have to be careful when you connect your device with GPIO. The pin layout is not printed on the Raspberry Pi board. So this will be handy when you do electric works with Raspberry Pi 3.
2. Hardware setup
There are several ways to blink LED. Here is how I did. I cut the wire of the parts because they were a bit long to fit my breadboard. You have to be careful when you cut the wire of LED. Anode wire is longer than cathode. If you cut them in the same length, you will be confused. When you see this map, you may notice two important points: GPIO 25 and 330 Ω.
- GPIO 25
While LED cathode is connected to PIN#6 (GND), LED anode is connected to PIN#22 (GPIO 25). GPIO 25 is connected to SoC(BCM2837). SoC can control the output voltage of GPIO 25, either HIGH or LOW. It’s 3.3 V when it’s HIGH, while it’s 0 V when it’s LOW. You can put voltage on the anode by writing some codes.
- 330 Ω
This value is decided based on the forward voltage (Vf) of LED. It’s 2.0 V on my LED when the current is 20 mA. It could be broken if you put voltage larger than Vf. Thus you need to put a resistor to decrease the voltage. You can know how I selected a resistor below.
GND-GPIO 25 = 3.3 V
Vr (voltage put on a resistor): 1.3 V (3.3 – Vf: where Vf = 2.0 V)
When current flows in the circuit is 20 mA
R (resistance value) : 1.3/0.02 = 65 Ω
Thus, as far as you use a resistor larger than 65 Ω, it should be okay! But if your resistor is too large, LED will be very dark. I used 330 Ω and set up like this.
Here is the code. I use Python 2.7.12. You can run the program simply “Run”>”Run Module” from the editor cab stop it by pressing “Ctrl+C”.
import RPi.GPIO as GPIO
from time import sleep
#Use GPIO number instead of Pin number
#Make GPIO 25 output
#No error occurs when Ctrl+C is pushed.
This is my first work. It’s simple and easy but I still learned how I integrated H/W and S/W. I just needed to be careful when I connect the wired with GPIO to avoid wrong connection.
I referred a Japanese book. I’m afraid that most of people cannot read it. But you can still find the H/W setup in it.