JustBASIC – Mengontrol Starduino/Arduino + Modul Dua Relay DRV02


jb_starduino_drv02

Jika pada tulisan sebelumnya saya sampaikan sekilas tentang interpreter JustBASIC dan contoh aplikasi pengontrolan LED pada Pin-13 dari board Starduino atau Arduino, maka pada tulisan ini akan saya sampaikan contoh aplikasi pengontrolan 2 buah relay menggunakan Starduino dan modul relay DRV02.

Aplikasi ini saya buat menggunakan interpreter bahasa BASIC freeware asal USA, yakni JustBASIC. JustBASIC sangat mudah dipelajari dan digunakan. 😀

Starduino dan Arduino berkomunikasi dengan PC melalui port serial atau port USB dengan bantuan konverter USB-to-RS232, oleh karenanya pada aplikasi kita sediakan pilihan port serial mulai dari COM1 hingga COM50 menggunakan komponen Windows ComboBox.

Pada JustBASIC, komponen ComboBox dapat diciptakan/dibuat menggunakan perintah:

ComboBox    #dlg.cbPortSerial, portlist$(), [cbPortSerialChanged], 120, 36, 70, 25

#dlg adalah variabel handle dari window aplikasi, sedangkan cbPortSerial adalah nama dari komponen ComboBox yang kita ciptakan.

portlist$() adalah variabel array yang berisi string pilihan dalam ComboBox. Variabel portlist$ diisi dengan pilihan “COM1” sampai dengan “COM50” dengan perintah sebagai berikut:

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

Ket: Baris-baris perintah di atas diletakkan sebelum pendeklarasian ComboBox!

[cbPortSerialChanged] adalah label program yang akan dituju oleh program utama ketika terjadi event pada komponen ComboBox cbPortSerial. Sedangkan 160, 36 adalah koordinat posisi ComboBox pada form aplikasi dan 72, 25 adalah property Width dan Height dari komponen ComboBox.

Adapun komponen-komponen lain yang digunakan adalah StaticText, Button, dan GraphicBox.

StaticText adalah Label kalau pada pemrograman Delphi, Button adalah Command Button, dan GraphicBox adalah komponen spesial untuk menggambar grafik.

Keempat komponen Button dalam sebuah GroupBox dideklarasikan dengan perintah sebagai berikut:

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

ujidrv02_400 [Relay1On] adalah label program yang akan dieksekusi ketika Button Relay1On di-klik oleh user. Demikian juga halnya dengan [Relay1Off], [Relay2On], dan [Relay2Off] untuk masing-masing button yang dimaksud.

Komponen GraphicBox adalah komponen spesial dengan metode pemanipulasian grafik yang spesifik sehingga mudah digunakan. Jika Anda pernah membuat program GDI, maka sebenarnya tidak jauh berbeda, hanya saja JustBASIC menyediakan fungsi-fungsi yang lebih mudah untuk digunakan.

Pada contoh aplikasi pengontrolan 2 buah relay ini, program akan merepresentasikan kondisi relay dengan sebuah rectangle berwarna merah tua dengan border putih tebal jika relay dalam keadaan OFF, dan sebuah rectangle berwarna merah dengan border yang sama jika relay dalam keadaan ON.

Program untuk menggambar rectangle untuk masing-masing relay adalah sebagai berikut:

[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

Sangat mudah. Dan listing program selengkapnya adalah sebagai berikut:

‘– jb_starduino_drv02.bas
‘– Kontrol 2 Buah Relay (DRV02) pada Pin 8 dan Pin 9
‘– Chandra MDE – http://teknikelektrolinks.com
‘– 02/06/2013

    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 – STARDUINO + Modul 2-Relay DRV02" 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$ + ":9600,n,8,1,ds0,cs0,rs" for random as #hCom
    print #hCom, "111"
    close #hCom
    Relay1$ = "\RELAY-1 ON"
    Relay1BackColor$ = RelayOnColor$
    Gosub [DrawRelay]
    wait

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

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

[Relay2Off]
    Com = 16384
    oncomerror [PortSerialError]
    open portserial$ + ":9600,n,8,1,ds0,cs0,rs" for random as #hCom
    print #hCom, "BBB"
    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

Program akan mengirimkan string "111" jika Button RL1 ON di-klik, string "AAA" jika Button RL1 OFF di-klik, string "222" jika Button RL2 ON di-klik, dan string "BBB" jika Button RL2 OFF di-klik.

Agar Starduino atau Arduino dapat menerima perintah dari PC dan mengeksekusi perintah dengan benar, maka sketch programnya adalah sebagai berikut:

image

Upload sketch di atas ke dalam board Starduino atau Arduino dan jalankan aplikasi JustBASIC, maka sekarang kita dapat mengontrol relay DRV02 melalui button-button yang telah disediakan.

Sangat mudah bukan? 😀

Selamat mencoba, selamat belajar, dan selamat berkarya!

🙂

Iklan
Perihal

Cek situs kami di http://teknikelektrolinks.com. Blog Raspberry Pi: http://raspi.teknikelektrolinks.com

Tagged with: , , , ,
Ditulis dalam Antarmuka Komputer, Arduino, Driver Relay, Elektronika, Industrial Control and Automation, JustBASIC, Mikrokontroler, Software/Programming, Starduino

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

Blog Stats
  • 1,298,580 hits

Bergabunglah dengan 2.490 pengikut lainnya

NEO STARDUINO
USB Relay USB-2REL
USB Relay USB-4REL
Water Level Control WLC-02
Serial Relay SER-4REL
NEO STARDUINO SMS ALARM

Alarm SMS Berbasis NEO STARDUINO

1 PC – 6 Unit USB-2REL

Testing 6 USB-2REL Pada 1 Komputer

Standard Pengujian USB-2REL

Pengujian USB-2REL Sebelum Dikirim

LPT-4REL on Knoppix 7.0.5

Testing LPT-4REL on Knoppix Linux

T101 Inkubator Telur

T101 Inkubator Penetas Telur

KONTROL PERALATAN LISTRIK VIA PORT LPT KOMPUTER

Demo Kontrol Kontaktor via Port LPT

STARDUINO meets ANDROID

Demo Kontrol Bluetooth Relay Android

STARDUINO SMS RELAY

Kontrol Relay Via SMS Dengan Starduino

STARDUINO WEB RELAY

Demo Kontrol Relay Via Web/Internet

JustBASIC USB-2REL Control

Demo Kontrol USB-2REL + JustBASIC

STARDUINO + GPS + LCD

Demo Starduino GPS Dengan LCD

USB-2REL EXTREME TEST

Demo Kontrol On/Off Lampu USB-2REL

THERMOSTAT T101 IN ACTION

Demo Thermostat T101 Pada SV=37.5°C

WATER LEVEL CONTROL WLC-02

Demo Kontrol Level Air Tandon WLC-02

HUMIDITY CONTROLLER H103

Demo Kontrol Kelembaban H103 (DHT11)

%d blogger menyukai ini: