Lompat ke konten utama
Iklan

Perbedaan I2C, SPI, dan UART pada Arduino

Kalau Anda sudah mengikuti tutorial LCD I2C di blog ini, Anda sudah memakai salah satu dari tiga protokol komunikasi paling umum di dunia mikrokontroler. Tapi kenapa LCD pakai I2C, sementara kartu SD biasanya pakai SPI, dan modul GPS pakai UART? Artikel ini menjelaskan perbedaannya tanpa perlu latar belakang teknik elektro.

Analogi Sederhana

Bayangkan tiga cara berbeda untuk berkomunikasi di sebuah ruangan:

  • UART seperti telepon — hanya dua orang, bicara bergantian lewat satu jalur khusus masing-masing arah.
  • I2C seperti grup chat dengan alamat — banyak orang di satu jalur yang sama, tapi setiap pesan diawali nama penerima supaya yang lain tahu itu bukan untuk mereka.
  • SPI seperti rapat dengan moderator — satu orang (master) memanggil giliran bicara satu per satu lewat jalur khusus ke masing-masing peserta.

Tabel Perbandingan

AspekUARTI2CSPI
Jumlah kabel data2 (TX, RX)2 (SDA, SCL)4 (MOSI, MISO, SCK, SS)
Jumlah perangkat dalam satu jalurHanya 2 (satu lawan satu)Banyak, dibedakan lewat alamatBanyak, dibedakan lewat pin SS terpisah per perangkat
Kecepatan umumRendah–menengah (9600–115200 bps)Menengah (100–400 kHz)Tinggi (bisa lebih dari 10 MHz)
Kompleksitas pengkabelanPaling sederhanaSederhana, hemat pin untuk banyak perangkatButuh pin SS tambahan per perangkat
Contoh pemakaian umumModul GPS, Bluetooth HC-05, komunikasi ke komputerLCD, sensor suhu BMP280, RTC (jam realtime)Kartu SD, layar TFT, modul RFID RC522
UART MCU GPS TX→RX RX→TX 2 kabel, 1 lawan 1 I2C MCU LCD RTC SDA SCL 2 kabel dipakai bersama, dibedakan alamat SPI MCU SD Card TFT bus: MOSI, MISO, SCK (dipakai bersama) SS1 SS2 3 kabel bersama (bus abu-abu) + 1 pin SS terpisah tiap perangkat Semakin ke kanan, semakin banyak perangkat bisa disambung dalam satu jalur yang sama

UART: Paling Sederhana, Hanya untuk Dua Pihak

UART (Universal Asynchronous Receiver-Transmitter) adalah protokol yang dipakai Serial Monitor di komputer Anda — dibahas lebih detail di artikel Serial Monitor dan Serial Plotter. Karena hanya untuk dua pihak, UART tidak bisa dipakai untuk menyambungkan banyak sensor sekaligus dalam satu jalur yang sama seperti I2C. Kalau Anda butuh dua perangkat UART sekaligus (misalnya GPS dan Bluetooth), Arduino Uno butuh Software Serial karena hanya punya satu port UART fisik.

I2C: Hemat Pin untuk Banyak Perangkat

Keunggulan utama I2C adalah efisiensi pin: berapa pun jumlah perangkat I2C yang Anda sambungkan, semuanya cukup memakai 2 kabel yang sama (SDA dan SCL), dibedakan lewat alamat unik masing-masing — persis seperti yang dibahas di artikel LCD I2C saat mencari alamat modul lewat sketch pemindai. Konsekuensinya, I2C lebih lambat dibanding SPI karena satu jalur dipakai bergantian oleh banyak perangkat.

SPI: Tercepat, tapi Boros Pin

SPI dipakai saat kecepatan jadi prioritas — menggambar ke layar TFT beresolusi tinggi, atau membaca-menulis kartu SD dengan cepat. Kekurangannya, setiap perangkat SPI tambahan butuh satu pin SS (Slave Select) terpisah, jadi menyambungkan banyak perangkat SPI sekaligus cepat menghabiskan pin digital Arduino.

Bagaimana Cara Tahu Sensor Anda Pakai Protokol yang Mana

Lihat jumlah dan nama pin di modul:

  • 4 pin: VCC, GND, SDA, SCL → ini I2C.
  • 4 pin: VCC, GND, TX, RX → ini UART.
  • 6 pin atau lebih: VCC, GND, MOSI, MISO, SCK, SS/CS → ini SPI.

Bisakah Menyambungkan Ketiganya Sekaligus?

Bisa. Arduino Uno mendukung ketiganya secara bersamaan tanpa konflik, karena masing-masing protokol memakai pin yang berbeda:

ProtokolPin di Arduino Uno
I2CA4 (SDA), A5 (SCL)
SPIPin 11 (MOSI), 12 (MISO), 13 (SCK), + SS bebas pilih
UARTPin 0 (RX), 1 (TX) — sama dengan port USB ke komputer

Satu catatan penting untuk UART pin 0 dan 1: keduanya juga dipakai untuk komunikasi dengan Serial Monitor lewat USB. Kalau Anda menyambungkan modul UART lain (seperti GPS) langsung ke pin 0/1, Serial Monitor dan modul itu akan saling mengganggu. Solusinya memakai library SoftwareSerial untuk membuat jalur UART tambahan di pin digital lain.

Kesimpulan Praktis

Anda tidak perlu menghafal detail teknis di balik ketiganya untuk mulai memakainya — cukup ikuti dokumentasi modul yang Anda beli dan pasang library yang sesuai. Yang penting dipahami: kalau modul Anda punya pin SDA/SCL, cari library dengan kata "I2C" di namanya; kalau ada MOSI/MISO/SCK, cari yang menyebut "SPI". Kesalahan paling sering pemula adalah mencoba menyambungkan modul SPI dengan asumsi caranya sama seperti I2C — padahal jumlah dan fungsi pin-nya benar-benar berbeda.

Iklan
0 Komentar

Berkomentarlah dengan sopan dan menggunakan bahasa yang semestinya.