A Raspberry Pi hatékony jellemzője a GPIO (általános célú be- és kimeneti) csapok sora a kártya felső szélén. A 40 tűs GPIO fejléc minden jelenlegi Raspberry Pi lapon megtalálható (a Pi Zero és Pi Zero W lapokon nincs kitöltve). A Pi 1 Model B+ (2014) előtt a lapok rövidebb, 26 tűs fejlécből álltak.
A GPIO-tűk bármelyike kijelölhető (szoftveresen) bemeneti vagy kimeneti pin-ként, és sokféle célra használható.
Figyelem: a GPIO-tüskék számozása nem numerikus sorrendben történik; a GPIO 0. és 1. tűje jelen van a lapon (fizikai 27. és 28. tű), de speciális használatra van fenntartva (lásd alább).
Feszültségek
Két 5V-os és két 3V3-as tű van a lapon, valamint néhány földelő (0V), amelyek nem konfigurálhatók. A fennmaradó csapok mind általános célú 3V3-as csapok, ami azt jelenti, hogy a kimenetek 3V3-ra vannak beállítva, a bemenetek pedig 3V3-toleránsak.
Kimenetek
A kimeneti csapként kijelölt GPIO csap magas (3V3) vagy alacsony (0V) értékre állítható.
Bemenetek
A bemeneti csapként kijelölt GPIO csap magas (3V3) vagy alacsony (0V) értékre olvasható. Ezt megkönnyíti a belső pull-up vagy pull-down ellenállások használata. A GPIO2 és GPIO3 pinek fix pull-up ellenállással rendelkeznek, de a többi pin esetében ez szoftveresen konfigurálható.
Még
A GPIO pinek az egyszerű be- és kimeneti eszközök mellett számos alternatív funkcióval is használhatók, egyesek az összes pinre, mások bizonyos pinekre.
- PWM (impulzusszélesség-moduláció)
- Szoftveres PWM elérhető minden pinen
- Hardveres PWM elérhető a GPIO12, GPIO13, GPIO18, GPIO19-n
- 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
- Adatok: (GPIO2); Clock (GPIO3)
- EEPROM Data: (GPIO0); EEPROM óra (GPIO1)
- Serial
- TX (GPIO14); RX (GPIO15)
GPIO pinout
Nem mindegy, hogy melyik pin melyik. Vannak, akik pincímkéket használnak (mint a RasPiO Portsplus PCB, vagy a nyomtatható Raspberry Leaf).
A praktikus referenciát elérhetjük a Raspberry Pi-n, ha megnyitunk egy terminál ablakot és futtatjuk a pinout
parancsot. Ezt az eszközt a GPIO Zero Python könyvtár biztosítja, amely alapértelmezés szerint telepítve van a Raspberry Pi OS asztali képen, de a Raspberry Pi OS Lite-on nem.
A GPIO-tüskék fejlett képességeiről bővebben lásd a gadgetoid interaktív pinout diagramját.
Programozás GPIO-val
A GPIO-tüskék vezérlése számos programozási nyelv és eszköz segítségével lehetséges. A kezdéshez lásd a következő útmutatókat:
- GPIO with Scratch 1.4
- GPIO with Scratch 2
- GPIO with Python
- GPIO with C/C++ a standard kernel interfész használatával a libgpiod-on keresztül
- GPIO with C/C++ a 3rd party könyvtár pigpio használatával
- GPIO with Processing3
Figyelmeztetés: Bár az egyszerű alkatrészek csatlakoztatása a GPIO pinekhez teljesen biztonságos, fontos, hogy óvatos legyél a bekötéssel. A LED-eknek ellenállással kell rendelkezniük, hogy korlátozzák a rajtuk áthaladó áramot. Ne használjon 5V-ot a 3V3 komponensekhez. Ne csatlakoztasson motorokat közvetlenül a GPIO csapokra, helyette használjon H-híd áramkört vagy motorvezérlő lapot.
Meghatalmazások
A GPIO portok használatához a felhasználónak a gpio
csoport tagjának kell lennie. A pi
felhasználó alapértelmezés szerint tag, más felhasználókat manuálisan kell hozzáadni.
sudo usermod -a -G gpio <username>