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
| Aspek | UART | I2C | SPI |
|---|---|---|---|
| Jumlah kabel data | 2 (TX, RX) | 2 (SDA, SCL) | 4 (MOSI, MISO, SCK, SS) |
| Jumlah perangkat dalam satu jalur | Hanya 2 (satu lawan satu) | Banyak, dibedakan lewat alamat | Banyak, dibedakan lewat pin SS terpisah per perangkat |
| Kecepatan umum | Rendah–menengah (9600–115200 bps) | Menengah (100–400 kHz) | Tinggi (bisa lebih dari 10 MHz) |
| Kompleksitas pengkabelan | Paling sederhana | Sederhana, hemat pin untuk banyak perangkat | Butuh pin SS tambahan per perangkat |
| Contoh pemakaian umum | Modul GPS, Bluetooth HC-05, komunikasi ke komputer | LCD, sensor suhu BMP280, RTC (jam realtime) | Kartu SD, layar TFT, modul RFID RC522 |
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:
| Protokol | Pin di Arduino Uno |
|---|---|
| I2C | A4 (SDA), A5 (SCL) |
| SPI | Pin 11 (MOSI), 12 (MISO), 13 (SCK), + SS bebas pilih |
| UART | Pin 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.
0 Komentar
Berkomentarlah dengan sopan dan menggunakan bahasa yang semestinya.