Praktek Komunikasi Digital UART Menggunakan Arduino - TeachMeSoft

Praktek Komunikasi Digital UART Menggunakan Arduino

Praktek Komunikasi Digital UART Menggunakan Arduino


Teori Singkat


Komunikasi data serial sangat banyak diterapkan dalam teknologi digital modern karena faktor kecepatan dan kesederhanaan bus komunikasi datanya jika dibandingkan dengan komunikasi data digital secara parallel yang membutuhkan bus data besar dan tidak efektif untuk komunikasi jarak jauh.

Komuniksai data digital secara serial terbagi mejadi dua jenis komuniksai sinkron (synchronous) dan tak sinkron (asynchronous). Komuniksai data digital serial sinkron membutuhkan jalur khusus untuk sinkronisasi pewaktuan transmisi data serial sehingga pola komunikasi bersifat half duplex, yaitu komunikasi dilakukan secara bergantian. 


Sedangkan pola komunikasi data digital serial tak sinkron tidak memerlukan sinkronisasi pewaktuan transmisi data dengan asumsi bahwa dua bagian yang berkomuikasi dapat dilakukan secara bersamaan (full duplex).


Gambar 1 Bus komunikasi digital serial tak sinkron UART
Gambar 1 Bus komunikasi digital serial tak sinkron UART

Gambar 1 diatas menunjukan bus komunikasi serial sinkron antara dua piranti yang hanya memerlukan 3 jalur pengkawatan dalam bus komunikasi. Hal ini lah yang membuat komunikasi data serial tak sinrkon banyak digunakan dari pada komunikasi data serial sinkron. 

Dengan karakteristik bus data komunkikasi data tak sinkron seperti yang ditunjukkan oleh gambar 1 memungkinkan  untuk diterapkan pada komunikasi nirkabel dalam jarak yang jauh. Sistem pengendalian mikro pada arduino menerapkan komunikais data serial jenis tak sinkron dengan pertimbangan fleksibilitas dan kesederhanaan pola komunikasinnya .

Komunikasi data serial tak sinkron memerlukan format data setiap paket transmisi agar dua piranti yang paling berkomunikasi bisa memahami paket data yang dikirm/diterima. Gambar 2 menunjukan format transmisi setiap Btyte data pada komunikasi serial tak sinkron.

Gambar 2. Format paket transmisi data pada komunikasi serial tak sinkron
Gambar 2. Format paket transmisi data pada komunikasi serial tak sinkron

Berdasarkan Gambar 2 dapat dipahami bahwa periode bit data pada komunikasi tak sinkron harus disepakati oleh dua piranti yang berkomunikasi. Lebar bit data menentukan kecepatan transmisi serial yang dikenal dengan nama baud rate. Jika nilai baud rate tidak disepakati oleh dua piranti maka komunikasi data serial tidak akan berjalan dengan benar.


Alat dan Bahan Percobaan


Pada sesi ini akan diperkenalkan tentang cara melakukan komunikasi serial papan arduino dengan PC/Laptop menggunakan fasilitas UART. Adapun alat dan bahan yang digunakan selama percobaan adalah :
  • Papan Arduino Uno
    Bahan percobaan sebagi piranti digital utama untuk menguji komunikasi UART dengan PC/laptop yang melibatkan aktivitas perancang antarmuka perangkat keras dan pemrograman perangkat lunak.


Langkah Percobaan


Percobaan komunikasi data serial UART oleh papan Arduino melibatka dua aktifitas, yaitu perancangan antarmuka perangkat keras dan pemrograman perangkat lunak Adapun langkah percobaannya adalah sebagai berikut :
  1. Disan antarmuka perangkat keras
    Antarmuks perangkat keras papan Arduino dengan PC/laptop tidak ada yang harus dirakit, hal ini karena hanya menghubungkan papan Arduino dengan PC/Laptop melalui kabel komunikasi USB dan langkah ini memang pasti dilakukan untuk setiap sesi praktikum.
  2. Pemrograman perangkat lunak
    Percobaan yang akan dilakukan adalah melakukan komunikais dua arah Full duplex. Berikut ini contoh kode program anda harus buat menguji komunikasi digital serial tak sinkron antara papan Arduino dan Pc/Laptop.
    string data_masuk = "";                     //penampung teks

    void setup(){
    Serial.begin(9600); //baudrate= 9600 bps
    }

    void loop(){
    if(Serial.available() > 0){ //ada data masuk?
    char ascii = Serial.read(); //ambil satu data
    if(ascii != '\r') //ada karakter "enter"?
    data_masuk = data_masuk + ascii;//jika tidak, kumpulkan
    else{
    if(data_masuk == "UTY") //keyboard betul?
    Serial.println("Unggul"); //jika ya, jawab
    else
    Serial.println("???"); //jika tidak, jawab
    data_masuk = ""; //kosongkan penampung
    }
    }
    }
    Ketik contoh kode program di atas, kompilasi dan upload ke papan Arduino, kemudian pengamatan dilakukan menggunakna serial monitor pada Arduino dan simpulkan.


Tugas


Berikut ini deskripsi tugas yang harus anda lakukan terkait dengan tahap-tahap percobaan yang sudah dilakukan.
  1. Membuat program yang merespon sebuah pertanyaan seperti yang sudah anda buat saat percobaan, minimal ada tiga pertanyaan.
  2. Kompilasi dan upload kode program yang sudah anda buat, kemudian amati hasilnya.
  3. Membuat laporan percobaan yang berisi foto antarmuka perangkat keras dan kode program yang berhasil dibuat dan berjalan dengan benar.




Disqus comments