UART, I2C, dan SPI ā tiga cara MCU "berbicara" dengan chip lain.
Pin GPIO terbatas (14 di Uno). Solusinya: protokol serial ā data dikirim bit demi bit lewat sedikit pin, dan banyak perangkat bisa berbagi jalur yang sama.
| Protokol | Kabel | Kecepatan | Perangkat per bus | Contoh |
|---|---|---|---|---|
| UART | 2 (TX, RX) | 9.600 - 921.600 bps | 1 pasang (point-to-point) | Serial Monitor, GPS, Bluetooth HC-05 |
| I2C | 2 (SDA, SCL) | 100 / 400 kbps | Banyak (alamat unik) | MPU6050, RTC, LCD I2C, EEPROM |
| SPI | 4 (MOSI, MISO, SCK, CS) | 10+ Mbps | Banyak (masing-masing CS) | SD card, display TFT, flash |
UART (Universal Asynchronous Receiver-Transmitter) mengirim data bit demi bit tanpa kabel clock ā kedua pihak harus sepakat baud rate (kecepatan bit/detik).
UART adalah jalur Serial yang sudah kamu pakai. Di Arduino Uno,
pin 0 (RX) dan 1 (TX) terhubung ke chip USB ā itulah alasan Serial Monitor bekerja.
Pola umum: host (komputer/remote) mengirim perintah teks, MCU menafsirkannya. Ini fondasi banyak proyek IoT.
I2C (I²C / I-squared-C) memakai 2 kabel: SDA (data) dan SCL (clock). Setiap perangkat punya alamat 7-bit unik (misal 0x68, 0x48). Master (MCU) memanggil alamat, lalu membaca/menulis register di perangkat itu.
Wire:
Wire.beginTransmission(0x48); Wire.write(0x00); Wire.endTransmission();
Wire.requestFrom(0x48, 1); int v = Wire.read();
SPI (Serial Peripheral Interface) memakai 4 kabel dan punya kabel clock ā jadi jauh lebih cepat dari I2C, dan bisa kirim-terima secara bersamaan (full-duplex).
BRIGHT <0-255> yang mengatur PWM pin 9 (petunjuk: cmd.substring(7).toInt()).