Kontrol lampu LED On-Off melalui port USB dengan Visual C Sebagai mana komputer/laptop sekarang banyak yang sudah menghilangkan port paralel dan port serialnya, sebagai gantinya terpasang beberapa port USB. Lupakan dahulu tentang specifikasi, protokol dan driver USB, kita langsung saja semudah mungkin bisa on-off-kan (menghidupkan dan mematikan) lampu LED melalui port USB. Biasanya setelah praktek bisa menghidupkan LED akan lebih mudah untuk mempelajari lebih lanjut. Ini merupakan contoh yang sangat sederhana sehingga mudah untuk diterapkan bagi pemula sekalipun. Untuk mengontrol LED melalui port USB kita membutuhkan konverter yang bisa menerjemahkan protokol serial USB menjadi logika high low seperti yang kita inginkan. Kita tidak bisa menggunakan port USB ini langsung berlogika high atau low seperti port paralel, kita membutuhkan konverter yang menerjemahkan protokol USB ke logika high-low. Di internet di jual bermacam-macam konverter ini, misal konverter USB ke serial yang cukup terkenal dari FTDI. Untuk pemograman LED ini kita akan mengunakan USB I/O Converter dari www.satu-microelectronics.com yaitu USB HID IO Converter yang berupakan USB HID yang tidak memerlukan driver tersendiri, ini seperti Mouse dan Keyboard USB yang tinggal colok dan langsung bisa digunakan. USB HID IO Converter merupakan konverter USB ke 8 bit IO, I2C, SPI dan ADC. USB konverter ini adalah USB kelas HID (Human Interface Device) sehingga tidak memerlukan instalasi driver USB baik di sistem operasi Windows (XP, WIN7 maupun Windows 8). Sistem operasi tersebut sudah menyediakan drivernya yang tentunya memudahkan kita dalam menggunakannya. Sistem operasi lain seperti MAC, Android dan LINUX pun juga sudah menyediakan driver untuk USB kelas HID sehingga USB HID IO Converter ini juga bisa di gunakan pada sistim operasi tersebut.
USB HIDClass<->IOConverter Program sederhana untuk mengontrol lampu LED ini akan kita beri nama USB HID - LED OnOff. Program ini digunakan untuk melakukan pengontrolan (menyalakan / mematikan) LED. Kita bisa menyalakan atau mematikan LED dengan mencentang CheckBox pada program kita, dan LED akan hidup atau mati sesuai kondisi CheckBox. Program ini memerlukan rangkaian LED yang dikoneksikankan pada port IO USB HIDClass<->IOConverter. Rangkaian LED Berikut adalah rangkaian LED yang harus dihubungkan dengan port IO0-IO7 USB HIDClass<>IOConverter ke Ground melalui resistor 1K Ohm, seperti pada Gambar dibawah
www.satu-microelectronics.com
1
Pemograman USB HID - LED On-Off Setelah rangkaian LED telah dibuat, maka sekarang adalah pembuatan program yang digunakan untuk mengontrol LED tersebut. Langkah – langkah pembuatan program USB HID - LED On-Off adalah sebagai berikut; 1. Buka Visual C. Pada menu File, klik perintah New Project, lalu klik OK untuk membuat sebuah file executable standar. Simpanlah project dengan nama LED On-Off. 2. Klik kontrol Label untuk membuat sebuah label yaitu untuk Label1 yang akan kita gunakan untuk menampilkan pesan. 3. Buat delapan buah kotak Check Box. Kotak - kotak check box tersebut nantinya akan menjadi status dari LED yang akan kita kontrol. 4. Ubah properties dan ukuran form agar seukuran kotak dialog sedang, seperti Gambar dibawah
5.
Klik menu ProjectAdd Reference dan tambahkan HID_IOConverter_NET.dll seperti gambar dibawah. (Copykan file HID_IOConverter_NET.dll pada folder project terlebih dahulu)
www.satu-microelectronics.com
2
6.
Buka View Code maka akan terlihat penambahan code ; using HID_IOConverter_NET;
dan tambahkan code berikut; using Microsoft.Win32.SafeHandles;
7.
Tambahkan object class HID_IOConverter_Function dan tambahkan code untuk event Form1_Load berikut; SafeFileHandle iHandle; HID_IOConverter_Function HIDi = new HID_IOConverter_Function (); long iReturn; private void Form1_Load(object sender, EventArgs e) { iHandle = HIDi.Hid_OpenDevice(); if (iHandle.IsInvalid) { label1.Text = "USB HIDClass<->IOConverter tidak terkoneksi..." + "\n" + "Koneksikan USB HIDClass<->IOConverter terlebih dahulu," + "\n" + "kemudian buka kembali program ini...."; } else { iReturn = HIDi.GPIO_DDR_Out(iHandle, 255); iReturn = HIDi.GPIO_Port_Out(iHandle, 0); label1.Text = "Check CheckBox to turn on LED " + "\n" + "Uncheck CheckBox to turn off LED"; } }
Gambar. Menambahkan object HID_IOConverter_Function Prosedur Form1_Load ini akan berjalan pertama kali ketika program dijalankan. Program akan mencoba mencari USB HIDClass<->IOConverter melalui fungsi Hid_OpenDevice dan handle dari USB ini akan kita simpan pada iHandle, jika berhasil maka akan di kirim perintah GPIO_DDR_Out(iHandle, 255) ke USB HIDClass<->IOConverter untuk memnuat 8 bit port IO-nya sebagai output semua, kemudian mengirim perintah GPIO_Port_Out(iHandle, 0) yang akan membuat ouput GPIO berlogika low (LED mati semua) saat awal program. Jika USB HIDClass<->IOConverter tidak ditemukan maka akan di tampilan pesan pada Label1 bahwa USB HIDClass<->IOConverter tidak terkoneksi.
www.satu-microelectronics.com
3
8.
Ketikkan kode program berikut CheckBox8_CheckedChanged
ini
pada even
CheckBox1_CheckedChanged sampai
private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { HIDi.Set_Bit(iHandle, HID_IOConverter_Function.GPIO_Port0); } else { HIDi.Clear_Bit(iHandle, HID_IOConverter_Function.GPIO_Port0); } }
Gambar. Mengakses fungsi-fungsi pada HID_IOConverter_Function Setiap kali terjadi peng-klik-an pada CheckBox1 maka LED pada port IO USB HIDClass<>IOConverter akan ON dan OFF. 9.
Selesai sudah pembuatan program LED Driver.
Menjalankan Program USB HID - LED Driver Sekarang kita siap menjalankan program LED On-Off. Tancapkan USB HIDClass<->IOConverter pada komputer, kemudian klik tombol Start pada Toolbar, maka jika tidak ada kesalahan akan muncul seperti Gambar berikut;
www.satu-microelectronics.com
4
Gambar Tampilan program LED On-Off Pada awal program, LED akan OFF semua. Peng-klik-an pada CheckBox LED0 - LED7 akan menyalakan LED, peng-klik-an selanjutnya akan mematikan kembali LED.
Foto USB HID - LED On-Off
www.satu-microelectronics.com
5