Menampilkan data ke PC melalui serial port menggunakan Borland Delphi

Posted: June 25, 2009 in AVR Project, Interfacing

untuk pemrosesan data dengan tingkat yang lebih rumit, sering kali menggunakan PC atau personal komputer untuk menampilkan data sehingga data yang diambil bisa dibuat grafik atau mungkin disimpan dalam database sebagai record untuk monitoring system misalkan monitoring system suhu berbasis web dan sebagainya. salah satu bahasa pemrograman yang bisa digunakan adalah borland delphi. dalam project ini saya menggunakan borland delphi 6.0 sebagai pemrogramannya.

komponen serial yang saya gunakan adalah TMSComm yang diimpor dari Visual Basic melalui activeX. Port serial yang digunakan adalah Com 1 dengan baudrate 9600 tapi ini nantinya bisa dirubah sesuai dengan kebutuhan. project ini akan membaca data dari masukan adc mikrokontroler ATMega8535 kemudian akan ditampilkan dalam bentuk display angka dan grafik tegangan terhadap waktu. berikut adalah screenshoot programnya :


Gambar 1. screenshoot program borland delphi

Pada postingan yang berjudul “Komunikasi serial AVR” bisa langsung dihubungkan dengan aplikasi ini. Komponen serial port di delphi juga cukup banyak. Biasanya yang paling sering digunakan adalah komponen MSComm dan CPort. tetapi itu terserah kita sebagi programmernya. Aplikasi ini bisa bukan hanya untuk monitoring data, tetapi pada dasarnya bisa dikembangkan juga untuk sistem kontrol.
ini adalah sourcecode lengkap dari project ini :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, MSCommLib_TLB, TeEngine, Series, ExtCtrls,
  TeeProcs, Chart;

type
  TForm1 = class(TForm)
    MSComm1: TMSComm;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Chart1: TChart;
    Series1: TLineSeries;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  mulai: boolean;
  x, data: real;

implementation

{$R *.dfm}

//procedure untuk membuat delay dalam milisecond
procedure delay(interval:integer);
var awal:longint;
begin
   awal:=gettickcount;
   repeat
   application.ProcessMessages
   until (gettickcount-awal) >= longint(interval);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if mscomm1.PortOpen then
mscomm1.PortOpen := false;
//silakan ganti sesuai port yg digunakan
mscomm1.CommPort := 1;
//silakan ganti baudrate sesuai dgn baudrate mikrokontroler
mscomm1.Settings := '9600,n,8,1';
mscomm1.InputLen := 4;
mscomm1.PortOpen := true;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
mulai := true;
x := 0;
delay(500);
while mulai = true do  // looping selama mulai bernilai true
begin
//Rutin Utama
x := x+1;
data := mscomm1.Input;
label1.Caption := floattostr(data);
series1.AddXY(x,data);

if x = 100 then
begin
series1.Clear;
x := 0;
end;

delay(200);

end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
mulai := false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if mscomm1.PortOpen = true then
begin
mscomm1.PortOpen := false;
end;
close;
end;

end.

Link untuk download Full Sourcecode :

Comments
  1. gombez says:

    nek serial indrong onok opo ora?

  2. ADIHOLIX says:

    onok..indrongmu kunciten…

  3. widakdop says:

    nek nampilkan data langsung di save ke txt/excel/ms access gmana master ?

  4. ADIHOLIX says:

    wah kalo itu masih belajar mas widakdop…ntar kalo sempet tak tanyakan ke mas heru,MoW..tunggu aja..

  5. prita says:

    bkn na tu cuma nampilkan data aj y dgn grafik?brarti sma ma monitoring dr grafik aj kn master…..
    trus kontrol nya dmn?klo ad data error yg g d inginkn tp g d tmpilkan piye carane master…….

  6. pengembara says:

    gawean mu apik mister….

  7. tolong buatkan project untuk menggerakkan relay melalui component button ok (mikro pake AT89S51 dan aplikasi form pake DELPHI 7)trims…

  8. 3ddy_y4h0v says:

    wah wah wah… mantap buanget ya… salam kenal para master disini, saya pemula banget ini, gak ngerti masalah komputer.. mohon bimbingannya, bagus banget site ini, tapi kok komennya kayaknya ada yang gak sesuai topik ya kayak komen dari mas Gombez di atas, ya mbok ya o.. kalo komen itu.. apa namanya??? yang mendukung isi site gitu lho mas..

  9. gimana mas? bisa nggak?….

  10. dotkitelectronic says:

    gimana..? ga bisa program di mikrokontrolnya ya?..

  11. dotkitelectronic says:

    aplikasinya pake komponen button ok delphi 7 , MK pake 89S51,RS 485,bikinin contoh pemrograman untuk button ok delphi 7 dan pemrograman untuk MK AT89S51,jadinya klo button di klik relay aktif trus klo di klik lagi relay pasif,gitu lho….maksudku…,,bisa kan..?

  12. CJDW says:

    mas aku nyoba pake software nya tapi error, trus waktu compile file delphi nya ada keterangan gini mas:
    Field Form1.MSComm1 does not have a corresponding component. Remove the declaration?
    ..atau.
    [Fatal Error] Project2.dpr(5): File not found: ‘MSCommLib_TLB.dcu’

    Yo opo mas, maklum masih newbie masalah delphi.
    he..he..
    THanks

  13. CJDW says:

    yo mas wngi tak utak-atik kenek akhire
    suwun.

    • fatoni says:

      boleh minta tolong nggak, aq punya alat bisa komunikasi dengan komputer lewat serial com, aq coba pake hyper terminal alat tersebut bisa mengirim data setelah saya tekan # 0 1 ENTER, kira2 klo bikin program pake delphi gmn ya caranya

  14. hendro says:

    maaf mas, salam kenal nama saya hendro jatmiko dari universitas lampung
    saya sedang skripsi, mau nanya mas bagaimana impor TMSComm dari visual basic, mohon bantuannya

  15. hendro says:

    kalau muncul pesan
    could not convert variant of type (olestr) in type (double)
    piye yo mas

  16. asroful says:

    saya sudah coba, kog pas di klik ‘mulai’ muncul dialog peringatan “invalid variant type conversion”, kira2 apa yang salah.? mohon pencerahannya?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s