Archive

Archive for the ‘Driver Relay’ Category

SER-2REL – Modul Relay Serial RS232 Dengan Segudang Contoh Program Meliputi VB.NET, Python, ThinBASIC dan JustBASIC

March 3, 2014 2 comments

telinks_ser_2rel_640

Jika Anda ingin mengendalikan 2 buah relay dari komputer atau laptop, maka modul SER-2REL sangat cocok untuk Anda karena modul ini memiliki 2 buah relay yang dapat dikontrol melalui komputer atau laptop menggunakan komunikasi data serial. Dibandingkan dengan USB-2REL, modul ini lebih mudah pemrogramannya.

“Tapi laptop saya tidak punya port serial, yang ada cuma port USB saja Pak……”

Tenang. Dengan menggunakan kabel konverter USB-to-Serial, maka modul SER-2REL dapat dikontrol melalui port USB – tanpa mengubah program sedikitpun! Jadi apapun komputer Anda, apapun laptop Anda, modul SER-2REL dapat Anda gunakan untuk berbagai keperluan seperti mengontrol beban bertegangan AC 220V maupun beban bertegangan DC.

Modul SER-2RE dirancang sedemikian rupa agar dapat digunakan untuk berbagai aplikasi driving sederhana seperti eksperimen antarmuka komputer, mengontrol peralatan listrik (AC/DC), mengontrol sirine/alarm atau fan. Namun demikian, modul ini juga mampu digunakan untuk menggerakkan power driver motor AC induksi 3-fasa berukuran besar.

Modul SER-2REL disertai CD yang berisi program aplikasi pengendali relay lengkap dengan kode programnya sehingga Anda bisa mempelajari dan memodifikasi program sesuai dengan kebutuhan aplikasi Anda.

Adapun spesifikasi modul SER-2REL adalah sebagai berikut:

  • Power Supply: DC 5V
  • Dual-type DC Input: Socket & Screw
  • Konektor serial DB9 Male
  • LED Indicator Status: menyatakan modul aktif (berkedip-kedip)
  • LED Indicator untuk masing-masing relay
  • 2-buah relay dengan kualitas yang baik
  • Dilengkapi dengan CD contoh program lengkap dengan kode program VB.NET, Python, ThinBASIC dan Just BASIC

Program Kontrol Versi VB.NET

Berikut adalah tampilan program kontrol SER-2REL versi VB.NET Express Edition 2005:

ser2rel_vbnet

Ketika button ON diklik, maka program akan mengirimkan perintah kepada modul untuk mengaktifkan relay. Sebaliknya, jika button OFF ditekan, maka program akan mengirimkan perintah kepada modul untuk mematikan relay. Untuk mengaktifkan Relay1, program komputer harus mengirimkan data karakter ‘A’ ke mikrokontroler SER-2REL, dan untuk mematikan Relay1, program komputer harus mengirimkan data karakter ‘X’ ke mikrokontroler SER-2REL. Sedangkan untuk Relay2, data karakter ON adalah ‘B’ dan data karakter OFF adalah ‘Y’.

Untuk mengaktifkan kedua relay secara bersamaan, program komputer harus mengirimkan data karakter ‘C’ dan untuk mematikan kedua relay secara bersamaan, data karakter yang harus dikirim adalah ‘Z’.

Berikut adalah kode program VB.NET untuk program kontrol modul SER-2REL.

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 0 To _
           My.Computer.Ports.SerialPortNames.Count - 1
            ComboBox1.Items.Add( _
               My.Computer.Ports.SerialPortNames(i))
        Next
        btnDisconnect.Enabled = False
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim i As Integer

        For i = 1 To 50
            SerialPort1.Write("A")
            Application.DoEvents()
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer

        For i = 1 To 50
            SerialPort1.Write("X")
            Application.DoEvents()
        Next
    End Sub

    Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
        If SerialPort1.IsOpen Then
            SerialPort1.Close()
        End If

        Try
            With SerialPort1
                .PortName = ComboBox1.Text
                .BaudRate = 2400
                .Parity = IO.Ports.Parity.None
                .DataBits = 8
                .StopBits = IO.Ports.StopBits.One
            End With
            SerialPort1.Open()

            TextBox1.Text = ComboBox1.Text & " connected."
            btnConnect.Enabled = False
            btnDisconnect.Enabled = True
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

    Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
        Try
            SerialPort1.Close()
            TextBox1.Text = SerialPort1.PortName & " disconnected."
            btnConnect.Enabled = True
            btnDisconnect.Enabled = False
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim i As Integer

        For i = 1 To 50
            SerialPort1.Write("B")
            Application.DoEvents()
        Next
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim i As Integer

        For i = 1 To 50
            SerialPort1.Write("Y")
            Application.DoEvents()
        Next
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim i As Integer

        For i = 1 To 50
            SerialPort1.Write("C")
            Application.DoEvents()
        Next
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Dim i As Integer

        For i = 1 To 50
            SerialPort1.Write("Z")
            Application.DoEvents()
        Next
    End Sub
End Class

Program Kontrol Versi Python

Program kontrol versi Python menggunakan modul PySerial untuk antarmuka komunikasi serial. Contoh program kontrol modul SER-2REL versi Python ini masih mode console, belum GUI. Berikut adalah tampilan program hasil pengujian.

ser2rel_python_600

ser2rel_python

Kode program versi Python tentunya dapat Anda miliki jika membeli modul SER-2REL karena akan ada pada CD bawaan modul SER-2REL.

Program Kontrol Versi ThinBASIC

Program kontrol selanjutnya adalah versi ThinBASIC. Interpreter freeware yang semakin populer ini sangat cocok bagi penggemar BASIC yang cenderung bersifat gamblang, detil dan rapih. Berikut adalah kode program dan tampilan program versi ThinBASIC.

' TB_SER2REL_GUI
' Chandra MDE - http://teknikelektrolinks.com
 
Uses "UI"
Uses "COMM", "Console"

Begin ControlID              
  %btnRelay1On, %btnRelay2On, %btnAllRelayOn
   
  %btnRelay1Off, %btnRelay2Off, %btnAllRelayOff
  
  %label1, %label2, %label3, %label4
End ControlID    

Begin Const
  %MAIN_WIDTH   = 505
  %MAIN_HEIGHT  = 240
  %BAUDRATE     = 2400
End Const

Dim COMMPort As String = "COM1"
Dim hcomm As Long
Dim RelayOn(3) As String  = "AAA", "BBB", "CCC"
Dim RelayOff(3) As String = "XXX", "YYY", "ZZZ"
                          
Function TBMain()
  Local hDlg As DWord
                                                           
  Dialog Font "Tahoma", 9
  Dialog New Pixels, 0, "SER-2REL Controller Using COMM Module (COM1 @2400baudrate)",-1,-1, %MAIN_WIDTH, %MAIN_HEIGHT,_
    %WS_POPUP Or %WS_VISIBLE Or %WS_CAPTION Or %WS_SYSMENU Or %WS_MINIMIZEBOX To hDlg
  
  Control Add Button, hDlg, %btnRelay1On, "RELAY-1 ON" , 15, 20, 225, 30, Call DoRelay()
  Control Add Button, hDlg, %btnRelay1Off, "RELAY-1 OFF", 15, 55, 225, 30, Call DoRelay()
  
  Control Add Button, hDlg, %btnRelay2On, "RELAY-2 ON" , 265, 20, 225, 30, Call DoRelay()
  Control Add Button, hDlg, %btnRelay2Off, "RELAY-2 OFF", 265, 55, 225, 30, Call DoRelay()
  
  Control Add Button, hDlg, %btnAllRelayOn, "ALL RELAY ON" , 15, 105, 225, 60, Call DoRelay()
  Control Add Button, hDlg, %btnAllRelayOff, "ALL RELAY OFF", 265, 105, 225, 60, Call DoRelay()
  
  Control Add Label, hDlg, %label1, "SER-2REL Controller by Chandra MDE", 20, 190, 300, 15
  Control Add Label, hDlg, %label2, "Teknik Elektro Links - http://teknikelektrolinks.com", 20, 206, 300, 15
  Control Add Label, hDlg, %label3, "[ Created using ThinBASIC ]", 330, 190, 300, 15                          
  Control Add Label, hDlg, %label4, "1.9.11.0 and 1.8.9.0", 350, 206, 300, 15
 
  Dialog Show Modal hDlg, Call cbDialog
End Function

CallBack Function cbDialog()
  Select Case CBMSG
    Case %WM_INITDIALOG     
      hcomm = COMM_FreeFile
      COMM_Open("COM1", hComm)
      COMM_Set(hcomm, %COMM_BAUD, %BAUDRATE)
      If Err<>0 Then
        MsgBox 0, "Error opening COM1"
        End
      End If
    Case %WM_COMMAND

    Case %WM_CLOSE

  End Select
End Function                                          

CallBack Sub DoRelay() 
  Local ID As DWord           
  
  If Callback_Message=%WM_COMMAND And Callback_Control_Message = %BN_CLICKED Then
  	ID = Callback_Control - %btnRelay1On + 1
  	If Inside(ID, 1, 3) Then
  	  COMM_Send(hcomm, RelayOn(ID))
  	Else
  		COMM_Send(hcomm, RelayOff(ID-3))
  	End If
  End If
End Sub

thinbasic_ser2rel

Program Kontrol Versi Just BASIC 1.01

Untuk semakin memperkaya CD bawaan SER-2REL, kami juga memberikan contoh program kontrol yang dibuat menggunakan Just BASIC 1.01. Just BASIC adalah interpreter bahasa BASIC (freeware) untuk platform Windows yang sangat mudah dipelajari dan digunakan. Berikut adalah tampilan program kontrol modul SER-2REL yang dibuat dengan Just BASIC 1.01:

jb_ser2rel_1 jb_ser2rel_3

jb_ser2rel_usbtors232_800

Berikut adalah kode program kontrol SER-2REL versi JustBASIC 1.01:

'-- jb_ser2rel.bas
'-- Kontrol 2 Buah Relay Serial (SER-2REL)
'-- Chandra MDE - http://teknikelektrolinks.com

    nomainwin

    WindowWidth = 400
    WindowHeight = 280

    UpperLeftX = int((DisplayWidth- WindowWidth)/2)
    UpperLeftY = int((DisplayHeight- WindowHeight)/2)

    dim portlist$(50)
    for i=1 to 50
        portlist$(i) = "COM"+str$(i)
    next

    portserial$ = portlist$(1)

    Relay1$ = "\RELAY-1 OFF"
    Relay2$ = "\RELAY-2 OFF"

    RelayOnColor$ = "backcolor 255 0 0"
    RelayOffColor$ = "backcolor 100 0 0"

    Relay1BackColor$ = RelayOffColor$
    Relay2BackColor$ = RelayOffColor$

    groupbox    #dlg.group1, "Port Serial:", 20, 15, 195, 58
    statictext  #dlg.label1, "Nomor Port:", 35, 40, 85, 20
    ComboBox    #dlg.cbPortSerial, portlist$(), [cbPortSerialChanged], 120, 36, 70, 25

    groupbox    #dlg.group2, "Kontrol:", 20, 85, 195, 100
    button      #dlg.Relay1On, "RL1 ON", [Relay1On], UL, 35, 105, 80, 28
    button      #dlg.Relay1Off, "RL1 OFF", [Relay1Off], UL, 120, 105, 80, 28
    button      #dlg.Relay2On, "RL2 ON", [Relay2On], UL, 35, 145, 80, 28
    button      #dlg.Relay2Off, "RL2 OFF", [Relay2Off], UL, 120, 145, 80, 28

    graphicbox  #dlg.gbox, 230, 20, 145, 165

    statictext  #dlg.about1, "By Chandra MDE - Teknik Elektro Links", 20, 210, 220, 15
    statictext  #dlg.about2, "http://teknikelektrolinks.com", 20, 225, 200, 20
    statictext  #dlg.about3, "[JustBASIC 1.01]", 248, 220, 150, 20

    open "TELINKS - Demo Kontrol Modul SER-2REL" for dialog as #dlg
    print #dlg, "font Tahoma 9 bold"
    print #dlg.about1, "!font Tahoma 8 bold"
    print #dlg.about2, "!font Tahoma 8 bold"
    print #dlg.about3, "!font Tahoma 11 bold"
    print #dlg.gbox, "font Arial 10 bold"
    print #dlg.cbPortSerial, "selectindex 1"

    gosub [DrawRelay]

[mainLoop]
    wait

[DrawRelay]
    print #dlg.gbox, "home"
    print #dlg.gbox, "down"
    print #dlg.gbox, "fill black"
    print #dlg.gbox, "size 3"
    print #dlg.gbox, "color 255 255 255"
    print #dlg.gbox, Relay1BackColor$
    print #dlg.gbox, "place 15 15"
    print #dlg.gbox, "boxfilled 125 70"
    print #dlg.gbox, "place 30 46"
    print #dlg.gbox, "color 255 255 100"
    print #dlg.gbox, Relay1$
    print #dlg.gbox, "color 255 255 255"
    print #dlg.gbox, Relay2BackColor$
    print #dlg.gbox, "place 15 145"
    print #dlg.gbox, "boxfilled 125 90"
    print #dlg.gbox, "place 30 122"
    print #dlg.gbox, "color 255 255 100"
    print #dlg.gbox, Relay2$
    print #dlg.gbox, "flush"
    return

[Relay1On]
    Com = 16384
    oncomerror [PortSerialError]
    open portserial$ + ":2400,n,8,1,ds0,cs0,rs" for random as #hCom
    print #hCom, "AAA"
    close #hCom
    Relay1$ = "\RELAY-1 ON"
    Relay1BackColor$ = RelayOnColor$
    Gosub [DrawRelay]
    wait

[Relay1Off]
    Com = 16384
    oncomerror [PortSerialError]
    open portserial$ + ":2400,n,8,1,ds0,cs0,rs" for random as #hCom
    print #hCom, "XXX"
    close #hCom
    Relay1$ = "\RELAY-1 OFF"
    Relay1BackColor$ = RelayOffColor$
    Gosub [DrawRelay]
    wait

[Relay2On]
    Com = 16384
    oncomerror [PortSerialError]
    open portserial$ + ":2400,n,8,1,ds0,cs0,rs" for random as #hCom
    print #hCom, "BBB"
    close #hCom
    Relay2$ = "\RELAY-2 ON"
    Relay2BackColor$ = RelayOnColor$
    Gosub [DrawRelay]
    wait

[Relay2Off]
    Com = 16384
    oncomerror [PortSerialError]
    open portserial$ + ":2400,n,8,1,ds0,cs0,rs" for random as #hCom
    print #hCom, "YYY"
    close #hCom
    Relay2$ = "\RELAY-2 OFF"
    Relay2BackColor$ = RelayOffColor$
    Gosub [DrawRelay]
    wait

[cbPortSerialChanged]
    #dlg.cbPortSerial "selection? portserial$"
    wait

[PortSerialError]
    notice "Error at opening port "; portserial$
    wait

Sangat menarik, bukan? :D

Foto Pengujian

Setiap produk kami uji untuk memastikan bahwa produk yang kami kirim telah berfungsi dengan baik. Berikut adalah foto hasil pengujian modul SER-2REL.

telinks_uji_ser_2rel

Pemesanan

Jika Anda berminat dengan modul ini, Anda dapat memesannya melalui situs kami di: http://teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

Smile

USB2RIOC.EXE – Command-Line Tool Untuk Mengontrol Modul USB-2RIO

November 25, 2013 Leave a comment

usb2rio2

USB-2RIO adalah modul interfacing dengan antarmuka USB yang memiliki dua relay seperti halnya modul USB-2REL. Selain 2 relay, modul ini memiliki dua pin I/O digital yang masing-masing dapat diprogram fungsinya sebagai input atau output.

Modul USB-2RIO tidak memerlukan catu daya eksternal karena menggunakan catu daya 5V dari port USB. Oleh karenanya modul ini sangat mudah digunakan. Terlebih lagi, semua modul USB Relay buatan  Teknik Elektro Links menggunakan sistem rangkaian anti-spike yang seringkali menyebabkan mikrokontroler mengalami reset atau hang ketika relay berubah kondisi dari OFF menjadi ON, apalagi jika relay digunakan untuk menggerakkan beban bertegangan AC dengan daya yang cukup besar.

Berikut adalah link video pengujian modul USB Relay yang kami buat untuk memastikan performa dari modul USB Relay kami.

  1. USB-2REL Standard Testing: http://youtu.be/zgN1gDzdEWg
  2. USB-2REL + 280W Hand Drill: http://youtu.be/12fS-zNR-gM
  3. USB-2REL + 2x5W Bulb (High-Speed): http://youtu.be/FAEJcyCh4l8

Untuk mengontrol modul USB-2RIO kami menyediakan contoh program dalam bahasa C yang dilengkapi dengan source code sehingga dapat dipelajari dan dimodifikasi sesuai dengan kebutuhan. Berikut adalah tampilan program kontrol USB-2RIO.

usb2rio_windows

Selain program USB-2RIO versi GUI, kami juga menyediakan sebuah command-line tool yang dapat digunakan untuk mengontrol dan membaca kondisi pin IO USB-2RIO. Berikut adalah tampilan program USB2RIOC.EXE pada windows console.

usb2rioc

Jika program USB2RIOC.EXE dipanggil tanpa parameter, maka program akan menampilkan parameter-parameter yang dikenali program beserta fungsinya dan juga beberapa contoh penggunaannya seperti ditunjukkan oleh screenshot di atas.

Berikut adalah tabel parameter program USB2RIOC.EXE beserta fungsinya.

Parameter Fungsi
ID Membaca ID modul USB-2RIO. Modul akan mengembalikan nilai string “ID Modul = USB2RIO”
R1 RELAY1 ON
r1 RELAY1 OFF
R2 RELAY2 ON
r2 RELAY2 OFF
RA RELAY1 dan RELAY2 ON
rA RELAY1 dan RELAY2 OFF
IN Membaca kondisi pin IO1 dan IO2. Modul mengembalikan nilai string “IO Status = XX”, dengan X = H/L (H=HIGH, L=LOW)
I1 Konfigurasikan pin IO1 sebagai INPUT
O1 Konfigurasikan pin IO1 sebagai OUTPUT
I2 Konfigurasikan pin IO2 sebagai INPUT
O2 Konfigurasikan pin IO2 sebagai OUTPUT
IA Konfigurasikan pin IO1 dan IO2 sebagai INPUT
OA Konfigurasikan pin IO1 dan IO2 sebagai OUTPUT
IO1 Set output pin IO1 = HIGH
io1 Set output pin IO1 = LOW
IO2 Set output pin IO2 = HIGH
io2 Set output pin IO2 = LOW
IOA Set output pin IO1 dan IO2 = HIGH
ioA Set output pin IO1 dan IO2 = LOW

Cukup banyak, bukan? :D

Salah satu kelebihan program USB2RIOC.EXE adalah mampu menerima serentetan parameter yang dikenalinya dan melakukan aksi sesuai urutan parameter yang diterimanya. Parameter yang tidak dikenali tidak akan dieksekusi.

Berikut adalah beberapa contoh hasil eksekusi program USB2RIOC.EXE.

usb2rioc2

Untuk menghasilkan efek flicker pada RELAY1, kita bisa memanggil USB2RIOC.EXE dengan parameter sebagai berikut:

C:\>usb2rioc R1 r1

Untuk membaca kondisi pin IO1 dan IO2 dan mengaktifkan RELAY1 dan RELAY2:

C:\>usb2rioc IN RA

Untuk membaca ID modul:

C:\>usb2rioc ID

Untuk mengkonfigurasi pin IO1 sebagai OUTPUT dan mengeset nilai outputnya menjadi HIGH:

C:\>usb2rioc I1 IO1

Untuk membuat flip-flop pada RELAY1 dan RELAY2 bisa dibuat sebuah file batch sebagai berikut:

@echo off
:ulangi
usb2rio R1 r2
usb2rio r1 R2
goto ulangi

Untuk menghentikan program, tekan CTRL-C dan Y (YES).

Dan berikut ini adalah contoh membuat lampu LED flip-flop pada pin IO:

@echo off
usb2rioc OA
:ulangi
usb2rioc IO1 io2
usb2rioc io1 IO2
goto ulangi

Untuk menghentikan program, tekan CTRL-C dan Y (YES).

Nah, dengan command-line tool USB2RIOC.EXE ini, kita dapat dengan mudah membuat program kontrol menggunakan bahasa pemrograman yang kita sukai atau kita mampu. Sebagai contoh, jika Anda ingin mengontrol modul USB-2RIO menggunakan PHP, maka Anda dapat menggunakan perintah exec seperti contoh berikut ini.

exec("USB2RIOC.EXE R2" . $CMD, $Output);

Atau jika Anda pengguna Delphi, maka perintah ShellExecute dapat Anda gunakan seperti contoh berikut ini.

filename := ‘c:\usb2r.exe’;
ShellExecute(handle,’open’,PChar(filename), ‘R1′,’’,SW_SHOWNORMAL);

Dan bagi pengguna VB.NET fungsi Shell dapat digunakan seperti contoh berikut ini.

Shell("""C:\USB2R"" R1 R1", , True, 10000)

Nah, jika Anda menginginkan atau membutuhkan modul interfacing yang praktis untuk laptop atau netbook Anda, silakan melakukan pemesanan melalui email ke info@teknikelektrolinks.com atau SMS ke 083834849975.

Selamat belajar dan selamat berkarya!

:D

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

November 23, 2013 Leave a comment

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!

:D

Follow

Get every new post delivered to your Inbox.

Join 165 other followers