Sejak kemunculan melalui Raspberry Pi 1, salah fitur menarik dari SBC (Single Board Computer) ini adalah adanya fitur GPIO. GPIO mempunyai kepanjangan General Purpose Input/Output, dan bertindak sebagai antar muka yang dapat digunaan secara universal, baik dari atau ke luar RasPi. Ada 40 pin yang dapat digunakan untuk keperluan tersebut. Diagram GPIO pada RasPi secara umum dapat dilihat pada gambar dibawah.

Setiap pin GPIO mempunyai nomer agar memudahkan penggunaanya, dan masing masing pin mempunyai fungsi yang berbeda beda

 

Ada 3 hal penting yang harus dipahami pada pin GPIO, antara lain

  • Voltase tegangan : ada 2 buah pin 5V, dan 2 buah pin 3.3V yang dapat digunakan, dan beberapa pin untuk tujuan ground (0V).
  • Output : pin GPIO di desain dengan nilai high adalah 3.3V dan low adalah 0V.
  • Input : semua pin GPIO dapat digunakan untuk input atau output secara bergantian, jika bertindak sebagai pin input, maka pin tersebut dapat membaca nilai high adalah 3.3V hinga low adalah 0V. Sehingga GPIO dapat membaca nilai pada pull up resistor, atau pull down resistor.

Jika diklasifikasikan secara spesifik, maka pin GPIO dapat dikelompokkan menjadi:

  • PWM (pulse-width modulation)
    • Software PWM tersedia pada semua pin GPIO
    • Hardware PWM tersedia pada 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); Clock (GPIO3)
    • EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
  • Serial
    • TX (GPIO14); RX (GPIO15)