Rabu, 16 April 2014

Komunikasi Serial antara Mikrokontroller dengan Komputer (PC)

Di bawah ini adalah tutorial untuk mengirimkan data serial dari mikrokontroler ke komputer dan menerima data serial dari komputer ke mikrokontroler, menggunakan bahasa C dengan compiller AVR GCC atau winAVR.
Rangkaian skematik untuk IC MAX232 sebagai pengkonversi tegangan antara mikrokontroler dan port serial komputer, sebagai berikut:
Listing programnya dengan winAVR atau AVRGCC sbb:

a.  Mengirimkan data ke komputer
  1. #include<util/delay.h>
  2. #include<stdlib.h>
  3. #include<avr/io.h>
  4. #include<avr/pgmspace.h>
  5. #include<avr/interrupt.h>
  6. #define F_CPU 8000000UL
  7. #define USART_BAUDRATE 9600
  8. #define BAUD_PRESCALE (((F_CPU/(USART_BAUDRATE*16UL)))-1)
  9. void initserial()
  10. {
  11. // Aktifkan transmitter dan receiver
  12. UCSRB |= (1 << RXEN) | (1 << TXEN);
  13. // Ukuran karakter sebesar 8 bit
  14. UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1);
  15. // Load 8-bit yang lebih rendah dari nilai baud rate ke byte rendah dari UBRR register
  16. UBRRL = BAUD_PRESCALE;
  17. // Load 8-bit yang lebih atas dari nilai baud rate ke byte tinggi dari UBRR register:
  18. UBRRH = (BAUD_PRESCALE >> 8);
  19. }
  20. void uart_putc(unsigned char c)
  21. {
  22. while(!(UCSRA & (1 << UDRE)));
  23. UDR = c;
  24. }
  25. void uart_puts (char *s)
  26. {
  27. while (*s) {
  28. uart_putc(*s);
  29. s++;
  30. }
  31. }
  32. int main()
  33. {
  34. unsigned char tempserial;
  35. initserial();
  36. for(;;)
  37. {
  38. if (bit_is_set(UCSRA,RXC))
  39. {
  40. uart_puts(“Test Serial\r”);
  41. _delay_ms(5000);
  42. uart_puts(“Mengirim data ke komputer”);
  43. _delay_ms(5000);uart_putc(13);
  44. uart_putc(10);
  45. }
  46. }
  47. }
b) Menerima data dari komputer

Program utama int main() diganti sbb:
  1. int main()
  2. {
  3. unsigned char tempserial;
  4. initserial();
  5. DDRB=0x00;
  6. uart_puts("Test Serial Menerima Data\r");
  7. uart_putc(13);
  8. uart_putc(10);
  9. for(;;)
  10. {
  11. if (bit_is_set(UCSRA,RXC))
  12. {
  13. tempserial=UDR;
  14. UDR = tempserial;
  15. //Data yang diterima dikirimkan kembali ke port serial
  16. }
  17. }
  18. }
Untuk menampilkan data serial secara langsung dari mikrokontroler ke komputer dapat digunakan Hyperterminal. Caranya dengan pilih Start All Programs Accessories Communications Hyperterminal.

Jika Hyperterminal baru pertama kali dibuka, maka akan muncul pengaturan lokasi, diisi bebas.

Setelah itu akan muncul gambar sbb:
Tuliskan nama Hyperterminal bebas dan pilih gambar telepon merah dan kuning. Kemudian pilih COM yang terhubung dengan kabel serial, misalnya COM1.
 
Lakukan pengaturan komunikasi serial dengan baud rate (bits per second) 9600, data bits 8, parity none, stop bits 1, flowcontrol none.
Jika komunikasi serial berhasil maka pada Hyperterminal akan ditampilkan tulisan yang dikirim dari mikrokontroler ke komputer.
 
Terkadang terjadi kegagalan dengan komunikasi serial karena kesalahan pengaturan fuse bit, jika memakai crystal internal 8MHz maka lakukan pengaturan fuse bit untuk crystal 8MHz, jika menggunakan crystal external 11,0592MHz maka lakukan pengaturan fuse bit external 11,0592MHz.


Sumber refrensi : http://aodhio.blogspot.com/2012/05/komunikasi-serial-antara.html

23 komentar:

  1. Nice Info,

    Di dalam komunikasi serial ada dua macam, asynchronous serial dan synchronous serial. Untuk artikel ini termasuk yang mana?

    Terima Kasih

    Guntur Adi Putra | gunturhere.blogspot.com

    BalasHapus
    Balasan
    1. lebih kepada Asynchronous serial, karena komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah ada sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) computer. MCS-51 mendukung komunikasi secara asinkron, bahkan 3 dari 4 serial mode yang dimiliki MCS-51 kompatibel dengan UART.

      Hapus
  2. Thanks infonya ya mba...
    ijin share ya..

    BalasHapus
  3. Mikrokontroler akan menampilkan karakter ASCII ke dalam 1 (satu) byte port1 mikrokontroler bener ga kaka cantik..

    BalasHapus
  4. Fungsinya komunikasi serial antar mikrokontroler ini apa ya?

    BalasHapus
    Balasan
    1. Fungsinya lebih menjurus kepada mengirim dan menerima data dari komputer. kurang lebihnya seperti itu..

      Hapus
  5. Kaka cantik,,
    Microkontroler ini seperti apa sih ???
    Ada jenis-jenis atau type nya ga???

    BalasHapus
    Balasan
    1. Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input/output.
      Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data.

      Jenis-jenisnya : Keluarga MCS51, AVR, PIC.

      Hapus
  6. Saya coba dulu ya thanks

    BalasHapus
  7. terimakasih untuk infonya.
    saya baru dengar adanya program ini, dan ini menambah ilmu saya.
    terimakasih

    BalasHapus
  8. Nice info, pada tutorial diatas telah dijelaskan tentang serial port micro controller, yang masih saya kurang paham kalau pada bahasa C fungsi include itu apakah sama dengan fungsi import pada bahasa java ...?, thanks

    www.blog.alfin.co

    BalasHapus
  9. apa yang bisa kita lakukan jika mikrocontroller ini sudah terkoneksi ke pc? masih ga mudeng.. :D

    BalasHapus
    Balasan
    1. yang pertama dilakukan yaitu untuk menampilkan data serial secara langsung dari mikrokontroler ke komputer dapat digunakan Hyperterminal. Caranya dengan pilih Start → All Programs → Accessories → Communications → Hyperterminal. selanjutnya sesuai dengan alur yang sudah dijelaskan diatas.

      Hapus
  10. Mba Ririn,..
    Ini fungsi utamanya sebagai apa ya?
    Masih belum jelas saya,.
    Apakah sama dengan FTP ?

    BalasHapus
    Balasan
    1. ada sedikit perbedaan yaa sepertinya :

      kalo Mikrokontroler itu sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input/output.

      Dan kalo FTP itu suatu protokol yang berfungsi untuk tukar-menukar file dalam suatu network yang menggunakan TCP koneksi bukan UDP.

      Hapus
  11. hai ririn,
    code untuk mengirimkan dan menerima data itu, dijalankan dimana ya?

    BalasHapus
  12. Data yg dikirim maksimalnya berapa kalau pakai mikrokontroler

    BalasHapus
  13. Apa ada bahasa lain yang di gunakan untuk mengirimkan data serial dari mikrokontroler ke komputet atau sebaliknya selain menggunakan bahasa C?

    BalasHapus
  14. wahh, bagus infonya mba ririn ahli di jaringan nih kayanya.

    infonya yang berguna nih buat dikantor saya.
    riyanhidda.blogspot.com

    BalasHapus