Contoh Pemrograman Port Serial RS232 Menggunakan FreeBASIC


fbedit_ser1rel

Pemrograman port serial merupakan salah satu materi pemrograman komputer yang harus dipelajari dan dikuasai oleh programmer yang bergelut di dunia interfacing. Meskipun tidak ada lagi port serial DB9 pada CPU dan laptop/netbook keluaran terbaru, pemrograman serial RS232 tetap dapat digunakan dengan menggunakan kabel konverter USB-to-RS232.

Dan apapun bahasa pemrograman yang digunakan, pastilah ada cara atau teknik pemrograman untuk melakukan komunikasi data serial melalui port serial RS232. Bagi pengguna VB, tersedia komponen MSCOMM32.OCX yang sangat ampuh dan reliable. Bagi pengguna Delphi, tersedia komponen third-party TComPort yang sangat mudah digunakan. Dan bagi pengguna Lazarus/Free Pascal, tersedia komponen/unit Synaser yang dapat digunakan dengan cukup mudah. Dan bagi pengguna bahasa C, menggunakan Windows API adalah cara yang paling mantap.

Lalu bagaimana dengan pengguna FreeBASIC?

FreeBASIC untuk platform Windows telah dilengkapi dengan programming interface yang memungkinkan dan memudahkan kita untuk menggunakan fungsi-fungsi Windows API. Oleh karenanya, model pemrograman port serial pada FreeBASIC tidak jauh beda dengan pemrograman C.

Untuk membuka port serial digunakan fungsi CreateFile, berikut adalah deklarasi fungsi CreateFile dalam bahasa C.

HANDLE CreateFile( 
    LPCTSTR lpFileName,    // pointer to name of the file
    DWORD dwDesiredAccess,    // access (read-write) mode
    DWORD dwShareMode,    // share mode
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,    // pointer to security attributes
    DWORD dwCreationDistribution,    // how to create
    DWORD dwFlagsAndAttributes,    // file attributes
    HANDLE hTemplateFile     // handle to file with attributes to copy 
   );

Contoh program FreeBASIC pada tulisan ini adalah program aplikasi pengontrolan relay pada modul SER-1REL. Komunikasi hanya terjadi dalam satu arah yakni dari PC ke SER-1REL. Oleh karenanya pada contoh program ini hanya melibatkan fungsi CreateFile, GetCommState, SetCommState, WriteFile, dan CloseHandle.

freebasic_ser1rel

Fungsi CreateFile digunakan untuk membuka port komunikasi serial. Jika berhasil fungsi akan menghasilkan handle untuk port komunikasi yang berhasil dibuka/diinisialisasi.

Setelah berhasil membuka port komunikasi serial, maka kita dapat mengambil data/status dari port serial tersebut dengan fungsi GetCommState.

Selanjutnya dilakukan pengesetan parameter-parameter setting port serial seperti baudrate, lebar bit data, parity, dan lain-lain, dan meng-update perubahan parameter-parameter setting port serial tersebut dengan fungsi SetCommState.

Untuk mengirim data ke modul SER-1REL digunakan fungsi WriteFile. Berikut adalah deklarasi dari fungsi WriteFile dalam bahasa C.

BOOL WriteFile( 
    HANDLE hFile,    // handle to file to write to
    LPCVOID lpBuffer,    // pointer to data to write to file
    DWORD nNumberOfBytesToWrite,    // number of bytes to write
    LPDWORD lpNumberOfBytesWritten,    // pointer to number of bytes written
    LPOVERLAPPED lpOverlapped     // pointer to structure needed for overlapped I/O
   );

Untuk lebih jelasnya, Anda dapat menelusuri sendiri program demo kontrol SER-1REL dengan mengunduh file project lengkap dengan source-code.

FB-SER1REL.ZIP
(~178KB)

Modul SER-1REL adalah modul driver 1 relay dengan antarmuka serial RS232. Modul ini mengenali beberapa perintah antara lain: RELAY ON, RELAY OFF, RELAY ON 250ms, RELAY ON 500ms, dan RELAY ON 1000ms. Pada contoh program hanya digunakan 4 perintah saja yakni RELAY ON, RELAY OFF, RELAY ON 500ms, dan RELAY ON 1000ms.

Demikian sedikit mengenai contoh pemrograman port serial menggunakan FreeBASIC. Semoga bermanfaat!

Selamat belajar dan selamat berkarya!

🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s