UART (Universal Asynchronous Receiver-Transmitter) adalah bagian dari mikrokontroler yang biasanya digunakan untuk berkomunikasi dengan komputer melalui ComPort dengan protokol RS-232. Karena RS-232 bekerja pada level tegangan yang berbeda dengan mikrokontroler dimana mikrokontroler menggunakan level tegangan TTL, maka diperlukan komponen khusus untuk mengkonversinya, yaitu: IC 232. Selain itu, UART dapat juga digunakan untuk berkomunikasi data antar-mikrokontroler secara langsung pada level tegangan TTL.
Rangkaian Elektronik
Pada artikel ini saya akan menjelaskan cara membuat program untuk transfer data antar mikrokontroler menggunakan UART. Mikrokontroler yang saya gunakan, baik pada transmitter maupun receiver adalah dari jenis AVR, yaitu ATTiny2313 dengan frekuensi clock 4 MHz. Berikut ini adalah rangkaian sederhananya:

Program Transmitter
Program mikrokontroler saya tulis dengan bahasa C. Proses menulis, mengkompilasi dan mengunduhkan ke mikrokontroler menggunakan bantuan software CodeVisionAVR. Program pada bagian transmitter sangat sederhana, yaitu: mengirim data berupa angka, huruf atau karakter dalam suatu selang waktu. Dalam kasus ini, saya mengirimkan data berupa angka 77 setiap 500 ms.
Pemrograman mikrokontroler menggunakan CodeVisionAVR sangatlah mudah, karena memiliki fitur Generator Kode dengan GUI (Graphical User Interface), sehingga kita tinggal mengklik pilihan yang diinginkan. Pengaturan untuk UART adalah seperti yang ditunjukkan oleh gambar berikut ini:
Program Receiver
Program receiver sama sederhananya dengan program di atas, yaitu: memindai nilai dari kaki Rx yang ada pada PD0 di sepanjang waktu dan menampilkannya pada sebuah LCD (Liquid Crystal Diode). Hasil pemindaiannya berupa data bertipe integer (angka -32.768 hingga 32.767) atau long integer (angka -2.147.483.648 hingga 2.147.483.647). Berikut ini adalah screen-shoot dari skrip program mikrokontroler pada bagian receiver:
Setelah di-compile, ternyata memunculkan pesan error seperti yang ditunjukkan oleh gambar di bawah ini. Perlu diingat bahwa software yang saya gunakan adalah versi free dengan beberapa keterbatasannya. Untuk mendapatkan versi commercial yang memiliki fitur dan kemampuan penuh, kita perlu mengeluarkan uang sebesar 150 Euro. Anda dapat melakukan pembelian di link ini.

Seperti yang diberitahukan oleh pesan errror di atas bahwa kode program sudah melampaui batas. Jika Anda enggan untuk membeli license CodeVisionAVR commercial dan setia menggunakan versi yang gratis, maka Anda dapat mengikuti langkah saya berikutnya. Langkah saya selanjutnya adalah memodifikasi rangkaian elektronik dan program mikrokontroler, yaitu: menampilkan hasil pemindaian mikrokontroler receiver ke terminal komputer. Berikut ini adalah screen-shoot-nya:
Setelah di-compile ternyata masih memunculkan pesan error yang sama dengan sebelumnya. Solusi lain adalah dengan mengganti mikrokontroler ATTiny2313 dengan mikrokontroler lain yang memiliki memori program lebih besar. Saya memutuskan untuk menggantinya dengan ATMega32 6 MHz yang nantinya hasil pemindaian ditampilkan ke LCD.
Pengujian
Pengujian dilakukan dengan dua cara, yaitu: melalui simulasi dan pengujian langsung. Simulasi saya lakukan dengan bantuan software Proteus. Berikut ini adalah hasil simulasinya:

Bagian receiver dapat juga menggunakan DT-AVR AT90USB162 CPU Module buatan Innovative Electronics. Berikut ini adalah hasil pengujian langsungnya:

Download Link
Bagi Anda yang menginginkan file simulasi Proteus dan program mikrokontroler yang saya jelaskan pada artikel ini, silahkan mengunduhnya secara gratis di sini.