Program Kontrol Modul USB-2REL Menggunakan Delphi Dengan libusb.pas


usb2rel_delphi_libusbGambar di samping adalah screenshot program demo pengontrolan modul USB-2REL menggunakan Delphi yang mengakses port USB menggunakan library dari paket program driver libusb-win32.

Tidak seperti program Delphi sebelumnya yang menggunakan fungsi ShellExecute untuk mengeksekusi program USB2R.EXE untuk mengontrol relay pada modul USB-2REL, kali ini akan saya berikan contoh program Delphi untuk mengontrol LED dan RELAY pada modul USB-2REL yang langsung mengakses port USB menggunakan library libusb0.dll.

Thanks to Stephan Meyer, Johannes Erdfelt, and Yvo Nelemans for providing the special unit LIBUSB.PAS😀

Project Delphi yang kita buat ini mengikutsertakan unit libusb.pas yang berisi definisi/deklarasi fungsi-fungsi yang ada dalam libusb0.dll. Selain fungsi-fungsi, libusb.pas juga mendeklarasikan struktur-struktur data, konstanta-konstanta, dan variabel-variabel yang berkaitan dengan implementasi port USB.

Untuk dapat mengontrol LED dan RELAY pada modul USB-2REL, pertama-tama kita harus mendapatkan handle dari USB-2REL. Berikut adalah penggalan programnya.

var
  Form1: TForm1; 
  USB2REL_Device: pUSB_Device; 
  USB2REL_Handle: pUSB_Dev_Handle;
  buffer: array[0..100] of byte;

implementation

{$R *.dfm}

function USBFindDevice(VID, PID: word): pUSB_Device;
var
  bus: PUSB_BUS;
  dev: PUSB_device;
begin
  result := nil;
  usb_init();
  usb_find_busses();
  usb_find_devices();
  bus:=USB_get_Busses;
  while (bus<>nil) do
  begin
    dev:=bus.devices;
    while (dev<>nil) do begin
      if (dev.descriptor.idVendor=VID) and (dev.descriptor.idProduct=PID) then
        result:=dev;
      dev:=dev.next;
    end;
    bus:=bus.next;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin 
  USB2REL_Device:= USBFindDevice(5824, 1500); 
  USB2REL_Handle:= usb_open(USB2REL_Device);
end;

Fungsi USBFindDevice() adalah fungsi yang saya dapatkan di sebuah forum berbahasa Jerman http://www.entwickler-ecke.de yang telah saya modifikasi sedikit.😀

Perintah: USB2REL_Device:= USBFindDevice(5824, 1500); berfungsi untuk mendapatkan pointer dari device USB-2REL. Modul USB-2REL memiliki VID=5824 dan PID=1500. Sedangkan perintah: USB2REL_Handle:= usb_open(USB2REL_Device); berfungsi untuk membuka piranti USB dengan pointer device yang dimaksud (dalam hal ini adalah USB-2REL) untuk mendapatkan handle dari modul USB-2REL. Jika kedua fungsi ini berhasil dengan baik, maka kita siap mengirimkan perintah kepada modul USB-2REL.

Kok gak ada validasinya, Pak?😦
Tambah sendiri aja deh…😀

Dan berikut adalah rutin-rutin untuk mengontrol USB-2REL yang sesuai dengan event untuk masing-masing button seperti pada screenshot di atas.

procedure TForm1.Relay1OnClick(Sender: TObject);
begin
  usb_control_msg(USB2REL_Handle, $40, 1, 1, 1, buffer, sizeof(buffer), 5000);
  grpRelay1.Caption:= ‘ RELAY-1 = ON ‘;
end;

procedure TForm1.Relay1OffClick(Sender: TObject);
begin
  usb_control_msg(USB2REL_Handle, $40, 1, 0, 1, buffer, sizeof(buffer), 5000);
  grpRelay1.Caption:= ‘ RELAY-1 = OFF ‘;
end;

procedure TForm1.Relay2OnClick(Sender: TObject);
begin
  usb_control_msg(USB2REL_Handle, $40, 1, 1, 2, buffer, sizeof(buffer), 5000);
  grpRelay2.Caption:= ‘ RELAY-2 = ON ‘;
end;

procedure TForm1.Relay2OffClick(Sender: TObject);
begin
  usb_control_msg(USB2REL_Handle, $40, 1, 0, 2, buffer, sizeof(buffer), 5000);
  grpRelay2.Caption:= ‘ RELAY-2 = OFF ‘;
end;

procedure TForm1.AllOnClick(Sender: TObject);
begin
  usb_control_msg(USB2REL_Handle, $40, 2, 0, 0, buffer, sizeof(buffer), 5000);
  grpRelay1.Caption:= ‘ RELAY-1 = ON ‘;
  grpRelay2.Caption:= ‘ RELAY-2 = ON ‘;
end;

procedure TForm1.AllOffClick(Sender: TObject);
begin
  usb_control_msg(USB2REL_Handle, $40, 3, 0, 0, buffer, sizeof(buffer), 5000);
  grpRelay1.Caption:= ‘ RELAY-1 = OFF ‘;
  grpRelay2.Caption:= ‘ RELAY-2 = OFF ‘;
end;

Sangat mudah, bukan?😀

Jika Anda berminat untuk mendapatkan file project Delphi secara lengkap, silakan menuliskan komentar di bawah tulisan ini beserta nama dan alamat email yang benar dan kami akan menginformasikan download link-nya.

Modul USB-2REL dapat dipesan di http://teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

🙂

11 comments

  1. M Nanang Muzzammil · April 28, 2013

    Mas saya boleh tau prosés dr awal gag?
    Saya benar2 belum tau tp saya ingin tau dan bisa.
    Kalo ada tutorial,pengertian2 dan cara memulai sekaligus hardware dan software yg digunakan, saya akan sangat senang sekali.
    Terimakasih sebelumnya dan salam kenal

    • Chandra MDE · April 28, 2013

      Contoh program di atas menggunakan modul USB-2REL yang bisa diorder di http://teknikelektrolinks.com.
      Download link project Delphi telah kami kirim ke alamat email Anda. Semoga bermanfaat.🙂

  2. Nnde · April 29, 2013

    untuk libusb0.dll dan libusb0.pas apa harus download lg apa udh ada dlm project delphi ??
    tolong saya minta contoh programnya dunk as …
    trim’s ..

    • Chandra MDE · April 29, 2013

      File libusb.pas sudah ada dalam project Delphi.
      Untuk kemudahaan penggunaan, silakan download dan instalasi paket driver libusb-win32.
      Terima kasih dan download link sudah kami kirim ke alamat Email Anda.

  3. Abdullah Aslam · Mei 1, 2013

    saya berminat..

  4. Tommy · Mei 3, 2013

    slamat sore pak, selama ini sy bljar vb6. alhamdulillah sdh bsa koneksi via lpt dan serial. apa bisa, vb6 sy koneksikan secara lgsg ke port usb pak? spt pada halnya bpk mengontrol relay via usb. mohon tutorialnya. trima kasih

  5. wawan hitam · Juli 17, 2013

    luar biasa , terimakasih . . . saya tertarik. biasanya kalau gunakan printerport saya menggunakan inpout32.dll. kalau usb saya sama sekali buta . . . tolong bantuannya.

  6. M. Busrol Karim · November 26, 2013

    saya berminat pesan hardwarenya, tolong kirim contoh source code untuk mengontrol hardware dengan delphi ke email saya, terimakasih

    • Chandra MDE · November 26, 2013

      Source code sudah saya kirim ke email. Semoga berkenan.
      Terima kasih.

  7. UYan · Agustus 9, 2014

    Jika tidak Keberatan saya minta filenya mas chandra.
    Uyan, Email: manguyan09@gmail.com
    Salam

  8. uyan sumarna · Agustus 15, 2014

    mas chandra, kalo tidak keberatan saya minta filenya. terima kasih.
    salam
    Uyan S

    email: manguyan09@gmail.com

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