In the first and second articles of the series 'Programming on Raspberry Pi with Python', we learned how to setup Raspberry Pi, configure WIFI and enable SSH.
In the third article, we created a python script to send the IP address of Raspberry Pi on reboot to a telegram channel and scheduled it in crontab.
Now is the time to start exploring the hardware side of Raspberry Pi. In this article, we will control the LED (light-emitting diode) via GPIO pins of Raspberry Pi by Python program.
Programming on Raspberry Pi with Python: Raspberry Pi Setup
Programming on Raspberry Pi with Python: WIFI and SSH configuration
Programming on Raspberry Pi with Python: Sending IP address on Telegram channel on Raspberry Pi reboot
We are using the Raspberry Pi 3 B+ model.
- Raspberry Pi 3B+
- Jumper wires
Understanding GPIO pins:
I strongly recommend you to visit https://www.raspberrypi.org/documentation/usage/gpio/ for better understanding the GPIO pins of your Raspberry Pi.
Alternatively, you can go to the command prompt of your Raspberry Pi and run the command
pinout which will present you a handy reference of GPIO pins.
You can refer the instruction card received along with canakit.
Let's connect the components together.
- Connect pin 36 ( we will refer pins by literal sequence number, here pin 36 is GPIO pin 16 in above pic) with the live/voltage row on the breadboard.
- Connect pin 6 (ground) with ground row on the breadboard.
- Now connect a 220-ohm resistor with live row and the positive terminal of the LED.
- Connect the negative/ground terminal with ground row of the breadboard.
- Use jumper wires for the above connections. Refer my hand-drawn diagram below for connections.
L and G stand for live and ground respectively.
Use below python code to control the LED.
import RPi.GPIO as GPIO
PIN = 36
GPIO.setup(PIN, GPIO.OUT) #LED output pin
GPIO.output(PIN, 0) #Turn OFF LED
GPIO.output(PIN, 1) #Turn ON LED
First we imported the
Since we will be dealing with pin number 36, lets define it in a variable
Set the mode to
GPIO.BOARD, which means we are referring pin number by their position on board.
Set the pin 36 to receive output.
Until loop is terminal, set the output to false/0/low on pin 36 and then sleep for 1 second. In next lines, set the output to true/1/high and then sleep for 1 second.
I clicked the below pictures to show LED in two states i.e. on and off. Look closely and try to figure out the connections.
LED Turned Off:
LED Turned On:
Try it out and if you are stuck anywhere feel free to comment.