Taufik Adi Sanjaya Kendali Led

Embed Size (px)

Citation preview

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.Com 1

    Taufik Adi SanjayaWebsite penulis : http://www.embeddedsystem.itstoshare.com

    Kendali nyala led via komunikasi serial dengan Delphi

    Website http://www.embeddedsystem.itstoshare.com

    Kendali nyala led via komunikasi serial dengan DelphiPada prinsip nya, tulisan ini akan membahas bagaimana cara menyalakan dan

    memadamkan nyala LED (light emiting dioda) melalui komunikasi serial dengan antarmuka aplikasi pada computer yang dibuat dengan menggunakan Delphi 7 . untuk dapat menyalakan dan memadamkan LED yang terkoneksi dengan pin pin mikrokontroller maka harus disepakati dulu protocol komunikasi antara sisi computer dengan sisi mikrokontrollerLebih jelas nya adalah sebagai berikut :

    Jika computer mengirim data serial berupa string ON1+ char(13) dan mikrokontroller menerima karakter tersebut (baca: ON1+ char(13)) maka LED 1 akan di nyalakan, selanjutnya mikrokontroller akan mengirim notifikasi kepada computer berupa string ON1-OK lalu kemudia karakter ini akan di oleh oleh computer untuk menampilkan keterangan LED1 nyalaSedangkan

    Jika computer mengirim data serial berupa string OFF1+ char(13) dan mikrokontroller menerima karakter tersebut (baca: OFF1+ char(13)) maka LED 1 akan di padamkan, selanjutnya mikrokontroller akan mengirim notifikasi kepada computer berupa string OFF1-OK lalu kemudia karakter ini akan di oleh oleh computer untuk menampilkan keterangan LED1 padamTinggal nantinya di pin mikrokontroller manakah LED di hubungkan pada mikrokontroller,

    Lisensi Dokumen:Copyright 2003-2007 IlmuKomputer.ComSeluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    2

    Dalam hal ini PCB yang di sediakan , di desain bahwa LED dipasang pada PINB.0 sampai dengan PIN B.3 , dengan konfigurasi active high yakni jika pin pada mikrokontroller berlogika high (1), maka LED yang terhubung ke Pin mikrokontroller yang dimaksud akan aktif.Selanjutnya berikut ini adalah tabel yang dibuat untuk merencanakan protocol komunikasi yang dapat di mengerti oleh computer dan mirkokontroler untuk saling bercakap-cakap.no Perintah Dari

    computer(dikahiri tanda enter)

    Balasan dari Mikrokontroler

    Aksi mikrokontroler saat ada perintah dari komputer

    Aksi pada computer

    1 ON1 ON1-OK Menyalakan LED di pin C.4

    Menampilkan LED1 nyala

    2 OFF1 OFF1-OK Memadamkan LED di pin C.4

    Menampilkan LED1 padam

    3 ON2 ON2-OK Menyalakan LED di pin C.5

    Menampilkan LED2 nyala

    4 OFF2 OFF2-OK Memadamkan LED di pin C.5

    Menampilkan LED2 padam

    5 ON3 ON3-OK Menyalakan LED di pin C.6

    Menampilkan LED3 nyala

    6 OFF3 OFF3-OK Memadamkan LED di pin C.6

    Menampilkan LED3 padam

    7 ON4 ON4-OK Menyalakan LED di pin C.7

    Menampilkan LED4 nyala

    8 OFF4 OFF4-OK Memadamkan LED di pin C.7

    Menampilkan LED4 padam

    9 ON-ALL ON-ALL-OK Menyalakan LED di pin C4-7

    Menampilkan SEMUA LED nyala

    10 OFFALL OFF-ALL-OK Memadamkan LED di pin C4-7

    Menampilkan SEMUA LED padam

    Dari tabel tersebut di atas , pertama kita buat source code pada software bascom yang akan di download kan ke mikrokontroller

    Source code nya adalah sebagai berikut :$regfile = "m16def.dat"$baud = 9600$crystal = 16000000

    Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = PortA.2 , Rs = Porta.0

    Config Lcd = 16 * 2cls

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    3

    Cursor Off

    Config Portc.0 = inputConfig Portc.1 = inputConfig Portc.2 = inputConfig Portc.3 = input

    Config Portc.4 = outputConfig Portc.5 = outputConfig Portc.6 = outputConfig Portc.7 = output

    Portc.0 = 1Portc.1 = 1Portc.2 = 1Portc.3 = 1

    Portc.4 = 0Portc.5 = 0Portc.6 = 0Portc.7 = 0

    wait 1clslocate 1 , 1lcd "KONTROL LED"locate 2 , 1lcd "SERIAL"

    Dim Perintah As String * 6 Print "Ok!"; Do Input Perintah

    Select Case Perintah

    Case "ON1" : Portc.4 = 1 print "ON1-OK" ; cls locate 1 , 1 lcd perintah Case "ON2" : Portc.5 = 1 cls locate 1 , 1 lcd perintah

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    4

    print "ON2-OK" ; Case "ON3" : Portc.6 = 1 cls print "ON3-OK" ; locate 1 , 1 lcd perintah Case "ON4" : Portc.7 = 1 cls print "ON4-OK"; locate 1 , 1 lcd perintah Case "ON-ALL" : Portc = &B11111111 cls print "ON-ALL-OK"; locate 1 , 1 lcd perintah Case "OFF1" : Portc.4 = 0 cls print "OFF1OK" ; locate 1 , 1 lcd perintah Case "OFF2" : Portc.5 = 0 cls print "OFF2OK"; locate 1 , 1 lcd perintah Case "OFF3" : Portc.6 = 0 cls print "OFF3OK"; locate 1 , 1 lcd perintah Case "OFF4" : Portc.7 = 0 cls print "OFF4-OK"; locate 1 , 1 lcd perintah Case "OFFALL" : Portc = &B00000000 cls print "OFF-ALL-OK"; locate 1 , 1 lcd perintah End Select LoopEndSimpan source code diatas dengna nama semisal kontrol serial led.bas ,

    selanjutnya pada lembar kerja Bascom AVR silakan tekan tombol keyboard F7 atau dapat juga dengan menggunakan menu program compile. Proses compile ini akan

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    5

    menghasilkan file dengan nama kontrol serial led.hex, kontrol serial led.bin dan lain lain yang nantinya file dengan ekstensi hex inilah yang akan di downloadkan ke chip mikrokontroller. (video cara download file dengan extensi hex dari computer ke dalam mikrokontroler dapat dilhat pada folder video.)

    Selanjutnya kita buat source code pada Delphi untuk mengirim data serial ke mikrokontroler dan menerima data yang dikirim dari mikrokontroller ke computer yang nanti nya akan ditampilkan sebagai status kondisi nyala-padamnya LED pada display computer.Komponen nya adalah sebagai berikut :no Nama komponen Properties value

    1 Groupbox1 Caption | Relay Tester |

    2 Button1 Caption ON1

    3 Button2 Caption ON2

    4 Button3 Caption ON3

    5 Button4 Caption ON4

    6 Button5 Caption ON SEMUA

    7 Shape1 Shape stCircle

    8 Shape2 Shape stCircle

    9 Shape3 Shape stCircle

    10 Shape4 Shape stCircle

    11 Shape5 Shape stCircle

    12 Groupbox2 Caption Keterangan

    13 Label1 Caption Keterangan Kondisi Lampu

    14 Memo1 - -

    15 Button Caption Open

    Name Buttonopen

    16 Button Caption Close

    Name ButtonClose

    17 Button Caption Setting

    Name Buttonset

    Selanjutnya untuk tampilan desain aplikasi nya adalah sebagai berikut :

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    6

    Source code untuk masing masing komponen dapat dilihat pada tabel sebagai berikut:

    no Nama komponen

    event Source

    1 Form On create beginshape1.Brush.Color:=clblack;shape2.Brush.Color:=clblack;shape3.Brush.Color:=clblack;shape4.Brush.Color:=clblack;shape5.Brush.Color:=clblack;end;

    2 Button1 onclick beginif button1.Caption='ON1' thenbegincomport1.WriteStr('ON'+#13);shape1.Brush.Color:=clred;

    button1.Caption:='OFF1' endelseif button1.Caption='OFF1'thenbegincomport1.WriteStr('OFF'+#13);shape1.Brush.Color:=clblack;button1.Caption:='ON1'end;end;

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    7

    3 Button2 onclick beginif button2.Caption='ON2' thenbegincomport1.WriteStr('ON2'+#13);shape2.Brush.Color:=clred;button2.Caption:='OFF2' endelseif button2.Caption='OFF2'thenbegincomport1.WriteStr('OFF2'+#13);shape2.Brush.Color:=clblack;button2.Caption:='ON2'end;end;

    4 Button3 onclick beginif button3.Caption='ON3' thenbegincomport1.WriteStr('ON3'+#13);shape3.Brush.Color:=clred;button3.Caption:='OFF3' endelseif button3.Caption='OFF3'thenbegincomport1.WriteStr('OFF3'+#13);shape3.Brush.Color:=clblack;button3.Caption:='ON3'end;end;

    5 Button4 onclick beginif button4.Caption='ON4' thenbegincomport1.WriteStr('ON4'+#13);shape4.Brush.Color:=clred;button4.Caption:='OFF4' endelseif button4.Caption='OFF4'thenbegincomport1.WriteStr('OFF4'+#13);shape4.Brush.Color:=clblack;button4.Caption:='ON4'end;end;

    6 Button5 onclick beginif button5.Caption='ON SEMUA' thenbegin

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    8

    comport1.WriteStr('ON-ALL'+#13);shape5.Brush.Color:=clred;button5.Caption:='OFF SEMUA' endelseif button5.Caption='OFF SEMUA'thenbegincomport1.WriteStr('OFFALL'+#13);shape5.Brush.Color:=clblack;button5.Caption:='ON SEMUA'end;end;

    Buttonset onclick begincomport1.ShowSetupDialog;end;

    Buttonclose onclick BeginApplication.Terminate;End;

    Buttonopen onclick beginif Comport1.Connected then // jika smalll

    port(untuk koneksi dengan port paralel ) sudah terbuka,begin Comport1.Connected :=false; //maka tutup koneksi dengan port paralelButtonOpen.Caption:='Open Driver' //maka

    caption tombol menjadi Open Driverendelse Comport1.Connected :=true; // selain itu,

    buka smallport (terkoneksi dengan port paralel)if Comport1.Connected then

    ButtonOpen.Caption:='Close Driver'; // jika small port terbuka (terkoneksi dengan port serial) maka tombol akan bertuliskan Close Driverend;

    Memo1 onchange var on1,on2,on3,on4,onsemua,off1,off2,off3,off4,offsemua:integer;datamasuk:string;begindatamasuk:=memo1.Lines[memo1.Lines.Count-1];on1:=pos ('ON1-OK',datamasuk);on2:=pos ('ON2-OK',datamasuk);on3:=pos ('ON3-OK',datamasuk);on4:=pos ('ON4-OK',datamasuk);onsemua:=pos ('ON-ALL-OK',datamasuk);

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    9

    off1:=pos ('OFF1-OK',datamasuk);off2:=pos ('OFF2-OK',datamasuk);off3:=pos ('OFF3-OK',datamasuk);off4:=pos ('OFF4-OK',datamasuk);offsemua:=pos ('OFF-ALL-OK',datamasuk);

    if on1 0 thenbeginlabel1.caption:= 'LED1 nyala';end elseif on2 0 thenbeginlabel1.caption:= 'LED2 nyala';end elseif on3 0 thenbeginlabel1.caption:= 'LED3 nyala';end elseif on4 0 thenbeginlabel1.caption:= 'LED4 nyala';end elseif onsemua 0 thenbeginlabel1.caption:= 'SEMUA LED nyala';shape1.Brush.Color:=clred;shape2.Brush.Color:=clred;shape3.Brush.Color:=clred;shape4.Brush.Color:=clred;

    end else

    if off1 0 thenbeginlabel1.caption:= 'LED1 padam';end elseif off2 0 thenbeginlabel1.caption:= 'LED2 padam';end elseif off3 0 thenbeginlabel1.caption:= 'LED3 padam';end else

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    10

    if off4 0 thenbeginlabel1.caption:= 'LED4 padam';end elseif offsemua 0 thenbeginlabel1.caption:= 'SEMUA LED padam';shape1.Brush.Color:=clblack;shape2.Brush.Color:=clblack;shape3.Brush.Color:=clblack;shape4.Brush.Color:=clblack;

    end;end;

    Comport1 onrxchar var Str, datamasuk: String;begincomport1.ReadStr(str,count);memo1.Text:=memo1.Text+str;datamasuk:=memo1.Lines[memo1.Lines.Count-1];

    form1.Caption:=datamasuk;

    Keterangan fungsi pos pada bagian memo text adalah sebagai berikut:Fungsi pos adalah untuk mencari kata tertentu yang sesuai dengan kata kuncil yang telah di set, jika ada maka dia bernilai 1 (bukan 0)Dalam contoh tersebut , kita ambil on1:=pos ('ON1-OK',datamasuk); berarti jika ada karakter ON1-OK pada memo1 baris terakhir , maka nilai on 1 adalah 1 (bukan 0), setelah itu aka nada tugas lain yang di lakukan yakni menampilkan tulisan led 1 nyala pada komponen label1Sebagai mana source code sebagai berikut :

    if on1 0 thenbeginlabel1.caption:= 'LED1 nyala';end else

    Eksekusi program , seharusnya aplikasi menjadi sebagai berikut :

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    11

    Pertama kali klik setting port, pilih com number, baud rate dll

    Kemudian klik open port, baru dapat dipergunakan untuk pengontrolan

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    12

    Penutup

    Semoga bermanfaat dan Selamat Berkarya.

    Silakan baca tulisan saya di IlmuKomputer.com sebagai berikut:1. Akses SMS dengan Delphi 7: Kirim dan terima SMS di Hand Phone Nokia dengan Mudah menggunakan komponen Oxygen SMS pada Delphi7.0 2. Akses SMS dengan Delphi 7: Membuat SMS Broadcaster dengan Delphi 7.0 menggunakan komponen oxygen SMS3. Mengakses database Access dengan Delphi 7.04. Membuat report pada Delphi 7.0 menggunakan komponen Rave Report5. Mengakses port parallel PC dengan Delphi 7.0 menggunakan komponen Small Port6. Cara Instalasi komponen Oxygen SMS pada Delphi 7.07. Cara Instalasi komponen Small Port pada Delphi 7.08. Instalisasi Sui Pack Pada Delphi 7.09. Mempercantik tampilan Program yag dibuat dengan Delphi 7.0 menggunakan Komponen Suipack10. Membuat Web sederhana dengan Joomla11. Membuat Dialog Killer dengan Delphi 712. Memproteksi file PDF (PDF SECURE)13. Memproteksi file PDF dengan password14. Program untuk Capture Foto dengan Webcam menggunakan Delphi 7.015. Menggunakan grafik / chart pada Borland Delphi 7

  • ( Catatlah semua impianmu dalam lembaran kertas (agar engkau tidak lupa), coretlah setiap impian yang telah terwujud oleh Allah, tambahkan catatan impian yang akan engkau wujudkan, yakinlah semua impian akan terwujud ) (Taufik Adi Sanjaya)

    Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com

    13

    16. Menghapus karakter / huruf tertentu dalam teks pada komponen edit atau label di Delphi 17. Menghapus SPASI dalam teks pada komponen edit atau label di Delphi 18. Contoh aplikasi komunikasi serial delphi19. Virtual serial port , Solusi simulasi komunikasi serial computer dalam satu computer

    Dan masih banyak lagi

    Referensi

    Biografi PenulisTaufik Adi Sanjaya. Numpang lahir di Garut, Jawa Barat. Dibesarkan di Kulon Progo. Saat ini tinggal di Bantul, Daerah Istimewa Yogyakarta. Konsentrasi Study yang diambil adalah Kendali Industri. Di Universitas Negeri Yogyakarta. Pemrograman Delphi (khususnya Akses Port Paralel PC, port serial, pemrograman mikrokontroller keluarga AVR dengan Bascom AVR.

    Website http://www.embeddedsystem.itstoshare.com

    Blog Resmi Penulis http://taufikadisanjaya.blogspot.com/

    Email : [email protected] : 085743320570