O caracteristică puternică a Raspberry Pi este rândul de pini GPIO (general-purpose input/output) de-a lungul marginii superioare a plăcii. Un header GPIO cu 40 de pini se găsește pe toate plăcile Raspberry Pi actuale (nepopulat pe Pi Zero și Pi Zero W). Înainte de Pi 1 Model B+ (2014), plăcile cuprindeau un header mai scurt de 26 de pini.
Care dintre pinii GPIO poate fi desemnat (în software) ca fiind un pin de intrare sau de ieșire și poate fi utilizat pentru o gamă largă de scopuri.
Rețineți: numerotarea pinilor GPIO nu este în ordine numerică; pinii GPIO 0 și 1 sunt prezenți pe placă (pinii fizici 27 și 28), dar sunt rezervați pentru utilizare avansată (a se vedea mai jos).
Tensiuni
Doi pini 5V și doi pini 3V3 sunt prezenți pe placă, precum și un număr de pini de masă (0V), care sunt neconfigurabili. Pinii rămași sunt toți pinii 3V3 de uz general, ceea ce înseamnă că ieșirile sunt setate la 3V3, iar intrările sunt tolerante la 3V3.
Ieșiri
Un pin GPIO desemnat ca pin de ieșire poate fi setat la nivel înalt (3V3) sau scăzut (0V).
Intrări
Un pin GPIO desemnat ca pin de intrare poate fi citit ca fiind înalt (3V3) sau scăzut (0V). Acest lucru este facilitat de utilizarea rezistențelor interne de tragere în sus sau în jos. Pinii GPIO2 și GPIO3 au rezistențe pull-up fixe, dar pentru ceilalți pini acest lucru poate fi configurat în software.
Mai mult
Pe lângă simplele dispozitive de intrare și ieșire, pinii GPIO pot fi utilizați cu o varietate de funcții alternative, unele sunt disponibile pe toți pinii, altele pe anumiți pini.
- PWM (pulse-width modulation)
- PWM software disponibil pe toți pinii
- Hardware PWM disponibil pe 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); Ceas (GPIO3)
- DataEEPROM: (GPIO0); Ceas EEPROM (GPIO1)
- Serial
- TX (GPIO14); RX (GPIO15)
Piniatura GPIO
Este important să fiți conștienți care pin este care. Unele persoane folosesc etichete de pin (cum ar fi PCB-ul RasPiO Portsplus, sau Raspberry Leaf imprimabil).
O referință la îndemână poate fi accesată pe Raspberry Pi prin deschiderea unei ferestre de terminal și rularea comenzii pinout
. Acest instrument este furnizat de biblioteca GPIO Zero Python, care este instalată în mod implicit pe imaginea desktop Raspberry Pi OS, dar nu și pe Raspberry Pi OS Lite.
Pentru mai multe detalii despre capacitățile avansate ale pinilor GPIO, consultați diagrama interactivă de pinout de la gadgetoid.
Programare cu GPIO
Este posibil să controlați pinii GPIO utilizând o serie de limbaje și instrumente de programare. Consultați următoarele ghiduri pentru a începe:
- GPIO cu Scratch 1.4
- GPIO cu Scratch 2
- GPIO cu Python
- GPIO cu C/C++ folosind interfața standard a kernelului prin libgpiod
- GPIO cu C/C++ folosind biblioteca terță parte pigpio
- GPIO cu Processing3
Atenție: în timp ce conectarea unor componente simple la pinii GPIO este perfect sigură, este important să aveți grijă cum conectați lucrurile. LED-urile ar trebui să aibă rezistențe pentru a limita curentul care trece prin ele. Nu folosiți 5V pentru componente de 3V3. Nu conectați motoarele direct la pinii GPIO, folosiți în schimb un circuit H-bridge sau o placă de control al motorului.
Permisiuni
Pentru a utiliza porturile GPIO, utilizatorul dvs. trebuie să fie membru al grupului gpio
. Utilizatorul pi
este membru în mod implicit, alți utilizatori trebuie să fie adăugați manual.
sudo usermod -a -G gpio <username>