8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
1/20
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
2/20
20Pengiriman Frame Data Pada Komunikasi Serial
I. Tujuan1 (ahasis4a mampu men&&unakan pro&ram Arduino den&an baik2 (ahasis4a memahami dan mampu men&irim "rame data pada komunikasi serial
Arduino
II. Dasar TeoriII.1. Parsing Data
arsin& data merupakan sebuah ke&iatan untuk pen&olahan data terhadap sebuah
paket data tertentu arsin& data 5u&a diperlukan pada sisi so"t4are dan hard4are dari
roboso66er Data yan& diperoleh dari komputer ser7er men&haruskan hard4are
melakukan parsin& data terhadap paket data yan& diterimaroses parsin& data ter5adi pada "un&si %ebelum proses parsin& dimulai8 data yan&
diterima yan& telah ditampun& sebelummnya ditampilkan9dikirimkan kembali melalui
serial port
arsin& data dilakukan den&an 6ara men&e6ek tiap karakter yan& ada pada
7ariabel yan& telah dideskripsikan -iap karakter tersebut akan dibandin&kan den&an
tail karakter terakhir paket data; yan&8 misal8 berupa karakter pa&ar nya roses
tersebut akan terus dilakukan berulan&kali sampai perulan&an berakhir
%etelah proses parsin& data selesai8 data hasil proses parsin& yan& terdapat padaarray akan ditampilkan Den&an be&itu8 proses parsin& data pun selesai dilakukan
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
3/20
20II.2. Pengertian Komunikasi Serial
/omunikasi serial adalah salah satu metode komunikasi data dimana proses
pen&iriman data dilakukan per satu bit data se6ara berurutan dan ber&antian yan&
dikirimkan melalui seuntai kabel pada suatu 4aktu tertentu Fun&sinya di&unakan
untuk komunikasi data antara Arduino den&an komputer atau peran&kat lain L?8
%ensor8 H( 8 dll;
Tabel 8.1. Da"tar stilah pada /omunikasi %erial
No. Istilah Penjelasan1 Baudrate /e6epatan trans"er data dinyatakan dalam
satuan bps bit per se6ond;2 Data Bit ,umlah bit yan& dikirimkan dalam 1 "rame
data +bit @ ) bit;3 arity Bit Bit parity di&unakan dalam pen&e6ekan
error untuk menemukan kesalahan yan&
mun&kin ter5adi selama transmisi data# %tart Bit Bit yan& di&unakan seba&ai indikator a4al
sebuah "rame data selalu Lo4;+ %top Bit Bit yan& di&unakan seba&ai indikator akhir
sebuah "rame data selalu hi&h;
/omunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu 5alur dan kabel yan& sedikit dibandin&kan den&an komunikasi paralel ada prinsipnya
komunikasi serial merupakan komunikasi dimana pen&iriman data dilakukan per bit
sehin&&a lebih lambat dibandin&kan komunikasi parallel8 atau den&an kata lain
komunikasi serial merupakan salah satu metode komunikasi data di mana hanya satu
bit data yan& dikirimkan melalui seuntai kabel pada suatu 4aktu tertentu ada
dasarnya komunikasi serial adalah kasus khusus komunikasi paralel den&an nilai n 18
atau den&an kata lain adalah suatu bentuk komunikasi paralel den&an 5umlah kabel
hanya satu dan hanya men&irimkan satu bit data se6ara simultan Hal ini dapat
disandin&kan den&an komunikasi paralel yan& sesun&&uhnya di mana n>bit data
dikirimkan bersamaan8 den&an nilai umumnya ' n 12'
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
4/20
20
Gambar 8.1. lustrasi en&iriman /omunikasi %erial
/omunikasi serial ada dua ma6am8 asyn6hronous serial dan syn6hronous
serial %yn6hronous serial adalah komunikasi dimana hanya ada satu pihak pen&irim
atau penerima; yan& men&hasilkan 6lo6k dan men&irimkan 6lo6k tersebut bersama>
sama den&an data ?ontoh pen&unaan syn6hronous serial terdapat pada transmisi data
keyboard Asyn6hronous serial adalah komunikasi dimana kedua pihak pen&irim dan
penerima; masin&>masin& men&hasilkan 6lo6k namun hanya data yan& ditransmisikan8
tanpa 6lo6k A&ar data yan& dikirim sama den&an data yan& diterima8 maka kedua
"rekuensi 6lo6k harus sama dan harus terdapat sinkronisasi %etelah adanya
sinkronisasi8 pen&irim akan men&irimkan datanya sesuai den&an "rekuensi 6lo6k pen&irim dan penerima akan memba6a data sesuai den&an "rekuensi 6lo6k penerima
?ontoh pen&&unaan asyn6hronous serial adalah pada $ni7ersal Asyn6hronous
Re6ei7er -ransmitter $AR-; yan& di&unakan pada serial port ? (; komputer
II. . Prinsi! Kerja Pengiriman Frame Data !ada Komunikasi Serial
Data yan& dikirim ke serial port akan dikirim ke bu""er pen&irim -= bu""er;
be&itupun data y& diterima adalah data y& diambil dari bu""er penerima RC bu""er;
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
5/20
20
Gambar 8.2. !ambaran ?ara /er5a Bu""er pada /omunikasi %erial
sumber : https:99p66ontrol 4ordpress 6om9201#90 92'9pen&etahuan>dasar>serial>
komunikasi>pada>arduino9;
Data yan& dikirim dan diterima arduino dalam bentuk A%? (isalnya pro&ram
arduino men&irim huru" A maka akan dikirim sebenarnya adalah 1 byte 6ode as6ii
yaitu + ,ika men&irim an&ka 123 maka sebetulnya y& dikirm adalah 3 byte data as6ii
yaitu #)8 #'8 dan +0
Tabel. 8.2. Fun&si yan& -ersedia untuk /omunikasi %erial Arduino
No
.
Fungsi Keterangan
1 i" %erial; men&e6ek apakah ort sudah siap
2 %erial a7ailable ; men&e6ek apakah data sudah ada di bu""er
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
6/20
20 penerima
3 %erial be&in ; men&eset ke6epatan transmisi data
# serial end ; menon>akti"kan pin r= dan t= sb& "un&si serialdan kembali sb& pin 9
+ %erial "ind ; men6ari strin& dlm bu""er data
%erial "ind$ntil ; men6ari bu""er data sampai data d&n
pan5an&9terminator nya y& diberikan ditemukan
%erial "lush ; menun&&u data terkirim semua
' %erial parseFloat ; men&ambil data "loat pertama dari data di bu""er
serial
) serial parse nt ; men&ambil data inte&er pertama dari data di
bu""er serial
10 %erial peek ; men&ambil data berikutnya di bu"er penerima
11 %erial print ; men&irim data A%?
12 %erial println ; men&irimdata A%? E ?R8LF kode enter;
13 %erial read ; memba6a data y& diterima
1# %erial readBytes ; memba6a data byte y& diterima
1+ %erial set-imeout ; men&eset batas maksimum 4aktu
tun&&u timeout; transmisi data
1 %erial 4rite ; men&irim data byte numerik;
1 %erial serial.7ent ; "un&si ini akan dipan&&il 5ika data
datan&9diterima berlaku spt interupsi serial
III. "lat dan #ahan1 %o"t4are Arduino
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
7/20
202 eran&kat /omputer 3 Arduino $no# /abel $%B
I$. %angkah Per&obaan
Hubun&kan Arduino ke ? Anda men&&unakan kabel $%B8 lalu buka so"t4areArduino ro&ram ini untuk memastikan bah4a koneksi antara Arduino dan ? tidak ada
kendala /etik pro&ram seperti di ba4ah ini lalu upload ke Arduino
a. Pengiriman Frame Data dengan 'eader
1;
7oid setup ;
%erial be&in ) 00;G
7oid loop ;
int dataIalue1 100G
int dataIalue2 '0G
6har header1 JKJG
6har header2 J JG
%erial print header1;G
%erial print dataIalue1;G
%erial print header2;G
%erial print dataIalue2;G
%erial println MM;G
delay 1;G
2;
7oid setup ;
%erial be&in ) 00;G
7oid loop ;
int dataIalue1 100G
int dataIalue2 '0G
6har header1 JKJG
6har header2 J JG
%erial print header1 E dataIalue1 E header2 E dataIalue2;G
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
8/20
20 %erial println MM;G
delay 1;G
3;
7oid setup ; %erial be&in ) 00;G
7oid loop ;
int dataIalue1 100G
int dataIalue2 '0G
6har header1 JKJG
6har header2 J JG
%erial print %trin&;header1 E %trin&;dataIalue1 E %trin&; header2 E %trin&;dataIalue2;G %erial println MM;G
delay 1;G
b. Penerimaan Komunikasi Serial
int in6omin&Byte 0G7oid setup ; %erial be&in ) 00;G
7oid loop ; 4hile %erial a7ailable ;N0; in6omin&Byte %erial read ;G %erial 4rite in6omin&Byte;G %erial println MM;G %erial println in6omin&Byte;G
&. (elakukan Parsing Data !ada "rduino
int in6omin&ByteG
6har bu""erO1+PG
int inde= 0G
boolean "la&G
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
9/20
20
7oid setup ;
%erial be&in ) 00;G
7oid loop ;
4hile %erial a7ailable ;N0;
in6omin&Byte %erial read ;G
i" in6omin&Byte JKJ;
inde= 0G
"la& trueG
i" "la&;
bu""erOinde=EEP in6omin&ByteG
%erial 4rite bu""er;G
%erial println MM;G
Tugasa. #uat !rogram untuk !arsing data untuk dua header )*+ dan ),+
int in6omin&ByteG
6har bu""erO1+PG
6har bu""er1O1+PG
int inde= 0G
boolean "la&G
boolean "la&1G
7oid setup ;
%erial be&in ) 00;G
7oid loop ;
4hile %erial a7ailable ;N0;
in6omin&Byte %erial read ;G
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
10/20
20 i" in6omin&Byte J J;
inde= 0G
"la& "alseG
"la&1 "alseG
i" "la&;
bu""erOinde=EEP in6omin&ByteG
i" "la&1;
bu""er1Oinde=EEP in6omin&ByteG
i" in6omin&Byte JKJ;
inde= 0G
"la& trueG
"la&1 "alseG
i" in6omin&Byte J
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
11/20
20int in6omin&ByteG
6har bu""erO1+PG
6har bu""er1O1+PG
int inde= 0G
boolean "la&G
boolean "la&1G
7oid setup ;
%erial be&in ) 00;G
7oid loop ;
4hile %erial a7ailable ;N0;
in6omin&Byte %erial read ;G
i" "la&;
bu""erOinde=EEP in6omin&ByteG
i" in6omin&Byte J J;
inde= 0G
"la& "alseG
"la&1 "alseG
i" "la&1; bu""er1Oinde=EEP in6omin&ByteG
i" in6omin&Byte J J;
inde= 0G
"la& "alseG
"la&1 "alseG
i" in6omin&Byte JKJ; inde= 0G
"la& trueG
"la&1 "alseG
i" in6omin&Byte J
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
12/20
20 inde= 0G
"la& "alseG
"la&1 trueG
%erial 4rite bu""er;G
%erial println MM;G
%erial 4rite bu""er1;G
%erial println MM;G
$. 'asil Per&obaana. Pengiriman Frame Data dengan 'eaderutput :1;K100 '0
2;K100 '0
3;K100 '0
b. Penerimaan Komunikasi Serial
utput :
0
0
0
0
&. (elakukan Parsing Data !ada "rduino
nput :
K100
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
13/20
20
utput :
100
100
100
100
Tugasa. #uat !rogram untuk !arsing data untuk dua header )*+ dan ),+
nput :Q100
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
14/20
20a0 Pengiriman Frame Data dengan 'eaderada pen&iriman "rame data den&an header ini8 dilakukan 3 modi"ikasi
pro&ram dimana perbedaan terletak pada perintah pen&outputan pro&ram Berikut
pen5elasan men&enai keti&a modi"ikasi pro&ram tersebut
Deklarasi $ariabelada keti&a pro&ram yan& dibuat8 7ariable yan& dideskripsikan adalah :
int dataIalue1 100G int dataIalue2 '0G 6har header1 JKJG 6har header2 J JG
ada deklarasi 7ariable tersebut8 dataIalue1 memiliki nilai 100 dan
dataIalue2 memiliki nilai '0 den&an tipe data inte&er %edan&kan header18
yan& merupakan header dari dataIalue1 adalah karakter KS dan header28 yan&
merupakan header dari dataIalue2 adalah karakter S
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
15/20
20Inisialisasi
nisialisasi dilakukan pada "un&si setup ; dimana hanya di5alankan sekali
saat pro&ram pertama kali di5alankan Den&an kata lain "un&si setup ; akan
di5alankan pada saat ran&kaian diberi sumber te&an&an
7oid setup ;
%erial be&in ) 00;G
ada pro&ram tersebut8 pro&ram diatur den&an baudrate sebesar ) 00
(engirim Data Serialroses men&irim data serial dilakukan "un&si loop ; ada proses ini8
di&unakan serial print ; untuk men&irim data as6ii8 namun output akan mun6ul
dalam baris yan& sama Data as6ii yan& dikirim adalah data yan& telah
dideklarasikan sebelumnya utput akan mun6ul sesuai den&an pen&aturan
serial print ; %edan&kan8 serial printl ; untuk men&irimkan data as6ii8 namun
output akan mun6ul pada baris selan5utnya penambahan enter; %elain itu8
ditambahkan delay 1; a&ar output selan5utnya terdelay 1 msada pro&ram ini8 dilakukan perbedaan pada output serial print ; Berikut
perbedaannya :Program 10
%erial print header1;G
%erial print dataIalue1;G
%erial print header2;G
%erial print dataIalue2;Gada pro&ram tersebut8 maka output yan& dihasilkan adalah :
K100 '0
Program 20
%erial print header1 E dataIalue1 E header2 E dataIalue2;Gada pro&ram tersebut8 maka output yan& dihasilkan adalah :
K100 '0
Program 0
%erial print %trin&;header1 E %trin&;dataIalue1 E %trin&; header2 E
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
16/20
20%trin&;dataIalue2;Gada pro&ram tersebut8 maka output yan& dihasilkan adalah :
K100 '0ersamaan output pada keti&a pro&ram tersebut dikarenakan output
dikeluarkan den&an perintah serial print ; Dari pro&ram tersebut8 terlihat pula bah4a pen&eluaran data den&an header dapat den&an 3 6ara berbeda ada
pro&ram 3;8 data 5u&a dapat dikate&orikan dalam strin& *amun8 den&an
adanya strin& tersebut8 data tersebut tidak dapat diolah lebih lan5ut dalam
perhitun&an
b0 Penerimaan Komunikasi Serialada penerimaan komunikasi serial ini8 terdapat ba&ian pro&ram yan&
di5elaskan di ba4ah ini : Deklarasi $ariabel
ada pro&ram yan& dibuat8 7ariable yan& dideskripsikan adalah :
int in6omin&Byte 0Gada deklarasi 7ariable tersebut8 in6omin&Byte memiliki nilai 0 den&an tipe
data inte&er
Inisialisasi
nisialisasi dilakukan pada "un&si setup ; dimana hanya di5alankan sekali
saat pro&ram pertama kali di5alankan Den&an kata lain "un&si setup ; akandi5alankan pada saat ran&kaian diberi sumber te&an&an
7oid setup ;
%erial be&in ) 00;G
ada pro&ram tersebut8 pro&ram diatur den&an baudrate sebesar ) 00
Terima Data Serial
-erima data serial dilakukan pada "un&si loop ; dimana dilakukan
pen&ulan&an pro&ram den&an perintah 4hile ; ro&ram akan di5alankan terus
selama ran&kaian mendapatkan supplai te&an&an Di ba4ah ini adalah "un&si
loop ; tersebut:
7oid loop ;
4hile %erial a7ailable ;N0;
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
17/20
20 in6omin&Byte %erial read ;G
%erial 4rite in6omin&Byte;G
%erial println MM;G
%erial println in6omin&Byte;G
ada pro&ram tersebut8 pro&ram diatur untuk melakukan pen&e6ekan pada
data yan& masuk den&an perintah serial a7ailable ; ada "un&si pen&ulan&an
4hile ;8 data diambil dari bu""er penerima den&an perintah serial read ;
en&ambilan dilakukan pada 7ariable in6omin&Byte yan& bernilai 0 /emudian8
pro&ram akan men&irimkan data in6omin&Byte den&an perintah serial 4rite ;8 lalu
men&eluarkannya se6ara sebaris>sebaris den&an perintah serial println TU; danserial println in6omin&Byte;
(aka8 output yan& dihasilkan adalah nilai 08 sesuai yan& dideskripsikan pada
7ariable in6omin&Byte *ilai 0 tersebut akan dikeluarkan se6ara terus menerus
dalam baris yan& berkelan5utan utput dari pro&ram tersebut adalah :
0
0
0
&0 (elakukan Parsing Data !ada "rduinoada penerimaan komunikasi serial ini8 terdapat ba&ian pro&ram yan&
di5elaskan di ba4ah ini : Deklarasi $ariabel
ada pro&ram yan& dibuat8 7ariable yan& dideskripsikan adalah :
int in6omin&ByteG
6har bu""erO1+PGint inde= 0G
boolean "la&Gada deklarasi 7ariable tersebut8 in6omin&Byte memiliki tipe data inte&erG
7ariable bu""er bertipe 6hara6ter den&an batas karakter 1+G 7ariable inde=
bernilai 0 den&an tipe inte&erG dan 7ariable "la& bertipe data boolean
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
18/20
20 Inisialisasi
nisialisasi dilakukan pada "un&si setup ; dimana hanya di5alankan sekali
saat pro&ram pertama kali di5alankan Den&an kata lain "un&si setup ; akan
di5alankan pada saat ran&kaian diberi sumber te&an&an
7oid setup ;
%erial be&in ) 00;G
ada pro&ram tersebut8 pro&ram diatur den&an baudrate sebesar ) 00
Parsing Data
-erima data serial dilakukan pada "un&si loop ; dimana dilakukan
pen&ulan&an pro&ram den&an perintah 4hile ; ro&ram akan dikalankan terusselama ran&kaian mendapatkan supplai te&an&an Di ba4ah ini adalah "un&si
loop ; tersebut:
7oid loop ;
4hile %erial a7ailable ;N0;
in6omin&Byte %erial read ;G
i" "la&;
bu""erOinde=EEP in6omin&ByteG
i" in6omin&Byte JKJ;
inde= 0G
"la& trueG
%erial 4rite bu""er;G
%erial println MM;G
ada pro&ram tersebut8 pro&ram diatur untuk melakukan pen&e6ekan
berulan&an pada data yan& masuk den&an perintah pen&ulan&an 4hile ; Data
diinputkan melalui keyboard den&an perintah %erial 4rite bu""er; dimana diberi
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
19/20
20 batasan maksimal sepan5an& 1+ karakter ada praktikum ini8 input bu""er yan&
diberikan adalah K100en&e6ekan dilakukan den&an 6ek in6omin&Byte atau data header ,ika header
berisi KS8 maka nilai inde= diberi nilai de"ault 08 maka "la& bernilai true erintah
true pada "la& ini kemudian men5alankan perintah i" selan5utnya yan& akan
men&e6ek karakter bu""er selan5utnya satu persatu den&an perintah :i" "la&;
bu""erOinde=EEP in6omin&ByteG
,ika pro&ram menemui KS8 maka inde= akan kembali ke de"ault 0 Hal ini
akan menyebabkan pro&ram hanya akan men&eluarkan karakter setelah KS8 tanpa
menuliskan KS (aka8 output yan& dihasilkan dari input K100 adalah nilai 100 tanpa header
KS8 sesuai yan& diinputkan pada bu""er *ilai 100 tersebut akan dikeluarkanse6ara terus menerus dalam baris yan& berkelan5utan utput dari pro&ram
tersebut adalah :
100
100
100
$II. Kesim!ulan/esimpulan yan& didapatkan dari praktikum ini adalah :1 ada !engirimian data rame dengan header 8 header dideskripsikan dalam tipe data
&har dimana data den&an header dapat di6etak den&an perintah serial print ;
en&eluaran data 5u&a dapat dilakukan dalam 3 6ara berbeda : 1; pen&eluaran data dan
header se6ara satu persatu dalam serial print ; berbeda;G 2; pen&eluaran data dan
header se6ara bersamaan dalam serial print ; yan& sama;G 3; pen&eluaran data dan
header se6ara bersamaan dalam serial print ; yan& sama;8 namun dalam tipe strin&2 ada !enerimaan komunikasi serial 8 data disimpan di bu""er8 kemudian dapat
dipan&&il den&an perintah serial read ;3 ada !arsing data "rduino 8 karakter yan& dimasukkan dapat di6ek satu persatu untuk
men&e6ek posisi header /emudian data input akan dikeluarkan tanpa header
Praktikum 8 | Praktikum Mikrokontroler
8/10/2019 Pengiriman Frame Data Pada Komunikasi Serial
20/20
20
Da tar Pustaka
https:99&rsbat6h+ 4ordpress 6om9201390291)9parsin&>data>di>arduino9 http:99ri6osan"ransisko>samosir blo&spot 6om920139109komunikasi>serialV22 html https:99p66ontrol 4ordpress 6om9201#90 92'9pen&etahuan>dasar>serial>komunikasi>pada>
arduino9 http:99simpultekno blo&spot 6om9201#9119bela5ar>komunikasi>serial>arduino html
Praktikum 8 | Praktikum Mikrokontroler
https://grsbatch5.wordpress.com/2013/02/19/parsing-data-di-arduino/http://ricosanfransisko-samosir.blogspot.com/2013/10/komunikasi-serial_22.htmlhttps://pccontrol.wordpress.com/2014/06/28/pengetahuan-dasar-serial-komunikasi-pada-arduino/https://pccontrol.wordpress.com/2014/06/28/pengetahuan-dasar-serial-komunikasi-pada-arduino/http://simpultekno.blogspot.com/2014/11/belajar-komunikasi-serial-arduino.htmlhttp://ricosanfransisko-samosir.blogspot.com/2013/10/komunikasi-serial_22.htmlhttps://pccontrol.wordpress.com/2014/06/28/pengetahuan-dasar-serial-komunikasi-pada-arduino/https://pccontrol.wordpress.com/2014/06/28/pengetahuan-dasar-serial-komunikasi-pada-arduino/http://simpultekno.blogspot.com/2014/11/belajar-komunikasi-serial-arduino.htmlhttps://grsbatch5.wordpress.com/2013/02/19/parsing-data-di-arduino/Top Related