Blinking LED using GPIO pins of RaspberryPi

Hope that you should have gone through the initial raspberry pi setup as given in our previous tutorials : – )
Raspberry Pi 3 B+ have a total of 40 GPIO pins

Above image properly mentions pin configuration of the Raspberry Pi 3 B+, now explaining it briefly –

  1. Voltage Pins – Two 5V ( pin 2 and 4 ) pins and two 3V3 ( pin 1 and 17 ) pins are present on the board, as well as a number of ground pins i.e 0V ( pin 6,9,14,20,25,30,34 and 39 ) which are unconfigurable. The remaining pins are all general purpose 3V3 pins, meaning outputs are set to 3V3 and inputs are 3V3-tolerant.
  2. Outputs – A GPIO pin designated as an output pin can be set to high (3V3) or low (0V).
  3. Inputs – A GPIO pin designated as an input pin can be read as high (3V3) or low (0V). This is made easier with the use of internal pull-up or pull-down resistors. Pins GPIO2 and GPIO3 have fixed pull-up resistors, but for other pins this can be configured in software.
  4. More – As well as simple input and output devices, the GPIO pins can be used with a variety of alternative functions, some are available on all pins, others on specific pins.
    1. PWM (pulse-width modulation)
      • Software PWM available on all pins
      • Hardware PWM available on GPIO12, GPIO13, GPIO18, GPIO19
    2. SPI
      • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    3. I2C
      • Data: (GPIO2); Clock (GPIO3)
      • EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
    4. Serial (UART)
      • TX (GPIO14); RX (GPIO15)

You can also visit : for more detailed Information

Blinking LED using GPIO pin –

Step 1 – Connections

Here we will be using GPIO 21 or pin no. 40 to make the LED blink. Ground ( 0V) at pin 39 will be used to provide ground with a resistance ( 270,330,1k ohm )  in series to LED. Make connection by referring the Diagram below –

Step 2 – Writing Python code on Python 3(IDLE)

  • Open Python 3 (IDLE) in your Raspberry Pi

  • Now Create a new file. And add the code import RPi.GPIO as GPIO # Importing GPIO library
import time
LedPin = 40 # Defining pin40 as LedPin

def setup():
 GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
 GPIO.setup(LedPin, GPIO.OUT) # Set LedPin's mode is output
 GPIO.output(LedPin, GPIO.HIGH) # Set LedPin high(+3.3V) to turn on led
def blink():
 while True:
  GPIO.output(LedPin, GPIO.HIGH) # led on
  time.sleep(1) # keeping it in previous state for 1 sec
  GPIO.output(LedPin, GPIO.LOW) # led off
  time.sleep(1) # keeping it in previous state for 1 sec

def destroy():
 GPIO.output(LedPin, GPIO.LOW) # led off
 GPIO.cleanup() # Release resource

if __name__ == '__main__': # Program start from here
   except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
&nbsp; &nbsp;destroy()<code></code>

Save the code as

  • Now open the terminal and type sudo python , such command is used to run any python file via terminal
  • You can press “Ctrl+C” to stop the program.



About the Author

Abhishek Thakur, Embedded Systems Enthusiast

Related Post

Submit a Review

Display Name