taufik adi sanjaya kendali led
TRANSCRIPT
-
( 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