Download

11/17/2012

Menampilkan data ke PC melalui serial port menggunakan Borland Delphi



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 :
001unit Unit1;
002
003interface
004
005uses
006  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
007  Dialogs, StdCtrls, OleCtrls, MSCommLib_TLB, TeEngine, Series, ExtCtrls,
008  TeeProcs, Chart;
009
010type
011  TForm1 = class(TForm)
012    MSComm1: TMSComm;
013    Button1: TButton;
014    Button2: TButton;
015    Button3: TButton;
016    Label1: TLabel;
017    Label2: TLabel;
018    Chart1: TChart;
019    Series1: TLineSeries;
020    procedure FormCreate(Sender: TObject);
021    procedure Button1Click(Sender: TObject);
022    procedure Button2Click(Sender: TObject);
023    procedure Button3Click(Sender: TObject);
024  private
025    { Private declarations }
026  public
027    { Public declarations }
028  end;
029
030var
031  Form1: TForm1;
032  mulai: boolean;
033  x, data: real;
034
035implementation
036
037{$R *.dfm}
038
039//procedure untuk membuat delay dalam milisecond
040procedure delay(interval:integer);
041var awal:longint;
042begin
043   awal:=gettickcount;
044   repeat
045   application.ProcessMessages
046   until (gettickcount-awal) >= longint(interval);
047end;
048
049procedure TForm1.FormCreate(Sender: TObject);
050begin
051if mscomm1.PortOpen then
052mscomm1.PortOpen := false;
053//silakan ganti sesuai port yg digunakan
054mscomm1.CommPort := 1;
055//silakan ganti baudrate sesuai dgn baudrate mikrokontroler
056mscomm1.Settings := '9600,n,8,1';
057mscomm1.InputLen := 4;
058mscomm1.PortOpen := true;
059
060end;
061
062procedure TForm1.Button1Click(Sender: TObject);
063begin
064mulai := true;
065x := 0;
066delay(500);
067while mulai = true do  // looping selama mulai bernilai true
068begin
069//Rutin Utama
070x := x+1;
071data := mscomm1.Input;
072label1.Caption := floattostr(data);
073series1.AddXY(x,data);
074
075if x = 100 then
076begin
077series1.Clear;
078x := 0;
079end;
080
081delay(200);
082
083end;
084end;
085
086procedure TForm1.Button2Click(Sender: TObject);
087begin
088mulai := false;
089end;
090
091procedure TForm1.Button3Click(Sender: TObject);
092begin
093if mscomm1.PortOpen = true then
094begin
095mscomm1.PortOpen := false;
096end;
097close;
098end;
099
100end.
Link untuk download Full Sourcecode :

0 komentar:

Post a Comment

Newer Post Older Post Home
Aulia DirUt. Powered by Blogger.
 

Blog Archive

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger