GPIO (General Purpose Input/Output) zijn de 40 programmeerbare pinnen op de Raspberry Pi 5 die fysieke interactie met elektronica mogelijk maken. Ze sturen componenten aan (output, zoals LED's/motoren) of lezen sensoren uit (input). De Pi 5 gebruikt een nieuwe RP1-chip voor snellere GPIO-prestaties. De GPIO-header is het kloppend hart van je Raspberry Pi-projecten. Beginnend of gevorderde? Kennis van de pinout is cruciaal. Zo haal je het meeste uit je Pi !
Om een directe aansturing van de GPIO pins mogelijk te maken moeten we 'Raspbian' installeren.
Raspbian is de oude naam voor Raspberry Pi OS, het officiële, op Debian gebaseerde Linux-besturingssysteem (OS) voor de Raspberry Pi's (Bookworm). Om de pinnen aan te kunnen sturen is een GPIO package nodig (bibliotheek), zie hiervoor het document 'GPIO-package RPiOS.pdf'.
De pinnen kunnen worden aangestuurd via de programmeertaal Python. Hiervoor moet in Python een GPIO module (bibliotheek) worden geïmporteerd, zie hiervoor het document 'GPIO-module Python.pdf'
De Raspberry Pi 5 in combinatie met het Raspberry Pi OS en GPIO-aansturing via Python is zeer populair en vormt de standaard voor hobbyisten, educatie en prototyping.
Omschrijving 40 GPIO pins van de Raspberry Pi 5

Op de Raspberry Pi 5 bevindt de fysieke pin 1 zich in de hoek dichtst bij de SD-kaartlezer, aan de linkerkant van de 40-pins header
De twee nummeringsschema’s voor Raspberry Pi GPIO-pinnen.
Het begrijpen van GPIO-pinnummering is essentieel wanneer je met de GPIO-pinnen van een Raspberry Pi werkt. De Raspberry Pi ondersteunt twee schema’s
1) BCM-nummering
2) Fysieke pinnummering
die elk voor verschillende doeleinden worden gebruikt om naar de pinnen te verwijzen.
Fysieke pinnummering (Board Numbering)
De fysieke pinnummering verwijst naar de werkelijke positie van de pinnen op de 40-pins header van de Raspberry Pi. De pinnen worden opeenvolgend geteld van Pin 1 (linksboven) tot Pin 40 (rechtsonder). Dit nummeringssysteem is puur gebaseerd op de fysieke indeling van de pinnen.
Voorbeeld:
Pin 1: 3.3V voeding
Pin 2: 5V voeding
Pin 6: Ground (GND)
Pin 11: GPIO 17
Fysieke nummering is handig bij het aansluiten van componenten wanneer je een visuele handleiding of schema volgt.
Het weerspiegelt namelijk direct de fysieke positie van de pinnen op de header.
BCM-nummering (Broadcom SOC Channel)
BCM-nummering verwijst naar de GPIO-nummers die door de Broadcom-chip worden toegewezen aan elke pin,
gebaseerd op de interne SOC (System on Chip) van de Raspberry Pi. Deze GPIO-nummers komen overeen met de daadwerkelijke functionele kanalen op de Broadcom-processor.
Voorbeeld:
BCM GPIO 2 : Pin 3 (gebruikt voor I2C SDA)
BCM GPIO 3 : Pin 5 (gebruikt voor I2C SCL)
BCM GPIO 11: Pin 11 (gebruikt voor algemene toepassingen BCM GPIO 18: Pin 12 (gebruikt voor PWM)
BCM-nummering wordt meestal gebruikt in software, bijvoorbeeld bij het schrijven van scripts of programma’s
in talen zoals Python (met libraries zoals RPi.GPIO of gpiozero). De interne code en bibliotheken van de
Raspberry Pi herkennen pinnen doorgaans via hun BCM-nummer in plaats van hun fysieke positie.
Waarom zijn er twee nummeringssystemen?
De twee schema’s bestaan omdat ze verschillende behoeften ondersteunen:
Fysieke pinnummering: eenvoudig en intuïtief bij het fysiek aansluiten van componenten.
BCM-nummering: nauwkeuriger voor programmeren, omdat het de echte hardwareconfiguratie
en functies van specifieke GPIO-kanalen weergeeft.
Overzicht van de 40 pinnen op basis van functie.
Er zijn 12 voedingspinnen (Power Pins):
Deze pinnen leveren stroom aan externe componenten.Er worden 2 spanningen gevoerd, 3,3 volt en 5 Volt.
De 5 volt wordt direct geleverd volt rechtstreeks van de voeding van de Raspberry Pi.
Geschikt voor componenten die meer vermogen nodig hebben, zoals relais.
De 3.3 volt wordt door de Raspberry Pi 5 geleverd als een stabiele spanning.
Wordt vaak gebruikt voor sensoren en andere kleine elektronische onderdelen.
De GND (Ground)pinnen worden gebruikt om het elektrische circuit te sluiten.
De pinnen voor de 3,3v en 5v worden ook wel de "Plus" (+) genoemd (aanvoer).
De GND pinnen worden ook wel de "min" (-) genoemd (afvoer).
_______
Functie Pin # _ Aantal pinnen
5V 2 en 4. 2
3.3V 1 en 17 2
GND 6,9,14,20,25,30,34,39 8 ___
Totaal __ 12 __
Er zijn 28 GPIO pinnen, en die zijn als volgt ingedeeld, 6 specifieke functies en de algemene toepasbare pinnen:
______________ __ __
Functie Pinnen Omschrijving __ _ Aantal pinnen
UART 8 en 10 Universal Asynchronous Receiver-Transmitter 2
12C 3 en 5 Inter-Integrated Circuit 2
SPI 19, 21, 23, 24, 26 Serial Peripheral Interface 5
PWM 32 en 33 Pulse Width Modulation 2
GPCLK0 7 General Purpose Clock 1
PCM 12, 35, 38, 40 Pulse Code Modulation 4
EEPROM 27 en 28 Identificatiepinnen voor "advanced"toepassingen 2
Algemeen 11,13,15,16,18,22,29,31,36,37 GPIO Algemene toepassingen 10
Totaal aantal GPIO pinnen 28
Toelichting op de functies:
UART-pinnen (Universal Asynchronous Receiver-Transmitter)
Deze pinnen worden gebruikt voor seriële communicatie met andere apparaten zoals microcontrollers
of zelfs andere Raspberry Pi-borden.
TXD (Transmit): Pin 8 (BCM GPIO 14)
RXD (Receive): Pin 10 (BCM GPIO 15)
Ideaal voor communicatie tussen de Raspberry Pi en een ander apparaat via een seriële protocol,
bijvoorbeeld een GPS-module of een draadloze communicatiechip.
I2C-pinnen (Inter-Integrated Circuit)
Het I2C-protocol op de Raspberry Pi 5 GPIO wordt gebruikt voor communicatie met
meerdere langzamere apparaten via twee gedeelde lijnen.
SDA (Data-lijn): Pin 3 (BCM GPIO 2)
SCL (Kloklijn): Pin 5 (BCM GPIO 3)
Wordt vaak gebruikt om de Raspberry Pi te verbinden met sensoren zoals temperatuur-, vochtigheids- of druksensoren.
SPI-pinnen (Serial Peripheral Interface)
De Raspberry Pi GPIO-pinout bevat meerdere SPI-pinnen die snelle communicatie ondersteunen met
bijvoorbeeld displays, sensoren en SD-kaarten.
MOSI (Master Out Slave In): Pin 19 (BCM GPIO 10)
MISO (Master In Slave Out): Pin 21 (BCM GPIO 9)
SCLK (Serial Clock): Pin 23 (BCM GPIO 11)
CE0 (Chip Enable 0): Pin 24 (BCM GPIO 8)
CE1 (Chip Enable 1): Pin 26 (BCM GPIO 7)
Deze worden vaak gebruikt voor snelle datacommunicatie met apparaten zoals TFT-displays of hogesnelheidssensoren.
PWM-pinnen (Pulse Width Modulation)
Pulse Width Modulation (PWM) is een techniek waarmee de snelheid van motoren kan worden geregeld of LED’s
kunnen worden gedimd door de duty cycle van een signaal te variëren.
PWM0: Pin 12 (BCM GPIO 18)
PWM1: Pin 33 (BCM GPIO 13)
Deze pinnen worden vaak gebruikt voor het regelen van motorsnelheid, LED-helderheid of servo’s,
wat de veelzijdigheid van GPIO-functies in robotica laat zien.
GPCLK0 (General Purpose Clock 0)
Dit is een alternatieve functie van GPIO4 (pin 7) die een stabiel kloksignaal (frequentie) genereert
zonder constante softwarebesturing.
GPCLK0: Pin 7 (BCM GPIO 4)
Het wordt gebruikt voor externe timing van apparaten, zoals I2S-audio of sensoren,
en kan worden geconfigureerd op verschillende frequenties (vaak 19.2 MHz oscillator).
PCM-pinnen (Pulse Code Modulation)
Op de Raspberry Pi 5 staat PCM voor Pulse-Code Modulation. Dit is een interface voor digitale audio (bijvoorbeeld I2S).
PCM-CLK: Pin 12 : BCM GPIO 18
PCM-FS: Pin 35 : BCM GPIO 19
PCM-DIN: Pin 38 : BCM GPIO 20
PCM-DOUT: Pin 40 : BCM GPIO 21
Hiermee kan de Raspberry Pi communiceren met externe audioapparaten zoals DAC’s (Digital-to-Analog Converters) of microfoons.
EEPROM-identificatiepinnen
ID_SD (Data): Pin 27 (BCM GPIO 0)
ID_SC (Clock): Pin 28 (BCM GPIO 1)
Binnen de Raspberry Pi 5 GPIO-pinnen helpen deze EEPROM-ID-pinnen bij het identificeren van uitbreidingsborden.
Hierdoor kan de Raspberry Pi automatisch instellingen configureren wanneer een uitbreidingsbord wordt aangesloten.
GPIO Algemene toepassingen
Algemeen: Pin 11,13,15,16,18,22,29,31,36,37 (BCM GPIO5 en 6, GPIO 16 en 17, GPIO 22 t/m 27)
Deze pinnen fungeren als de programmeerbare fysieke interface waarmee de Raspberry Pi 5
kan communiceren met elektronische componenten in de buitenwereld.
PINCONFIGURTIE OP BASIS VAN BCM
__________
BCM Functie Pin-nummer
GPIO 0 EEPROM - ID_SD (Data): 27
GPIO 1 EEPROM - ID_SC (Clock): 28
GPIO 2 I2C - SDA (Data Line): 3
GPIO 3 I2C - SCL (Clock Line): 5
GPIO 4 GPCLK0 7
GPIO 5 Generiek 29
GPIO 6 Generiek 31
GPIO 7 SPI - Chip Enable 1): 26
GPIO 8 SPI - CE0 (Chip Enable 0): 24
GPIO 9 SPI - MISO (Master In Slave Out): 21
GPIO 10 SPI - MOSI (Master Out Slave In): 19
GPIO 11 SPI - SCLK (Serial Clock): 23
GPIO 12 PWM0: (motors, LED dim) 32
GPIO 13 PWM1: (motors, LED dim) 33
GPIO 14 UART - TXD (Transmit): 8
GPIO 15 UART - RXD (Receive): 10
GPIO 16 Generiek 36
GPIO 17 Generiek 11
GPIO 18 PCM-CLK 12
GPIO 19 PCM-FS 35
GPIO 20 PCM-DIN 38
GPIO 21 PCM-DOUT 40
GPIO 22 Generiek 15
GPIO 23 Generiek 16
GPIO 24 Generiek 18
GPIO 25 Generiek 22
GPIO 26 Generiek 37
GPIO 27 Generiek 13
Opmerkingen en aandachtspunten:
- Hoewel de Raspberry Pi 5 dezelfde pinout gebruikt als de Pi 4, worden de GPIO’s nu aangestuurd door de RP1 I/O-controller,
wat zorgt voor betere timing. Hiervoor is binnen python een nieuwe bibliotheek ontwikkeld. Dit is de gpiozero module, en vervangt de RPi.GPIO library.
- Pinout-diagrammen op de Raspberry Pi 5
Om een overzicht te krijgen van de GPIO-pinindeling rechtstreeks op je Raspberry Pi, kun je het ingebouwde pinout-commando gebruiken. Dit is een eenvoudige command-line tool die een visuele weergave toont van de GPIO-pinnen, inclusief hun nummers en functies. Elke Raspberry Pi GPIO-handleiding of Raspberry Pi 5-pindiagram zal aanraden het volgende commando uit te voeren voor referentie
In de bash-terminal:
/home/pi> pinout <enter>
******* GPIO-VEILIGHEID *******
- Vermijd bijvoorbeeld het aansluiten van 5V op 3,3V GPIO-pinnen. De Raspberry Pi werkt met een 3,3V logicaniveau.
Het aansluiten van een 5V-signaal op een van de GPIO-pinnen kan de interne circuits van de Raspberry Pi gemakkelijk beschadigen.
Controleer daarom altijd het spanningsniveau van de apparaten of sensoren die je aansluit.
Gebruik indien nodig een spanningsconverter om 5V-signalen om te zetten naar 3,3V.
- Beperk de stroom door 3,3V GPIO-pinnen
De GPIO-pinnen kunnen slechts een beperkte stroom verwerken:
- Ongeveer 16 mA per pin
- Totaal maximaal 50 mA over alle GPIO-pinnen
Gebruik altijd stroombegrenzende weerstanden (bijv. 330Ω tot 1kΩ) bij het aansluiten van leds of andere componenten.
Dit voorkomt dat er te veel stroom wordt getrokken, wat de elektronica voor het aansturen van de GPIO-pinnen permanent kan beschadigen.
- De 5 Volt aansluitingen (GPIO pinnen 2 en 4) zijn direct gekoppeld aan de 5V USB voeding.
In tegenstelling tot oudere modellen, heeft de Pi 5 geen vervangbare zekering op de voedingsingang, maar is deze direct verbonden.
Als je via de 5V-pinnen te veel stroom trekt of kortsluiting maakt, is er kans op het beschadigen van het moederbord.
De belasting die je maximaal kan onttrekken is bij de officiële Raspberry Pi 5 voeding 25W verminderd met het verbruik van de Pi 5.
De totale stroomsterkte wordt dus verdeeld tussen de Pi 5, de USB-poorten en de 5V GPIO-pinnen.
Aangezien de Pi 5 onder volledige belasting meer verbruikt dan zijn voorgangers (pieken tot wel 15W), is de stroom voor de 5 Volt pinnen dus minder.
Als er zo'n 10W overblijft, dan zal de maximale stroom op 2 Ampere komen, voor de veiligheid is het aan te bevelen daar onder te blijven.
Men kan ook overwegen een externe voeding toe te passen.
- Pas op voor kortsluiting
Een kortsluiting ontstaat wanneer stroom geen weerstand ondervind. Als bijvoorbeeld een +3V3 aansluiting onbedoeld in aanraking komt met de
(GND), kan er te veel stroom gaan lopen, wat hitteontwikkeling en mogelijke hardwarebeschadiging veroorzaakt.
- Gebruik de GND (Ground) correct.
Elke schakeling heeft een gemeenschappelijke massa (GND) nodig om het circuit te sluiten. Componenten niet op de massa aansluiten,
of de massa verkeerd aansluiten, kan leiden tot niet of slecht werkende schakelingen.
- Vermijd het aansluiten of loskoppelen terwijl de Raspberry Pi aan staat (hot swapping)
Componenten aansluiten of loshalen terwijl de Raspberry Pi onder spanning staat kan elektrische pieken of spanningsstoten
veroorzaken. Dit kan zowel de Raspberry Pi als de aangesloten componenten beschadigen. Het is daarom verstandig de
Raspberry Pi eerst uit te schakelen voordat je verbindingen maakt of verbreekt.
- Statische elektriciteit.
Als je een breadboard gebruikt om een elektrische schakeling te koppelen aan GPIO-pinnen, gebruik dan een antistatische mat, en een
geaarde polsband. Hiermee voorkom je dat eventele statische elektriciteit aangesloten componenten beschadigen.
- Wanneer je apparaten gebruikt die met hogere spanningen werken (bijv. 5V , 9V of 12V), moet je ervoor zorgen dat de
3,3V GPIO-pinnen van de Raspberry Pi niet aan deze hogere spanning worden blootgesteld.
- Trek niet te veel vermogen uit de Raspberry Pi, gebruik eventueel een aparte (externe) voeding/adapter.
De voeding van de Raspberry Pi heeft grenzen. Als je te veel stroom afneemt van de 5V- of 3,3V-pinnen,
kan dit leiden tot instabiliteit, herstarts of schade aan het bord. Zie hiervoor ook de opmerkingen hierboven bij de 3,3V en 5V GPIO pinnen.
Als er teveel stroom wordt gevraagd van de Raspberry Pi, bijvoorbeeld voor het aansturen van een (zware) speaker of motor,
dan kan er beter een externe voeding worden gebruikt, bijvoorbeeld de Breadboard voeding - 3,3V / 5V, of gewoon een externe adapter.
Voorbeeld:
