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

USB-4REL – Modul Driver Empat Relay Dengan Antarmuka USB

November 17, 2013 Leave a comment

usb4rel_600

USB-4REL adalah modul driver relay dengan antarmuka USB yang dapat digunakan untuk mengontrol 4 buah relay. Modul ini merupakan pengembangan dari modul sebelumnya yang alhamdulillaah sukses di pasaran, yakni USB-2REL.

Dengan modul USB-4REL kita dapat mengontrol lebih banyak peralatan listrik sehingga cocok untuk beberapa aplikasi antara lain: kontrol on/off billing playstation, kontrol on/off lampu billing billiard, kontrol on/off lampu ruangan, kontrol on/off Air Conditioner, dan lain-lain.

USB-4REL dilengkapi dengan CD yang berisi software pengendali relay yang simpel serta dilengkapi dengan source code sehingga dapat dengan mudah dimodifikasi sesuai dengan kebutuhan.

Berikut adalah tampilan program kontrol USB-4REL versi GUI.

usb4rel_pellesc

Program GUI di atas saya buat menggunakan Pelles C, yakni kompiler bahasa C gratisan alias freeware. Sama halnya dengan program USB-2REL, program USB-4REL juga menggunakan library LibUSB-Win32.

Seperti yang terlihat pada gambar di atas, program ini memiliki 6 buah fungsi yakni:

  1. BACA ID MODUL
  2. RELAY-1 ON/OFF
  3. RELAY-2 ON/OFF
  4. RELAY-3 ON/OFF
  5. RELAY-4 ON/OFF, dan
  6. ALL RELAYS ON/OFF

Btw, berikut ini adalah screenshot cuplikan program USB-4REL yang disunting menggunakan IDE Pelles C versi 7.00.355.

usb4rel_pellesc2

Selain program kontrol versi GUI, USB-4REL juga dilengkapi program kontrol versi CONSOLE yakni USB4R.EXE. Berikut adalah screenshot program USB4R.EXE pada console Windows XP.

usb4r_exe

Program versi console ini akan memudahkan pengontrolan modul USB-4REL untuk aplikasi berbasis web menggunakan skrip PHP, Perl, atau yang lain. Selain itu juga memudahkan programmer selain C karena dapat mengeksekusi file aplikasi USB4R.EXE dari programnya.

Contoh Program Kontrol Menggunakan Python dan PyUSB
Berikut adalah listing program kontrol modul USB-4REL menggunakan bahasa pemrograman Python dan modul PyUSB. Sangat gampang. :D

#——————————————————————————-
# Name:     USB-4REL.py
# Purpose:  TESTING PyUSB – USB4REL
# Author:   Chandra MDE
# Created:  28/05/2013 (c) Chandra MDE 2013
#——————————————————————————-

import usb.core
import time

def main():
    usb4rel = usb.core.find(idVendor=5824, idProduct=1500)
    if usb4rel == None:
        print "USB-4REL tidak ditemukan!"
        exit
    else:
        for i in range(1,101):
            print "Perulangan ke-", i

            usb4rel.ctrl_transfer(0x40, 1, 1, 1, None) #R1 ON
            time.sleep(.1) #tunda 100ms
            usb4rel.ctrl_transfer(0x40, 1, 0, 1, None) #R1 OFF
            time.sleep(.1) #tunda 100ms

            usb4rel.ctrl_transfer(0x40, 1, 1, 2, None) #R2 ON
            time.sleep(.1) #tunda 100ms
            usb4rel.ctrl_transfer(0x40, 1, 0, 2, None) #R2 OFF
            time.sleep(.1) #tunda 100ms

            usb4rel.ctrl_transfer(0x40, 1, 1, 3, None) #R3 ON
            time.sleep(.1) #tunda 100ms
            usb4rel.ctrl_transfer(0x40, 1, 0, 3, None) #R3 OFF
            time.sleep(.1) #tunda 100ms

            usb4rel.ctrl_transfer(0x40, 1, 1, 4, None) #R4 ON
            time.sleep(.1) #tunda 100ms
            usb4rel.ctrl_transfer(0x40, 1, 0, 4, None) #R4 OFF
            time.sleep(.1) #tunda 100ms

            for x in range(1,5):
                usb4rel.ctrl_transfer(0x40, 2, 0, 0, None) #ALL ON
                time.sleep(.1) #tunda 100ms
                usb4rel.ctrl_transfer(0x40, 3, 0, 0, None) #ALL OFF
                time.sleep(.1) #tunda 100ms

if __name__ == ‘__main__':
    main()

Program Python di atas adalah program standar kami untuk menguji kerja modul USB-4REL. Program akan menghidupkan dan mematikan masing-masing relay dengan delay 100ms secara bergantian dan dilanjutkan dengan kondisi semua relay ON dan semua relay OFF sebanyak 4 kali dengan delay masing-masing 100ms. Proses tersebut diulang sebanyak 100 kali.

image

Modul USB-4REL kami nyatakan layak jual jika program uji di atas bekerja dengan normal tanpa kendala. :D

Nah, bagaimana menurut Anda tentang USB-4REL? Lumayan, kan? Sekedar informasi, modul pendahulunya yakni USB-2REL telah banyak terjual dan telah digunakan oleh beberapa vendor sistem automatic gate, instansi pendidikan, dan perusahaan seperti Indonesia Ferry dan PT. Sihitang Raya Baru.

Dengan adanya modul USB-4REL, kini semakin lengkaplah keluarga USB Relay buatan Teknik Elektro Links. :D

USBREL

Bagi Anda yang tertarik dengan modul USB-4REL atau modul yang lain, Anda dapat melakukan pemesanan melalui email ke info@teknikelektrolinks.com atau SMS ke 083834849975. Modul disertai CD yang berisi contoh program pengontrolan lengkap dengan source code dan tentunya dilengkapi dengan kabel data USB.

Selamat belajar dan selamat berkarya!

:D

Program Testing Modul LPT-4REL Menggunakan Python + PyParallel Pada Sistem Operasi Linux

October 28, 2013 Leave a comment

Python menurut saya adalah bahasa pemrograman tingkat tinggi yang sangat mudah digunakan karena bahasa pemrograman modular ini dilengkapi dengan modul-modul siap pakai yang sangat banyak.

Saya memang bukan Pawang Python, tapi sekedar pemula yang penasaran dengan popularitas Python. Namun demikian, meskipun pemula, bukan berarti saya baru menggunakan Python. Saya sudah menggunakan Python sejak tahun 2010, dan sungguh sangat disayangkan memang, karena sampai saat ini saya masih berlevel pemula. :D

Btw, alasan lain saya menggunakan Python adalah karena Python adalah interpreter yang platform-independent. Sekali kita bikin program, kode program dapat dijalankan oleh interpreter Python pada berbagai sistem operasi tanpa memerlukan modifikasi. Berbeda dengan pemrograman C atau Pascal yang memerlukan banyak modifikasi atau bahkan membuat program lagi dari awal.

Nah, bernarkah Python itu mudah? Pada tulisan ini akan saya sampaikan sebuah contoh program pengontrolan driver relay LPT-4REL menggunakan Python dan modul PyParallel. Sangat mudah dan ringkas.

Modul PyParallel bisa diinstal langsung dari repository menggunakan program Synaptic atau paket manager pada linux yang kita gunakan. Saya yakin modul PyParallel pasti tersedia pada repository distro linux yang Anda gunakan. Tapi jika memang tidak ada, Anda dapat mengunduhnya melalui link berikut ini:

pyparallel-0.2.zip
(~29.4KB)

Setelah download, lakukan ekstraksi dan instalasi pyparallel melalui shell dengan perintah:

$python setup.py install

Selanjutnya Anda dapat melakukan pengecekan apakah modul PyParallel telah terinstal dengan baik atau tidak dengan cara sebagai berikut:

Jika tidak muncul pesan kesalahan seperti screenshot di atas, maka instalasi PyParallel telah sukses dan modul siap digunakan. Ada beberapa syarat agar sukses mengakses port paralel LPT menggunakan Python dan PyParallel, yakni:

  1. Memerlukan akses ROOT
  2. Modul kernel lp harus di unload. Untuk pengecekan, gunakan perintah: $lsmod. Dan untuk meng-unload modul lp, gunakan perintah: $sudo rmmod lp.
  3. Memerlukan modul kernel ppdev. Biasanya modul ini sudah otomatis ada dan di load (cek dengan lsmod). Jika belum, maka gunakan perintah $sudo modprobe ppdev.

Nah, jika semua persyaratan di atas sudah dipahami dan dipenuhi, maka kita bisa mengujinya dengan membuat program sederhana seperti yang ditunjukkan oleh screenshot terminal berikut ini.

Program di atas akan mengaktifkan relay sesuai dengan urutan pada tuple data. Pada perulangan pertama RELAY-1 ON, pada perulangan kedua RELAY-2 ON, pada perulangan ketiga RELAY-3 ON, dan pada perulangan keempat RELAY4-ON. Berikut adalah data kondisi relay sesuai dengan data yang ditulis ke port LPT:

i = 0 –> data[0] = 1 –> RELAY-1 ON
i = 1 –> data[1] = 2 –> RELAY-2 ON
i = 2 –> data[2] = 4 –> RELAY-3 ON
i = 3 –> data[3] = 8 –> RELAY-4 ON
i = 4 –> data[4] = 0 –> ALL RELAYs OFF
i = 5 –> data[5] = 1 –> RELAY-1 ON
i = 6 –> data[6] = 3 –> RELAY-1,2 ON
i = 7 –> data[7] = 7 –> RELAY-1,2,3 ON
i = 8 –> data[8] = 15 –> RELAY-1,2,3,4 ON
i = 9 –> data[9] = 0 –> ALL RELAYs OFF
i = 10 –> data[10] = 15 –> ALL RELAYs ON
i = 11 –> data[11] = 0 –> ALL RELAYs OFF
i = 12 –> data[12] = 15 –> ALL RELAYs ON
i = 13 –> data[13] = 0 –> ALL RELAYs OFF
i = 14 –> data[14] = 15 –> ALL RELAYs ON
i = 15 –> data[15] = 0 –> ALL RELAYs OFF
i = 16 –> data[16] = 15 –> ALL RELAYs ON
i = 17 –> data[17] = 0 –> ALL RELAYs OFF

Setiap perulangan diberikan sedikit waktu tundaan sekitar 200 milidetik dengan perintah time.sleep(.2)

Nah, semoga tulisan hasil eksperimen ini dapat berguna bagi Anda yang memerlukan.

Selamat belajar dan selamat berkarya!

:D

Follow

Get every new post delivered to your Inbox.

Join 159 other followers