RaspberryPi GPIO: Difference between revisions

From XPUB & Lens-Based wiki
 
(2 intermediate revisions by 2 users not shown)
Line 17: Line 17:
=26 pin (Pi 1)=
=26 pin (Pi 1)=


[[File:PI-GPIO26.png|400px]]
[[File:PI-GPIO26.png|300px]]


=Install=
=Install=
Line 25: Line 25:


See [https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/ RPi.GPIO Documentation]
See [https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/ RPi.GPIO Documentation]
or
pip3 install RPi.gpio
See [https://pypi.org/project/RPi.GPIO/ RPi.GPIO at pypi.org]


=Test: Writing to PIN=
=Test: Writing to PIN=
Line 37: Line 43:
* LED needs to have (220Ω) resistor, standing between its negative leg and 0Volts, in order to protect it from excessive current.
* LED needs to have (220Ω) resistor, standing between its negative leg and 0Volts, in order to protect it from excessive current.


[[File:Raspberry-Pi-GPIO-simple-led-circuit.jpg]]
[[File:Raspberry-Pi-GPIO-simple-led-circuit.jpg|300px]]




Line 61: Line 67:


=Links=
=Links=
https://pimylifeup.com/raspberry-pi-gpio/
* https://pimylifeup.com/raspberry-pi-gpio/
* Basic usage: https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/
* Working with inputs (a button for example): https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/
 





Latest revision as of 11:02, 22 March 2022

Raspberry Pi GPIO pins configuration

A 40-pin GPIO header is found on all current Raspberry Pi boards (unpopulated on Pi Zero and Pi Zero W). Prior to the Pi 1 Model B+ (2014), boards comprised a shorter 26-pin header

Pins

  • GPIO is your standard pins that simply be used to turn devices on and off. For example, a LED.
  • I2C (Inter-Integrated Circuit) pins allow you to connect and talk to hardware modules that support this protocol (I2C Protocol). This protocol will typically take up two pins.
  • SPI (Serial Peripheral Interface Bus) pins can be used to connect and talk to SPI devices. Pretty much the same as I2C but makes use of a different protocol.
  • UART (Universal asynchronous receiver/transmitter) is the serial pins used to communicate with other devices.
  • DNC stands for do not connect, this is pretty self-explanatory.
  • The power pins pull power directly from the Raspberry Pi.
  • GND are the pins you use to ground your devices. It doesn’t matter which pin you use as they are all connected to the same line.

40-pin GPIO

PI-GPIO40.png

26 pin (Pi 1)

PI-GPIO26.png

Install

To program the GPIO pins we needed to install the Python3 Rpi.GPIO library

sudo apt-get update
sudo apt-get install python3-rpi.gpio

See RPi.GPIO Documentation

or

pip3 install RPi.gpio

See RPi.GPIO at pypi.org

Test: Writing to PIN

In this small script we will write HIGH & LOW values to Pin 12.

And use a LED and a 220Ω resistor to see if GPIO is operating and expecting.

Connect according to the diagram, keeping in mind that the

  • LED has polarity:
    • long leg: positive
    • short leg: negative
  • LED needs to have (220Ω) resistor, standing between its negative leg and 0Volts, in order to protect it from excessive current.

Raspberry-Pi-GPIO-simple-led-circuit.jpg


#!/usr/bin/env python3                                                                                
import RPi.GPIO as GPIO
import time

LedPin = 4
GPIO.setmode(GPIO.BOARD)       # Numbers pins by physical location                                    
GPIO.setup(LedPin, GPIO.OUT)   # Set pin mode as output                                               

try:
    while True:
        GPIO.output(LedPin, GPIO.HIGH)
        time.sleep(1)
        GPIO.output(LedPin, GPIO.LOW)
        time.sleep(1)
except KeyboardInterrupt: # Ctl-C will interrup                                                       
    pass
GPIO.cleanup()  # clean resources used

Links