GPIO

En kraftfull funktion hos Raspberry Pi är raden av GPIO-stift (general-purpose input/output) längs den övre kanten av kortet. Ett 40-poligt GPIO-huvud finns på alla nuvarande Raspberry Pi-kartor (obefolkat på Pi Zero och Pi Zero W). Före Pi 1 Model B+ (2014) hade korten ett kortare 26-stifts huvudstift.

Varje GPIO-stift kan (i mjukvara) betecknas som en in- eller utgångsstift och användas för en mängd olika ändamål.

Notera: numreringen av GPIO-stiften är inte i numerisk ordning; GPIO-stiften 0 och 1 finns på kortet (fysiska stift 27 och 28) men är reserverade för avancerad användning (se nedan).

Voltages

Två 5V-stift och två 3V3-stift finns på kortet, samt ett antal jordstift (0V), som inte är konfigurerbara. De återstående stiften är alla 3V3-stift för allmänna ändamål, vilket innebär att utgångarna är inställda på 3V3 och ingångarna är 3V3-toleranta.

Utgångsstift

Ett GPIO-stift som betecknas som ett utgångsstift kan ställas in på hög (3V3) eller låg (0V).

Ingångsstift

Ett GPIO-stift som betecknas som ett ingångsstift kan avläsas som hög (3V3) eller låg (0V). Detta underlättas med hjälp av interna pull-up- eller pull-down-motstånd. Pins GPIO2 och GPIO3 har fasta pull-up-motstånd, men för andra pins kan detta konfigureras i mjukvara.

Mer

Som enkla in- och utmatningsenheter kan GPIO-pins användas med en mängd olika alternativa funktioner, vissa är tillgängliga på alla pins, andra på specifika pins.

  • PWM (pulsbreddsmodulering)
    • Mjukvaru-PWM finns på alla stift
    • Hårdvaru-PWM finns 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); Klock (GPIO3)
    • EEPROM Data: (GPIO0); EEPROM-klocka (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)

GPIO-pinnutgång

Det är viktigt att känna till vilken stift som är vad. Vissa personer använder sig av pin-etiketter (som RasPiO Portsplus PCB, eller det utskrivbara Raspberry Leaf).

En praktisk referens kan nås på Raspberry Pi genom att öppna ett terminalfönster och köra kommandot pinout. Det här verktyget tillhandahålls av Pythonbiblioteket GPIO Zero, som är installerat som standard på Raspberry Pi OS desktop image, men inte på Raspberry Pi OS Lite.

För mer information om de avancerade funktionerna hos GPIO-stiften, se gadgetoids interaktiva pinoutdiagram.

Programmering med GPIO

Det går att styra GPIO-stift med hjälp av ett antal programmeringsspråk och verktyg. Se följande guider för att komma igång:

  • GPIO med Scratch 1.4
  • GPIO med Scratch 2
  • GPIO med Python
  • GPIO med C/C++ med hjälp av standardkärnans gränssnitt via libgpiod
  • GPIO med C/C++ med hjälp av tredjepartsbiblioteket pigpio
  • GPIO med Processing3

Varning: Även om det är helt säkert att ansluta enkla komponenter till GPIO-stiften är det viktigt att vara försiktig med hur du kopplar upp saker och ting. Lysdioder bör ha motstånd för att begränsa strömmen som passerar genom dem. Använd inte 5V för 3V3-komponenter. Anslut inte motorer direkt till GPIO-stiften, använd istället en H-bryggkrets eller ett motorstyrkort.

Permissions

För att kunna använda GPIO-portarna måste din användare vara medlem i gruppen gpio. Användaren pi är medlem som standard, andra användare måste läggas till manuellt.

sudo usermod -a -G gpio <username>

Lämna ett svar

Din e-postadress kommer inte publiceras.