Easy Project 19b Raspberry PI Zero W board - blinking LED

of Acoptex.com in Raspberry Pi Zero W

Raspberry basics: Project 19b

Project name: Raspberry PI Zero W board - blinking LED

Tags: Raspberry, Raspberry PI Zero W board, vers 1.1, v 1.1, blinking LED, LED, blink, RPi.GPIO library, time library

Attachments: blinkled1.py

Raspberry Pi
Monitor or TV
HDMI cable
USB keyboard
USB mouse
Power supply
8GB SD card

In this project, you needed these parts (Dear visitors. You can support our project buy clicking on the links of parts and buying them or donate us to keep this website alive. Thank you):

1. Raspberry PI Zero W board 1 pc

2. Micro SD card with NOOBS and SD card adapter 1 pc

3. Micro USB power supply (2 A 5V or 5V 3A) 1 pc

4. USB keyboard 1 pc

5. USB mouse 1 pc

6. TV or PC monitor 1 pc

7. HDMI cable 1 pc

8. T-Cobbler Breakout and GPIO Cable 1 pc

9. Micro USB 2.0 OTG Cable 1 pc

10. Mini HDMI to HDMI Adapter (HDMI to Mini HDMI Adapter) 1 pc

11. 4-Port USB 2.0 Hub 1 pc

12. Breadboard 1 pc

13. LED1 pc

14. Resistor  1pc (220 Ohm)

15. Jumper cables F-M, M-M


We will learn how to program your Raspberry PI Zero W board to make an LED blink.

Understanding the LED

Semiconductor light-emitting diode is a type of component which can turn electric energy into light energy via PN junctions. According to its wavelength, semiconductor lightemitting diode can be categorized into laser diode, infrared light-emitting diode and visible light-emitting diode which, called light-emitting diode for short, is usually known as LED. When we supply 2V-3V forward voltage to an LED, it will blink if only forward currents flow through the LED. Usually we have red, yellow, green, blue and color-changing LED which can change its colors with different voltages. LEDs are widely used due to its low operating voltage, low current, luminescent stability and small size.

LEDs are diodes too. Hence they have a voltage drop which usually varies between 1V-3V depending on their types. Likewise, LEDs usually can emit light if supplied 5mA-30mA current, and generally we use 10mA-20mA. So when an LED is used, it is necessary to connect a current-limiting resistor to protect the LED from over-burning.

The operating voltage of the LED is 1.8V and the operating current is 10mA-20mA. The Arduino Uno board can supply 5V or 3.3V power. We will use 5V for this project, so the minimum resistance of the current limiting resistor should be (5 V to 1.8 V)/20 = 160 Om. The 220 Om offered in the kit is suitable and you can also choose other resistors that meet the condition. The larger the resistance is, the dimmer the LED will get.

Understanding the Raspberry PI Zero W board

You can read more about it here.

Signals and connections of the Raspberry PI Zero W board

There are two ways you can connect your LED to the Raspberry Pi Zero W board.
1. The anode of the LED is connected to GPIO0 (Physical Pin 11) through a 200 Ohm current limiting resistor. The cathode of the LED is connected to the GND Pin. The GPIO Pins will act as source and provides with 3.3V when it is activated.
2. The anode of the LED is connected to the 3.3V supply pin of the Raspberry Pi Zero W board through the 220 Ohm resistor. The cathode of the LED is connected to GPIO0 (Physical Pin 11). The GPIO pin acts as the sink (GND).

Step by Step instruction

We recommend using a high-performance SD card for increased stability as well as plugging your device into an external display to see the default application booting up.

1. Setup and preparation

We assume that you have Windows 10 installed on your PC and Raspbian OS installed on your Raspberry Pi Zero W board. 

  1. Do wiring.
  2. Insert your micro SD card with Raspbian OS into the TF card slot on the Raspberry Pi Zero W board. It will only fit one way.
  3. Connect Raspberry PI Zero W board mini HDMI port to your TV or Monitor HDMI (DVI) port (use HDMI cable and mini HDMI to HDMI adapter and/or HDMI to DVI adapter).
  4. Make sure that your monitor or TV is turned on, and that you have selected the right input (e.g. HDMI/DVI,  etc).
  5. Plug in micro USB 2.0 OTG Cable to USB data port of Pi Zero and 4-Port USB 2.0 Hub to micro USB 2.0 OTG Cable. 
  6. Plug in your USB mouse and USB keyboard to 4-Port USB 2.0 Hub.
  7. If you intend to connect your Raspberry Pi Zero vers 1.2 or vers 1.3 to the internet, connect a WiFi dongle to one of the 4-Port USB 2.0 Hub ports.
  8. Connect Micro USB power supply to Raspberry PI Zero board micro USB input.
  9. The Raspberry PI desktop will start up.
  10. Open Terminal window and type the command: sudo apt-get update
  11. Then type the command: sudo apt-get install 

2. Installing Vim Editor

  1. Let's install Vim Editor for writing the Python Program. Vim is a Command Line Editor and is a very simple and easy to use text editor. 
  2. Open Terminal window and type the command: sudo apt-get install vim

  3. Now open a blank Python file using Vim editor with the file name being blinkled1.py. For this, use the following command: sudo vim blinkled1.py
  4. After opening the blinkled1.py file, copy the blinkled1.py code and paste it there. Since it is a Python code, you need to be careful with the Tab characters as it is important to group the instruction as blocks in Python.
  5. Save the blinkled1.py file. Press ESC button, type :wq! and press Enter button to close the Vim Editor.
  6. In terminal type the command: sudo python blinkled1.py

  7. If everything goes well, your LED should blink at an interval of 1 second i.e. one for one second and off for the other second.


In the Python program, first we have imported two packages RPi.GPIO and time. The package RPi.GPIO will help us in controlling the GPIO Pins of the Raspberry Pi.

The first important function of the RPi.GPIO Module is the setmode(). Using GPIO.setmode(), we can select either GPIO Numbering of the Pins or Physical Numbering. By using GPIO.setmode(GPIO.BOARD), we are selecting the Physical Numbering Scheme.

NOTE: For GPIO Numbering, you can use GPIO.setmode(GPIO.BCM).

The next function is the setup(pin,mode). This function will allow us to set the pin as either input (GPIO.IN) or as output (GPIO.OUT). In the program, I have set the ledPin as output by using GPIO.setup(ledPin, GPIO.OUT).

After setting the LED Pin as OUTPUT, now we need to set the state of this OUTPUT i.e. HIGH (GPIO.HIGH) or LOW (GPIO.LOW). For this, we need to use the function output(pin, state). So, in our program, we need to use GPIO.output(ledPin, GPIO.HIGH) for turning ON the LED and GPIO.output(ledPin, GPIO.LOW) for turning it OFF.

The last function is the GPIO.cleanup(). With the help of this function, we can make a clean exit from the program as it will clean all the resources that are used in the program.


We have learnt how to program your Raspberry PI Zero W board to make an LED blink.

Libraries in use

  • RPi.GPIO
  • time


  • Look for attached code on the begining of this project

Other projects of Acoptex.com
Medium Basics: Project 083w Sipeed Maixduino board - Using PlatformIO IDE of Acoptex.com in Sipeed Maixduino 08-08-2019
Medium Basics: Project 083e Sipeed Maixduino board - Uploading MaixPy of Acoptex.com in Sipeed Maixduino 04-08-2019
Medium Basics: Project 083f Sipeed Maixduino board - Using MycroPython of Acoptex.com in Sipeed Maixduino 04-08-2019

Published at 22-12-2018
Viewed: 1988 times