GPIO

Wspaniałą cechą Raspberry Pi jest rząd pinów GPIO (general-purpose input/output) wzdłuż górnej krawędzi płytki. 40-pinowe gniazdo GPIO znajduje się na wszystkich obecnych płytkach Raspberry Pi (nie ma go w Pi Zero i Pi Zero W). Przed Pi 1 Model B+ (2014), płyty zawierały krótszy 26-pinowy nagłówek.

Każdy z pinów GPIO może być oznaczony (w oprogramowaniu) jako pin wejściowy lub wyjściowy i używany do szerokiego zakresu celów.

Uwaga: numeracja pinów GPIO nie jest w kolejności numerycznej; piny GPIO 0 i 1 są obecne na płycie (fizyczne piny 27 i 28), ale są zarezerwowane do zaawansowanego użytku (patrz poniżej).

Napięcia

Dwa piny 5V i dwa piny 3V3 są obecne na płycie, jak również kilka pinów masy (0V), które są niekonfigurowalne. Pozostałe piny są pinami 3V3 ogólnego przeznaczenia, co oznacza, że wyjścia są ustawione na 3V3, a wejścia są tolerowane przez 3V3.

Wyjścia

Pin GPIO oznaczony jako wyjściowy może być ustawiony jako wysoki (3V3) lub niski (0V).

Wejścia

Pin GPIO oznaczony jako wejściowy może być odczytany jako wysoki (3V3) lub niski (0V). Jest to ułatwione dzięki zastosowaniu wewnętrznych rezystorów pull-up lub pull-down. Piny GPIO2 i GPIO3 mają stałe rezystory podciągające, ale dla innych pinów może to być skonfigurowane programowo.

Więcej

Oprócz prostych urządzeń wejściowych i wyjściowych, piny GPIO mogą być używane z wieloma alternatywnymi funkcjami, niektóre są dostępne na wszystkich pinach, inne na określonych pinach.

  • PWM (pulse-width modulation)
    • Software PWM dostępne na wszystkich pinach
    • Hardware PWM dostępne na 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
    • Dane: (GPIO2); Zegar (GPIO3)
    • EEPROM Dane: (GPIO0); EEPROM Clock (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)

GPIO pinout

Ważne jest, aby być świadomym, który pin jest który. Niektórzy ludzie używają etykiet pinów (jak RasPiO Portsplus PCB, lub drukowalne Raspberry Leaf).

Podręczne odniesienie można uzyskać dostęp na Raspberry Pi przez otwarcie okna terminala i uruchomienie polecenia pinout. Narzędzie to jest dostarczane przez bibliotekę GPIO Zero Python, która jest domyślnie zainstalowana na obrazie pulpitu Raspberry Pi OS, ale nie na Raspberry Pi OS Lite.

W celu uzyskania szczegółowych informacji na temat zaawansowanych możliwości pinów GPIO zobacz interaktywny schemat pinout gadgetoid.

Programowanie z GPIO

Możliwe jest kontrolowanie pinów GPIO za pomocą wielu języków programowania i narzędzi. Zobacz następujące przewodniki, aby zacząć:

  • GPIO with Scratch 1.4
  • GPIO with Scratch 2
  • GPIO with Python
  • GPIO with C/C++ using standard kernel interface via libgpiod
  • GPIO with C/C++ using 3rd party library pigpio
  • GPIO with Processing3

Ostrzeżenie: podczas gdy podłączanie prostych komponentów do pinów GPIO jest całkowicie bezpieczne, ważne jest, aby uważać, jak podłączasz rzeczy. Diody LED powinny mieć oporniki ograniczające prąd przez nie przepływający. Nie używaj 5V dla komponentów 3V3. Nie podłączaj silników bezpośrednio do pinów GPIO, zamiast tego użyj obwodu mostka H lub płytki kontrolera silnika.

Uprawnienia

Aby korzystać z portów GPIO twój użytkownik musi być członkiem grupy gpio. Użytkownik pi jest członkiem domyślnie, inni użytkownicy muszą być dodani ręcznie.

sudo usermod -a -G gpio <username>

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.