Raspberry Pi GPIO

Een rondleiding door de Raspberry Pi GPIO

In dit artikel

  • de pinnen
  • De GPIO
  • Stroom en aarde
  • Invoer-/uitvoerpinnen
  • I2C-pinnen
  • UART (seriële) pinnen
  • SPI-pinnen
  • DNC-pinnen
  • Extra: GPIO-nummeringconventies

De Raspberry Pi kan van alles zijn. Dat is een deel van zijn aantrekkingskracht. Je kunt de Pi gebruiken als een gewone pc, door randapparatuur aan te sluiten via de USB- en HDMI-poorten van het bord. Als je je wilt verdiepen in de technische aspecten van de Pi, richt je aandacht dan op de set pinnen langs de zijkant van de printplaat. Die pinnen zijn de sleutel tot het gebruik van de Raspberry Pi in IoT, robotica en andere projecten. De pinnen zijn niet zo intimiderend als je misschien denkt, als ze eenmaal zijn afgebroken en uitgelegd.

Een inleiding tot de pinnen van de Raspberry Pi

De term GPIO (General Purpose Input Output) is niet exclusief voor de Raspberry Pi. Input- en output-pinnen zijn te vinden op de meeste microcontrollers zoals de Arduino, Beaglebone en meer.

De GPIO met de Raspberry Pi is het lange blok pinnen in de linkerbovenhoek van het bord. Oudere modellen hadden 26 pinnen en huidige modellen hebben 40 pinnen.

U kunt componenten en andere hardwareapparaten op deze pinnen aansluiten en code gebruiken om te bepalen wat de componenten doen. Het is een belangrijk onderdeel van de Raspberry Pi en een uitstekende manier om over elektronica te leren.

Na een paar softwareprojecten zul je waarschijnlijk merken dat je met deze pinnen gaat experimenteren, en je graag je code wilt mixen met hardware om dingen in het echte leven te laten gebeuren.

Dit proces kan intimiderend zijn als je nieuw bent bij de Pi. Aangezien één verkeerde beweging je Raspberry Pi kan beschadigen, is het begrijpelijk dat het een nerveus gebied is voor beginners om te verkennen.

In dit artikel wordt uitgelegd wat elk type GPIO-pin doet en wat de beperkingen zijn.

De GPIO

Laten we eerst eens kijken naar de GPIO als geheel. De pinnen zien er misschien hetzelfde uit, maar hebben allemaal verschillende functies. Onderstaande afbeelding toont deze functies in verschillende kleuren.

Elke pin is genummerd van 1 tot 40, te beginnen in de linkerbenedenhoek. Dit zijn de fysieke pinnummers. Er zijn echter ook conventies voor nummering en abeling, zoals BCM, die worden gebruikt bij het schrijven van code.

Stroom en aarde

Gemarkeerd in rode stroompinnen met het label 3 of 5 voor 3,3V of 5V. Met deze pinnen kunt u stroom naar een apparaat sturen zonder dat u een code nodig heeft. Er is ook geen manier om deze uit te schakelen.

Er zijn twee stroomrails: 3,3 volt en 5 volt. De 3,3V-rail is beperkt tot 50mA stroomafname. Daarentegen biedt de 5V-rail de huidige capaciteit die over is van de voeding nadat de Pi heeft genomen wat hij nodig heeft.

Gemarkeerd in bruinzijn de aardpennen (GND). Deze grondpennen zijn een essentieel onderdeel van elk elektronicaproject.

5V GPIO-pinnen zijn fysieke nummers 2 en 4. 3.3V GPIO-pinnen zijn fysieke nummers 1 en 17. Ground GPIO-pinnen zijn fysieke nummers 6,9,14,20,25,30,34 en 39.

Invoer-/uitvoerpinnen

De groene pinnen zijn generieke invoer-/uitvoerpinnen. Deze kunnen eenvoudig worden gebruikt als in- of uitgangen zonder te botsen met andere functies zoals I2C, SPI of UART.

Deze pinnen kunnen stroom naar een LED, zoemer of andere componenten sturen, of ze kunnen worden gebruikt als invoer om sensoren, schakelaars of andere invoerapparaten te lezen.

Het uitgangsvermogen van deze pinnen is 3,3V. Elke pin mag de 16mA stroom niet overschrijden, zowel zinkend als sourcing. De hele set GPIO-pinnen mag niet meer dan 50 mA tegelijk overschrijden. Dit kan beperkend zijn, dus het kan zijn dat u bij bepaalde projecten creatief moet zijn.

Generieke GPIO-pinnen zijn fysieke nummers 7,11,12,13,15,16,18,22,29,31,32,33,35,36,37,38 en 40.

I2C-pinnen

De I2C-pinnen zijn in het geel. I2C is een communicatieprotocol waarmee apparaten kunnen communiceren met de Raspberry Pi. Deze pinnen kunnen ook worden gebruikt als generieke GPIO-pinnen.

Een goed voorbeeld van het gebruik van I2C is de populaire MCP23017 poortexpanderchip, die je meer input/output-pinnen kan geven via dit I2C-protocol.

I2C GPIO-pinnen zijn fysieke pinnummers 3 en 5.

UART (seriële) pinnen

De UART-pinnen zijn grijs. Deze pinnen zijn een ander communicatieprotocol dat seriële verbindingen biedt en kan worden gebruikt als generieke GPIO-ingangen/uitgangen.

Een gebruik voor UART is om een ​​seriële verbinding van een Pi naar een laptop via USB mogelijk te maken. Dit kan worden bereikt met behulp van uitbreidingskaarten of eenvoudige kabels. Het maakt een scherm of internetverbinding overbodig om toegang te krijgen tot uw Pi.

UART GPIO-pinnen zijn fysieke pinnummers 8 en 10.

SPI-pinnen

De SPI-pinnen zijn in het roze. SPI is een interfacebus die gegevens verzendt tussen de Pi en andere hardware en randapparatuur. Het wordt vaak gebruikt voor het koppelen van apparaten zoals een LED-matrix of display.

Net als andere kunnen deze pinnen ook worden gebruikt als generieke GPIO-ingangen/uitgangen.

SPI GPIO-pinnen zijn fysieke pinnummers 19,21,23,24 en 26.

DNC-pinnen

De laatste zijn twee pinnen in het blauw die momenteel zijn gelabeld als DNC, wat staat voor Do Not Connect. Dit kan in de toekomst veranderen als de Raspberry Pi Foundation de borden of software wijzigt.

DNC GPIO-pinnen zijn fysieke pinnummers 27 en 28.

GPIO-nummeringconventies

Bij het coderen met de GPIO heeft u de keuze om de GPIO-bibliotheek op twee manieren te importeren: BCM of BOARD.

De eerste optie is GPIO BCM. Dit is de Broadcom-nummeringsconventie. Het wordt vaak gebruikt in projecten en hardware-add-ons.

De tweede optie is GPIO BOARD. Deze methode gebruikt in plaats daarvan de fysieke pinnummers, wat handig is bij het tellen van pinnen. Je zult zien dat het minder wordt gebruikt in projectvoorbeelden.

De GPIO-modus wordt ingesteld bij het importeren van de GPIO-bibliotheek:

import RPi.GPIO as GPIO

Importeren als BCM:

GPIO.setmode(GPIO.BCM)

Naar belangrijk BORD:

GPIO.setmode(GPIO.BOARD)

Beide methoden doen hetzelfde werk. Het is een kwestie van voorkeur voor nummering.

U kunt GPIO-labelborden zoals de RasPiO Portsplus (afgebeeld) gebruiken om te controleren op welke pinnen u draden aansluit. De ene kant toont de BCM-nummeringsconventie. De andere toont BOARD. U bent dus gedekt voor elk project dat u vindt.

Leave a Reply

Your email address will not be published. Required fields are marked *