En kraftfuld funktion på Raspberry Pi er rækken af GPIO-stifter (general-purpose input/output) langs den øverste kant af boardet. En 40-stifts GPIO-header findes på alle nuværende Raspberry Pi-kort (ikke udfyldt på Pi Zero og Pi Zero W). Før Pi 1 Model B+ (2014) havde kortene en kortere 26-stifts header.
Alle GPIO-stifter kan udpeges (i software) som input- eller output-stifter og bruges til en lang række formål.
Bemærk: nummereringen af GPIO-stifterne er ikke i numerisk rækkefølge; GPIO-stifter 0 og 1 er til stede på kortet (fysiske stifter 27 og 28), men er reserveret til avanceret brug (se nedenfor).
Voltages
To 5V-stifter og to 3V3-stifter er til stede på kortet, samt et antal jordstifter (0V), som ikke kan konfigureres. De resterende pins er alle 3V3-pins til generelle formål, hvilket betyder, at udgange er indstillet til 3V3 og indgange er 3V3-tolerante.
Outputs
En GPIO-pin udpeget som udgangspin kan indstilles til høj (3V3) eller lav (0V).
Inputs
En GPIO-pin udpeget som indgangspin kan aflæses som høj (3V3) eller lav (0V). Dette gøres lettere ved brug af interne pull-up- eller pull-down-modstande. Pins GPIO2 og GPIO3 har faste pull-up-modstande, men for andre pins kan dette konfigureres i software.
Mere
Selvom simple ind- og udgangsenheder kan GPIO-pins bruges med en række alternative funktioner, nogle er tilgængelige på alle pins, andre på specifikke pins.
- PWM (pulse-width modulation)
- Software PWM tilgængelig på alle pins
- Hardware PWM tilgængelig på GPIO12, GPIO13, GPIO18, GPIO19
- 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)
- I2C
- Data: (GPIO2); Clock (GPIO3)
- EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
- Seriel
- TX (GPIO14); RX (GPIO15)
GPIO pinout
Det er vigtigt at være opmærksom på, hvilken pin der er hvilken. Nogle bruger pin-etiketter (som RasPiO Portsplus PCB eller det printbare Raspberry Leaf).
En praktisk reference kan tilgås på Raspberry Pi ved at åbne et terminalvindue og køre kommandoen pinout
. Dette værktøj leveres af GPIO Zero Python-biblioteket, som er installeret som standard på Raspberry Pi OS desktop-image, men ikke på Raspberry Pi OS Lite.
For flere oplysninger om GPIO-stifternes avancerede muligheder se gadgetoids interaktive pinoutdiagram.
Programmering med GPIO
Det er muligt at styre GPIO-stifter ved hjælp af en række programmeringssprog og værktøjer. Se følgende vejledninger for at komme i gang:
- GPIO med Scratch 1.4
- GPIO med Scratch 2
- GPIO med Python
- GPIO med C/C++ ved hjælp af standard kerneinterface via libgpiod
- GPIO med C/C++ ved hjælp af tredjepartsbibliotek pigpio
- GPIO med Processing3
Varsel: selvom det er helt sikkert at tilslutte simple komponenter til GPIO-stifterne, er det vigtigt at være forsigtig med, hvordan du tilslutter tingene. Lysdioder bør have modstande for at begrænse den strøm, der passerer gennem dem. Brug ikke 5V til 3V3-komponenter. Tilslut ikke motorer direkte til GPIO-stifterne, brug i stedet et H-bro-kredsløb eller et motorstyringskort.
Permissions
For at kunne bruge GPIO-portene skal din bruger være medlem af gruppen gpio
. Brugeren pi
er medlem som standard, andre brugere skal tilføjes manuelt.
sudo usermod -a -G gpio <username>