Protokol Komunikasi Arduino

Protokol Komunikasi Arduino



Protokol komunikasi adalah seperangkat aturan yang memungkinkan perangkat untuk berkomunikasi dan bertukar data. Protokol-protokol ini sangat penting dalam komunikasi Arduino karena Arduino terus-menerus mengirim dan menerima data. Menggunakan protokol ini membantu Arduino untuk menutupi deteksi kesalahan dan kemungkinan metode pemulihan kesalahan. Protokol ini menyatukan perangkat analog dan digital dan memungkinkan untuk merancang banyak proyek.

Protokol Komunikasi Arduino

Dengan menggunakan protokol Komunikasi, kami dapat mengirim dan menerima data sensor apa pun di Arduino.

Beberapa sensor sederhana seperti Inframerah (IR) dapat langsung berkomunikasi dengan Arduino tetapi beberapa sensor kompleks seperti modul Wi-Fi, modul kartu SD, dan Giroskop tidak dapat berkomunikasi langsung dengan Arduino tanpa protokol komunikasi apa pun. Jadi, itulah mengapa protokol ini merupakan bagian integral dari komunikasi Arduino.







Arduino memiliki beberapa periferal yang melekat padanya; diantaranya ada tiga periferal komunikasi yang digunakan pada board Arduino.



Protokol Komunikasi Arduino

Komunikasi antar perangkat elektronik yang berbeda seperti Arduino distandarisasi di antara ketiga protokol ini; memungkinkan desainer untuk berkomunikasi antara perangkat yang berbeda dengan mudah tanpa masalah kompatibilitas. Cara kerja ketiga protokol ini sama karena melayani tujuan komunikasi yang sama, tetapi berbeda dalam implementasi di dalam sirkuit. Penjelasan lebih lanjut dari protokol ini dibahas di bawah ini.







UART

UART dikenal sebagai Pemancar Penerima Asinkron Universal. UART adalah protokol komunikasi serial yang berarti bit data ditransfer dalam bentuk berurutan satu demi satu. Untuk mengatur komunikasi UART kita membutuhkan dua jalur. Salah satunya adalah pin Tx (D1) dari papan Arduino dan yang kedua adalah pin Rx (D0) dari papan Arduino. Pin Tx untuk transmisi data ke perangkat dan pin Rx digunakan untuk menerima data. Papan Arduino yang berbeda memiliki beberapa pin UART.

Pin Digital Arduino Pin UART
D1 terima kasih
D0 Rx

Untuk membangun komunikasi Serial menggunakan port UART kita perlu menghubungkan dua perangkat dalam konfigurasi yang ditunjukkan di bawah ini:



Pada Arduino Uno, satu port serial didedikasikan untuk komunikasi yang biasa disebut sebagai port USB. Seperti namanya Universal Serial Bus, jadi ini adalah port serial. Menggunakan port USB Arduino dapat menjalin komunikasi dengan komputer. Port USB terhubung ke pin onboard Tx dan Rx Arduino. Dengan menggunakan pin ini, kita dapat menghubungkan perangkat keras eksternal selain Komputer melalui USB. Arduino IDE menyediakan perpustakaan SoftwareSerial (SoftwareSerial.h) yang memungkinkan pengguna untuk menggunakan pin GPIO sebagai pin Serial Tx dan Rx.

  • UART mudah dioperasikan dengan Arduino
  • UART tidak membutuhkan sinyal clock
  • Baud rate harus diatur dalam batas 10% dari perangkat komunikasi untuk mencegah kehilangan data
  • Beberapa perangkat dengan Arduino dalam konfigurasi Master Slave tidak dimungkinkan dengan UART
  • UART adalah setengah dupleks, yang berarti perangkat tidak dapat mengirim dan menerima data secara bersamaan
  • Hanya dua perangkat sekaligus yang dapat berkomunikasi dengan protokol UART

Antarmuka Periferal Serial (SPI)

SPI adalah akronim dari antarmuka periferal serial yang dirancang khusus untuk mikrokontroler untuk berkomunikasi dengan mereka. SPI beroperasi pada mode full-duplex yang berarti SPI dapat mengirim dan menerima data secara bersamaan. Jika dibandingkan dengan UART dan I2C, ini adalah perangkat komunikasi tercepat di papan Arduino. Ini biasanya digunakan di mana kecepatan data tinggi diperlukan seperti pada layar LCD dan aplikasi kartu Micro SD.

Pin digital SPI pada Arduino sudah ditentukan sebelumnya. Untuk konfigurasi pin SPI Arduino Uno adalah sebagai berikut :

Jalur SPI GPIO Pin Header ICSP
SCK 13 3
SUP KEDELAI JEPANG 12 1
MEROKOK sebelas 4
SS 10 -
  • MOSI adalah singkatan dari Kuasai Budak Masuk , MOSI adalah jalur transmisi Data untuk Master to Slave.
  • SCK adalah Garis jam yang menentukan kecepatan transmisi dan karakteristik awal akhir.
  • SS singkatan dari Pilihan Budak ; Jalur SS memungkinkan Master untuk memilih perangkat Slave tertentu saat beroperasi dalam beberapa konfigurasi Slave.
  • MISO adalah singkatan dari Master di Budak Keluar ; MISO adalah saluran transmisi Slave to Master untuk Data.

Salah satu sorotan utama protokol SPI adalah konfigurasi Master-Slave. Menggunakan SPI satu perangkat dapat didefinisikan sebagai Master untuk mengontrol beberapa perangkat Slave. Master memegang kendali penuh atas perangkat Slave melalui protokol SPI.

SPI adalah protokol sinkron, yang berarti komunikasi dihubungkan dengan sinyal clock umum antara Master dan Slave. SPI dapat mengontrol beberapa perangkat sebagai Slave melalui satu jalur pengiriman dan penerimaan. Semua Budak terhubung ke Master menggunakan common SUP KEDELAI JEPANG menerima garis bersama dengan MEROKOK satu jalur transmisi umum. SCK juga merupakan garis jam umum di antara perangkat Master dan Slave. Satu-satunya perbedaan dalam perangkat Slave adalah setiap perangkat budak dikendalikan melalui perangkat terpisah SS pilih baris. Ini berarti bahwa setiap Slave memerlukan pin GPIO tambahan dari papan Arduino yang akan bertindak sebagai jalur pilih untuk perangkat Slave tertentu.

Beberapa sorotan utama protokol SPI tercantum di bawah ini:

  • SPI adalah protokol tercepat dari I2C dan UART
  • Tidak diperlukan bit start dan stop seperti di UART yang berarti transmisi data berkelanjutan dimungkinkan
  • Slave dapat dengan mudah ditangani karena konfigurasi Master Slave yang sederhana
  • Untuk setiap Slave, pin tambahan ditempati di papan Arduino. Praktis 1 Master dapat mengontrol 4 perangkat Slave
  • Pengakuan data tidak ada seperti yang digunakan di UART
  • Konfigurasi beberapa Master tidak dimungkinkan

Protokol Komunikasi I2C

Inter Integrated Circuit (I2C) adalah protokol komunikasi lain yang digunakan oleh papan Arduino. I2C adalah protokol yang paling sulit dan rumit untuk diimplementasikan dengan Arduino dan perangkat lain. Terlepas dari kerumitannya, ia menawarkan banyak fitur yang tidak ada dalam protokol lain seperti beberapa konfigurasi Master dan beberapa Slave. I2C memungkinkan menghubungkan hingga 128 perangkat ke papan Arduino utama. Ini hanya mungkin karena I2C berbagi kabel tunggal di antara semua perangkat Slave. I2C di Arduino menggunakan sistem alamat, artinya sebelum mengirim data ke perangkat Slave Arduino harus terlebih dahulu memilih perangkat Slave dengan mengirimkan alamat unik. I2C hanya menggunakan dua kabel yang mengurangi jumlah pin Arduino secara keseluruhan, tetapi sisi buruknya adalah I2C lebih lambat dari protokol SPI.

Pin Analog Arduino Pin I2C
A4 SDA
A5 SCL

Pada tingkat perangkat keras I2C dibatasi hanya dua kabel, satu untuk jalur data yang dikenal sebagai SDA (Serial Data) dan yang kedua untuk garis Jam SCL (Jam Serial). Pada keadaan idle baik SDA dan SCL ditarik tinggi. Ketika data perlu ditransmisikan, jalur ini ditarik rendah menggunakan sirkuit MOSFET. Menggunakan I2C dalam proyek, wajib menggunakan resistor pull up yang biasanya bernilai 4,7Kohm. Resistor pull-up ini memastikan bahwa jalur SDA dan SCL tetap tinggi saat start idle.

Beberapa sorotan utama dari protokol I2C adalah:

  • Jumlah pin yang dibutuhkan sangat sedikit
  • Beberapa perangkat Master Slave dapat dihubungkan
  • Hanya menggunakan 2 kabel
  • Kecepatan lebih lambat dibandingkan dengan SPI karena menarik resistor
  • Resistor membutuhkan lebih banyak ruang di sirkuit
  • Kompleksitas proyek meningkat dengan bertambahnya jumlah perangkat

Perbandingan antara UART vs I2C vs SPI

Protokol UART SPI 2C
Kecepatan Paling lambat Tercepat Lebih cepat dari UART
Jumlah perangkat Sampai 2 4 perangkat Hingga 128 perangkat
Kabel diperlukan 2(Tx,Rx) 4 (SCK, ASAP, MATA, SS) 2 (SDA, SCL)
Mode Dupleks Mode Dupleks Penuh Mode Dupleks Penuh Setengah Dupleks
Jumlah Master-Slaves mungkin Master Tunggal-Budak Tunggal Master Tunggal-Beberapa Budak Beberapa Master-Beberapa Budak
Kompleksitas Sederhana Dapat dengan mudah mengontrol beberapa perangkat Kompleks dengan peningkatan perangkat
Sedikit pengakuan Tidak Tidak Ya

Kesimpulan

Pada artikel ini, kami telah membahas perbandingan komprehensif dari ketiga protokol UART, SPI dan I2C yang digunakan di Arduino. Mengetahui semua protokol itu penting karena memberikan peluang tanpa batas untuk mengintegrasikan banyak perangkat. Memahami semua periferal komunikasi akan menghemat waktu dan membantu mengoptimalkan proyek sesuai dengan protokol yang benar.