USB-2RIO – Modul Antarmuka USB Dengan Dua Buah Relay Dan Dua Buah Pin I/O Digital


usb2rio_600 USB-2REL dan USB-4REL adalah dua modul buatan Teknik Elektro Links yang dapat digunakan untuk mengontrol peralatan listrik melalui komputer atau laptop dengan perantaraan port USB. Modul USB-2REL memiliki keluaran berupa 2 buah relay dan modul USB-4REL memiliki keluaran 4 buah relay. Kedua modul ini dapat digunakan dan telah teruji dengan baik pada sistem operasi Windows 98, Windows XP, Windows 7, dan Linux.

USB-2REL dan USB-4REL hanya berfungsi sebagai driver relay saja dan tidak dapat membaca masukan dari luar PC atau laptop. Untuk itu kami membuat varian baru yang merupakan modifikasi dari modul USB-2REL yang kami beri nama USB-2RIO. Modul USB-2RIO ini, selain memiliki 2 buah relay juga memiliki 2 buah pin I/O digital dengan level tegangan 3,3V yang dapat dikonfigurasi secara software sehingga masing-masing dapat difungsikan sebagai input atau output. Lebih lengkapnya, USB-2RIO bisa dikonfigurasikan menjadi modul:

USB 2R2I USB 2 Relay + 2 Input Digital
USB 2R2O USB 2 Relay + 2 Ouput Digital
USB 2RIO USB 2 Relay + 1 Input Digital + 1 Output Digital
USB 2ROI USB 2 Relay + 1 Output Digital + 1 Input Digital

Modul USB-2RIO menggunakan mikrokontroler AVR ATtiny2313. Untuk implementasi komunikasi USB pada mikrokontroler digunakan library sejuta umat V-USB buatan Objective Development dan untuk program kontrol pada PC/Laptop digunakan library LibUSB.

Berikut adalah screenshot program kontrol USB-2RIO yang dibuat menggunakan kompiler C freeware Pelles C.

usb2rio_windows

Untuk mengendalikan relay atau pin output dan membaca input modul USB-2RIO, program kontrol PC mengirimkan permintaan kepada modul USB-2RIO, jika permintaan dikenali, maka modul akan melakukan aksi sesuai permintaan dan mengirimkan data kepada program kontrol PC.

Berikut adalah daftar perintah/permintaan (request) yang dikenali oleh modul USB-2RIO:

REQUEST INDEX VALUE FUNGSI
0 0 0 Meminta data ID Modul
1 1 0 RELAY1 OFF
1 1 1 RELAY1 ON
1 2 0 RELAY2 OFF
1 2 1 RELAY2 ON
1 3 0 RELAY1 dan RELAY2 OFF
1 3 1 RELAY1 dan RELAY2 ON
2 0 0 Meminta data kondisi input IO1 dan IO2.
Hasil berupa 2 karakter string “LL”, “LH”, “HL”, atau HH. “L” = LOW/CLOSE, “H” = HIGH/OPEN
3 1 0 Konfigurasi pin IO1 sebagai INPUT (Active-Low)
3 1 1 Konfigurasi pin IO1 sebagai OUTPUT
3 2 0 Konfigurasi pin IO2 sebagai INPUT
3 2 1 Konfigurasi pin IO2 sebagai OUTPUT
3 3 0 Konfigurasi pin IO1 dan IO2 sebagai INPUT
3 3 1 Konfiguasi pin IO1 dan IO2 sebagai OUTPUT
4 1 0 Pin IO1 OFF
4 1 1 Pin IO1 ON
4 2 0 Pin IO2 OFF
4 2 1 Pin IO2 ON
4 3 0 Pin IO1 dan IO2 OFF
4 3 1 Pin IO1 dan IO2 ON

Permintaan (request) dikirim oleh program kontrol menggunakan fungsi usb_control_msg(). Setiap kali menerima permintaan dari PC, maka modul USB-2RIO akan melakukan melakukan aksi sesuai permintaan dan mengembalikan sebuah string.

Berikut adalah sedikit penggalan program kontrol USB-2RIO yang berfungsi untuk membaca data pin IO1 dan IO2 secara berulang-ulang menggunakan TIMER dengan interval 100ms dan menampilkan tulisan “OPEN” jika pin IO berlogika HIGH dan tulisan “CLOSE” jika pin IO berlogika LOW.

case WM_TIMER:
	if (POLLING==TRUE)
	{
		nBytes = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
    		USB2RIO_INPUT, 0, 0, (char *)buffer, sizeof(buffer), 5000);

		if (nBytes<0)
    	MessageBox(hwndDlg, usb_strerror(), "Error!", MB_ICONINFORMATION);
		else
		{
			if (buffer[0]=='L')
				SetDlgItemText(hwndDlg, ID_EDIT_IO1, "CLOSE");
			else if (buffer[0]=='H')
				SetDlgItemText(hwndDlg, ID_EDIT_IO1, "OPEN");
			if (buffer[1]=='L')
				SetDlgItemText(hwndDlg, ID_EDIT_IO2, "CLOSE");
			else if (buffer[1]=='H')
				SetDlgItemText(hwndDlg, ID_EDIT_IO2, "OPEN");
		}
	}
	return TRUE;

Source code program selengkapnya tersedia pada CD yang dapat Anda miliki jika Anda membeli produk USB-2RIO.

IO1 dan IO2 Sebagai Input
Berikut ini adalah foto dan screenshot program hasil eksperimen pembacaan input push-button pada IO1 dan IO2. Tampak pada screenshot program bahwa IO1 dan IO2 difungsikan sebagai INPUT dan TIMER yang memonitor kondisi kedua input diaktifkan (Polling On). Status IO1=CLOSE jika Push-Button1 ditekan dan IO1=OPEN jika dilepas.

uji_in1_close

Demikian juga halnya dengan IO2, status IO2=CLOSE jika Push-Button2 ditekan dan IO2=OPEN jika Push-Button2 dilepas.

uji_in2_close

IO1 dan IO2 Sebagai Output
Berikut ini adalah foto dan screenshot hasil eksperimen pengontrolan LED MERAH dan LED KUNING menggunakan pin IO1 dan IO2 yang difungsikan sebagai OUTPUT. Nampak pada gambar di bawah bahwa status IO1=OPEN ketika IO1=HIGH (LED MERAH menyala). Hal ini wajar saja karena memang kondisi pin IO1 adalah terbaca HIGH ketika output IO1=HIGH.

ujio1onujio2on

Hal serupa juga berlaku pada IO2 yang juga difungsikan sebagai OUTPUT.

Dengan adanya fitur tambahan berupa 2 buah pin I/O yang dapat dikonfigurasi secara software agar berfungsi sebagai INPUT atau OUTPUT, maka modul USB-2RIO dapat lebih luas diaplikasikan. Salah satu contohnya adalah kita dapat mengembangkan modul USB-2RIO sehingga berfungsi sebagai USB-4REL dengan memfungsikan IO1 dan IO2 sebagai OUTPUT dan menambahan rangkaian driver relay sebanyak 2 buah.

Pengujian Pada Beberapa Sistem Komputer
Modul USB-2RIO berjalan dengan baik pada komputer P2-333MHz dengan sistem operasi Windows 98. Untuk sistem operasi ini digunakan library LibUSB-Win32 versi 0.1.8.0. Berikut adalah screenshot program USB-2RIO pada Windows 98.

usb2rio_win98

Dan tentunya modul USB-2RIO juga kami uji pada sistem operasi Windows 7 pada netbook Lenovo kami.

usb2rio_win7

Nah, sekian dulu tulisan perkenalan modul USB-2RIO. Nantikan update selanjutnya yang akan membahas dan memberikan contoh-contoh aplikasi penggunaan modul USB-RIO.

Jika Anda berminat dengan modul ini, silakan menghubungi kami melalui email ke info@teknikelektrolinks.com atau melalui SMS ke 083834849975. Atau silakan mengunjungi situs kami di http://teknikelektrolinks.com.

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