Album Foto Facebook Teknik Elektro Links

April 24, 2014 Leave a comment

fbphotos

Album foto facebook Teknik Elektro Links yang berisi foto kegiatan, foto produk dan screenshots mungkin menarik untuk Anda telusuri, silakan kunjungi facebook kami atau menjadi teman facebook kami di: https://www.facebook.com/telinks/photos_all.

Selamat belajar dan selamat berkarya!

:D

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

7SEGCALC.EXE – Program Bantu Untuk Perancangan Seven-Segment

February 27, 2014 8 comments

sevensegment Ketika kita menggunakan Seven-Segment Display pada aplikasi mikrokontroler, kita harus menghitung nilai-nilai konstanta yang nantinya harus kita tuliskan pada port keluaran yang kita gunakan sebagai port data display agar display menampilkan suatu angka atau huruf atau simbol tertentu.

Untuk mudahnya, biasanya urutan pin pada port data mikro disesuaikan dengan urutan pin pada seven-segment. Semisal kita menggunakan PORTB sebagai port data, maka urutan koneksinya adalah: PB0 – a, PB1 – b, PB2 – c, PB3 – d, PB-4 – e, PB5 – f, PB6 – g dan PB7 – h (dot). Dari urutan tersebut bisa dihitung berapa nilai konstanta yang harus dikirim ke port data untuk menghasilkan tampilan angka atau huruf atau simbol pada seven-segment. Dan selama kita menggunakan desain yang sama, maka kita tidak perlu mengganti data untuk tampilan seven segment.

Dengan urutan koneksi seperti itu, maka untuk menghasilkan tampilan angka 7 mikro harus mengeset PORTB dengan data 0b00000111 jika seven-segment yang digunakan adalah tipe Common-Cathode dan data 0b11111000 jika seven-segment yang digunakan adalah tipe Common-Anode.

Namun pada prakteknya, kita bebas menentukan koneksi antara pin mikro dengan pin seven-segment. Dan terkadang kita "terpaksa" menggunakan pin I/O dari beberapa port yang tidak berurutan demi kemudahan layout PCB yang akan kita buat. Dengan perubahan urutan koneksi antara pin mikro dan pin seven-segment maka kombinasi bit pun akan berbeda sehingga diperlukan konstanta nilai yang berbeda pula.

Nah, sambil berlatih pemrograman, saya membuat program bantu yang dapat memudahkan proses tersebut sehingga kita tidak perlu repot-repot menghitung konstanta nilai tampilan seven-segment. Program saya buat menggunakan Lazarus dan FreePascal.

Dengan program ini, kita tidak perlu lagi menghitung untuk mendapatkan nilai konstanta untuk tampilan tertentu. Program berlaku untuk seven-segment tipe Common-Cathode maupun tipe Common-Anode. Dan tidak hanya itu, kita juga bebas menentukan urutan koneksi (pin assignment) sesuai dengan rangkaian yang kita buat. Oleh karenanya program ini dapat mengakomodasi segala konfigurasi rangkaian seven-segment.

Berikut adalah tampilan program untuk tampilan angka 7 dengan pin assignment sebagai berikut:

  • Pin-0 = LED a
  • Pin-1 = LED b
  • Pin-2 = LED c
  • Pin-3 = LED d
  • Pin-4 = LED e
  • Pin-5 = LED f
  • Pin-6 = LED g
  • Pin-7 = LED h (dot)

telinks_7segcalc_1

Angka 7 Common-Cathode

telinks_7segcalc_2

Angka 7 Common-Anode


Pengoperasian Program

LED a – LED h akan berganti status dari off ke on atau sebaliknya jika diklik menggunakan mouse. Warna putih menyatakan LED=off, dan warna merah menyatakan LED=on.

Untuk menyesuaikan pin assignment, klik label LED pada Group Pin-7 – Pin-0. Ketika Anda mengganti salah satu pin assignment, maka secara otomatis, program akan mencari adanya assignment yang sama, dan secara otomatis pula akan menukarkannya sehingga tidak ada pin assignment yang sama untuk masing-masing LED. Hal ini untuk mencegah terjadinya kesalahan assignment, sehingga dapat dijamin nilai bytecode yang dihasilkan senantiasa benar.

Untuk mengganti tipe Seven-Segment, Anda dapat meng-klik pilihan Common-Cathode atau Common-Anode. Ketika terjadi perubahan tipe seven-segment, maka nilai bytecode juga akan berubah.

Berikut adalah tampilan program untuk tampilan angka 3 dengan urutan koneksi pin yang berbeda.

telinks_7segcalc_3

telinks_7segcalc_4

Nah, cukup menarik bukan? :D

Program ini masih dapat dikembangkan dengan menambahkan fasilitas untuk menghasilkan (generate) kode program untuk konstanta nilai tampilan 0-9 dan A-F dalam bahasa C yang valid untuk kompiler C mikrokontroler AVR maupun MCS-51. Mudah-mudah bisa terlaksana. :)

Download Link

Anda dapat memiliki dan menggunakan program bantu ini secara gratis. Silakan download program 7SEGCALC.EXE ini dan silakan dievaluasi. Saran dan masukan dari Anda tentunya sangat saya harapkan untuk pengembangan program ini.

7segcalc.rar

( ~587 KB )

Versi Linux

Program bantu ini juga tersedia untuk platform linux. Berikut adalah tampilan program versi linux yang running pada Debian GNU Linux 7 (Wheezy).

telinks_7segcalc_debian

Dan berikut ini adalah tampilan program yang running pada Ubuntu Linux.

telinks_7segcalc_ubuntu

Program versi linux dapat Anda download melalui link berikut ini:

7segcalc.tar.gz

( ~1.87 MB )

Source Code

Program ini saya buat menggunakan Lazarus 1.0 dengan FPC 2.6.0. Anda bisa mendapatkan source code program ini dengan cara menyalurkan donasi. Jika Anda berminat silakan menghubungi saya melalui email ke info@teknikelektrolinks.com.

Selamat belajar dan selamat berkarya!

:D

Follow

Get every new post delivered to your Inbox.

Join 153 other followers