GPIO

V Raspberry Pi:n tehokas ominaisuus on rivi GPIO (general-purpose input/output, yleiskäyttöinen tulo/lähtö) -pinnejä piirilevyn yläreunassa. Kaikissa nykyisissä Raspberry Pi -levyissä on 40-nastainen GPIO-otsikko (Pi Zerossa ja Pi Zero W:ssä se on tyhjä). Ennen Pi 1 Model B+ -mallia (2014) levyt sisälsivät lyhyemmän 26-nastaisen otsikon.

Kaikki GPIO-nastat voidaan nimetä (ohjelmistossa) tulo- tai lähtönastaksi ja niitä voidaan käyttää monenlaisiin tarkoituksiin.

Huomaa: GPIO-nastojen numerointi ei ole numerojärjestyksessä; GPIO-nastat 0 ja 1 ovat piirilevyllä (fyysiset nastat 27 ja 28), mutta ne on varattu edistyneelle käytölle (ks. alla).

Jännitteet

Kahdella 5V- ja kahdella 3V3-nastalla on piirilevyllä kaksi 5V- ja kaksi 3V3-piikkiä sekä useat maadoitusnastat (0V), joita ei ole voitu määritellä. Loput nastat ovat kaikki yleiskäyttöisiä 3V3-nastoja, mikä tarkoittaa, että lähdöt asetetaan 3V3:een ja tulot ovat 3V3-tolerantteja.

Lähdöt

Lähdöiksi määritetty GPIO-nasta voidaan asettaa korkealle (3V3) tai matalalle (0V).

Tulot

Tuloiksi määritetty GPIO-nasta voidaan lukea korkeaksi (3V3) tai matalaksi (0V). Tätä helpottaa sisäisten pull-up- tai pull-down-vastusten käyttö. Nastoissa GPIO2 ja GPIO3 on kiinteät pull-up-vastukset, mutta muiden nastojen osalta tämä voidaan konfiguroida ohjelmistossa.

Lisää

Yksinkertaisten tulo- ja lähtölaitteiden lisäksi GPIO-nastoja voidaan käyttää monilla vaihtoehtoisilla toiminnoilla, joista osa on käytettävissä kaikissa nastoissa, osa tietyissä nastoissa.

  • PWM (pulssinleveysmodulaatio)
    • Ohjelmistopohjainen PWM käytettävissä kaikilla nastoilla
    • Hardware PWM käytettävissä GPIO12:lla, GPIO13:lla, GPIO18:lla, GPIO19:llä
  • SPI
    • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
    • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE1 (GPIO17); CE2 (GPIO16)
  • I2C
    • Data: (GPIO2); Clock (GPIO3)
    • EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)

GPIO pinout

On tärkeää olla tietoinen siitä, mikä tappi on mikä. Jotkut käyttävät pin-tarroja (kuten RasPiO Portsplus -piirilevy tai tulostettava Raspberry Leaf).

Näppärään viitteeseen pääsee Raspberry Pi:ssä avaamalla terminaali-ikkunan ja suorittamalla komennon pinout. Tämän työkalun tarjoaa GPIO Zero Python-kirjasto, joka on oletusarvoisesti asennettu Raspberry Pi OS -työpöytäkuvaan, mutta ei Raspberry Pi OS Lite -käyttöjärjestelmään.

Lisätietoa GPIO-nastojen edistyneistä ominaisuuksista löydät gadgetoidin interaktiivisesta pinout-kaaviosta.

Ohjelmointi GPIO:n avulla

GPIO-nastojen ohjaaminen on mahdollista useilla ohjelmointikielillä ja -välineillä. Katso seuraavat oppaat aloitusta varten:

  • GPIO with Scratch 1.4
  • GPIO with Scratch 2
  • GPIO with Python
  • GPIO with C/C++ käyttäen vakiomuotoista ytimen rajapintaa libgpiodin kautta
  • GPIO with C/C++ käyttäen kolmannen osapuolen kirjastoa pigpio
  • GPIO with Processing3

Varoitus: Vaikka yksinkertaisten komponenttien kytkeminen GPIO-nastoihin on täysin turvallista, on tärkeää olla varovainen siinä, miten kytket asiat. LEDeissä tulisi olla vastukset niiden läpi kulkevan virran rajoittamiseksi. Älä käytä 5V:tä 3V3-komponenteille. Älä kytke moottoreita suoraan GPIO-nastoihin, käytä sen sijaan H-siltapiiriä tai moottorinohjainlevyä.

Luvat

Käyttäjän on oltava gpio-ryhmän jäsen, jotta hän voi käyttää GPIO-portteja. Käyttäjä pi on oletusarvoisesti jäsen, muut käyttäjät on lisättävä manuaalisesti.

sudo usermod -a -G gpio <username>

Vastaa

Sähköpostiosoitettasi ei julkaista.