GPIO

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>

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.