BAB II DASAR TEORI 2.1.
Mikrokontroller Mikrokontroler adalah suatu mikroprosesor plus. Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya mikroprosesor sebagai otak komputer. Nilai plus bagi mikrokontroler adalah terdapatnya memori dan Port Input/Output dalam suatu kemasan IC yang kompak. Kemampuannya yang programmable, fitur yang lengkap (ADC internal, EEPROM internal, Port I/O, Komunikasi Serial, dll), dan juga harga yang terjangkau memungkinkan mikrokontroler digunakan pada berbagai sistem elektronis, seperti
pada
robot,
automatisasi
industri,
sistem
alaram,
peralatan
telekomunikasi, hingga peralatan rumah tangga. Pengendali mikro (microcontroller) adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC (personal computer) karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O. Untuk mengontrol robot, maka digunakan mikrokontroler dengan pertimbangan faktor ukuran yang relatif kecil sehingga cocok untuk pengontrol robot dan peralatan-peralatan elektronika. Sistem mikrokontroler lebih banyak melakukan pekerjaan-pekerjaan sederhana yang penting seperti mengendalikan motor, saklar, resistor variable, atau perangkat elektronik lain. Satu-satunya bentuk antarmuka yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED (Light Emiting Diode), bahkan ini pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian.
4
5
2.1.1. Sistem Mikrokontroler Mikrokontroler terdiri dari beberapa bagian diantaranya : 1. CPU yaitu Central Prosesing Unit, pada bagian ini yaitu sebagai otak atau pusat dari pengontrolan, pengontrol utama dalam suatu mikrokontroler. CPU yang terdapat pada mikrokontroler ini ada yang berukuran 8bit dan ada juga yang berukuran 16bit. 2. ROM yaitu Read Only Memori merupakan alat untuk mengingat yang memiliki sifat bisa dibaca saja ini berarti memori ini tidak dapat ditulis, memori ini biasanya untuk menyimpan program bagi mikrokontroler tersimpan dalam format biner (0 dan 1) . 3. RAM yaitu Random Access Memory berbeda dengan ROM sebelumnya, RAM dapat dibaca dan ditulis berulang kali. 4. I/O yaitu sebagai penghubung dunia luar mikrokontroler menggunakan port ini untuk download data yang bisa melalui PC(Personal Compuer) maupun perangkat elektronika lainya. 5. Komponen lainya dapat berupa LED, motor, dan perangkat – perangkat elektronika sesuai kebutuhan.
2.1.2. Mikrokontroller AT MEGA8535 Mikrokontroller
ATMEGA8535
merupakan
sebuah
mikrokontroller 8-bit yang diproduksi oleh Atmel.. Arsitektur yang disajikan dalam mikrokontroller ATMEGA8535 secara garis besar disajikan pada Gambar 2.1.
6
Gambar 2.1 Arsitektur ATMEGA8535
Konfigurasi pin dari IC ATMEGA8535 ditunjukkan pada Gambar 2.2.
7
Gambar 2.2 Konfigurasi pin ATMEGA8535
Mikrokontroller ini terdiri dari 40 pin. pin-pin tersebut terbagi dalam 4 buah port, yaitu port A, port B, port C, dan port D.. Selain 4 buah port masih ada pin yang difungsikan untuk jalur catu daya, jalur detak, dan jalur untuk piranti pengisian program. Adapun fungsi dari masing-masing pin adalah sebagai berikut: a.
VCC Pin ini digunakan untuk masukan catu daya sebesar +5 Volt.
b.
GND Pin ini digunakan untuk masukan catu daya sebesar 0 Volt
c.
Port A (PA7..PA0) Port A berfungsi sebagai input analog pada A/D Konverter. Port A juga berfungsi sebagai sebagai port Input Output 8-bit dua arah, jika A/D Konverter tidak digunakan. Pin - pin Port dapat menyediakan resistor internal pull-up (yang dipilih untuk
8
masing-masing bit). Port A output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika pin PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarikrendah, pin – pin akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pin Port A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. d.
Port B (PB7..PB0) Port B adalah suatu Port Input/Output 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Port B output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin port B yangsecara eksternal ditarik rendah akan arus sumber jika resistor pullup diaktifkan. Pin Port B adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. e.
Port C (PC7..PC0) Port C adalah suatu Port Input/Output 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Port C output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin port C yang secara eksternal ditarik rendah akan arus sumber jika resistor pullup diaktifkan. Pin Port C adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
f.
Port D (PD7..PD0) Port D adalah suatu Port Input/Output 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Port D output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai
9
input, pin port D yang secara eksternal ditarik rendah akan arus sumber jika resistor pullup diaktifkan. Pin Port D adalah tristated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis. g.
RESET Masukan (Reset), ketika logika 1 diberikan pada pin ini, dan osilator dalam kondisi berjalan, maka mikrokontroller akan reset.
h.
XTAL1 Masukan ke penguat pembalik osilator atau masukan ke rangkaian operasi internal pulsa (clock).
i.
XTAL2 Keluaran dari penguat pembalik osilator
j.
AVCC Pin penyedia tegangan untuk port A dan Analog/Digital Konverter
k.
AREF Pin referensi analog untuk Aanalog/Digital konverter
2.2.
Komunikasi serial RS232 Dikenal dua cara komunikasi data secara serial, yaitu komunikasi data serial secara sinkron dan komunikasi data secara asinkron. Pada komunikasi data serial sinkron, clock dikirim bersama-sama dengan data serial, sedangkan komunikasi data serial asinkron, clock tidak dikirim bersama-sama data serial tetapi dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter) maupun pada sisi penerima (receiver). Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Receiver/Transmitter). IC UART dibuat khusus untuk mengubah data parallel menjadi data serial yang kemudian diubah kembali menjadi data parallel. IC UART 8250 dari intel merupakan
10
salah satunya. Selain berbentuk IC mandiri, berbagai macam mikrokontroller ada yang dilengkapi UART, misalnya keluarga mikrokontroller MCS51 (termasuk AT89S51). Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu. Boud rate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400 dan 9600 (bit/detik). Dalam komunikasi data serial, boud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6, 7 atau 8-bit), paritas (genap ganjil atau tanpa paritas), dan jumlah bit ‘Stop’ (1, 1,5 atau 2 bit) Standar sinyal serial RS232 memiliki ketentuan level tegangan sebagai berikut: 1.
Logika ‘1’ disebut ‘mark’ terletak antara -3 V hingga -25 V
2.
Logika ‘0’ disebut ‘space’ terletak antara +3 V hingga +25 V
3.
Daerah tegangan -3 V hingga +3 V adalah invalid level.
Pada computer IBM PC kompatibel biasanya terdapat dua konektor port serial DB-9 yang biasa dinamai COM1 dan COM2.
11
Pada Gambar 2.3 (a) disajikan konektor DB-9, dan (b) adalah contoh dari kabel serial.
(b) Konektor DB-9
(b) Kabel Serial RS232
Gambar 2.3 (a) Konektor serial DB-9, (b) Kabel serial DB-9
Fungsi dari masing-masing pin DB-9 disajikan pada Tabel 2.1. Tabel 2.1 Konfigurasi pin konektor DB-9 Nomor Pin
Nama Sinyal
Direction
Keterangan
1
DCD
In
Data Caririer Detect/ Received Line Signal Detect
2
RxD
In
Receive Data
3
TxD
Out
Transmit Data
DTR
Out
Data Treminaly Ready
5
GND
-
Ground
6
DSR
In
Data Set Ready
7
RST
Out
Request ti Send
8
CTS
In
Clear to Send
9
RI
In
Ring Indicator
12
Pada komunikasi serial dengan mikrokontroller, dibutuhkan suatu IC konverter. IC ini sering disebut dengan MAX232. Dalam penelitian ini digunakan IC MAX 232. Gambar 2.3 merupakan konfigurasi pin dari IC MAX 232.
Gambar 2.4. Diagram IC MAX232
Dengan IC ini, mikrokontroller mampu berkomunikasi dengan PC dan piranti lain yang mempunyai standard komunikasi RS232.
2.3.
Motor DC
Gambar 2.5. Motor DC
Motor DC banyak digunakan sebagai penggerak dalam berbagai peralatan, baik kecil maupun besar, lambat maupun cepat. Ia juga banyak dipakai karena cukup dapat dikendalikan dengan mudah pada kebanyakan kasus. Cara pengendalian motor DC bisa secara ON/OFF biasa. Pemilihan cara pengendalian akan tergantung dari
13
kebutuhan terhadap gerakan motor DC itu sendiri. Pada Motor DC biasa, akan berputar dan berputar terus selama power supply ada. Tidak ada rangkaian cerdas tertentu yang diperlukan untuk mengendalikan motor tersebut, kecuali hanya memperlambat putaran atau membalik putaran, dengan menerapkan polaritas balik.
2.4.
Relay
Gambar 2.6. Relay
Mekanisme kerja Relay
(a)
(b)
Gambar 2.7. (a) kondisi awal relay; (b) setelah ada medan magnet
14
Seperti gambar diatas relay bekerja sebagai switch on/off karena adanya medan magnet pada lilitan. untuk menghasilkan magnet, ini dibutuhkan batre ataupun tegangan AC untuk membuat medan magnet pada lilitan tersebut.
2.5.
SMS (Short Message Service) Dibalik tampilan menu message pada sebuah handphone sebenarnya adalah
AT Command 2X yang bertugas mengirim dan menerima dari dan ke SMS center. Semua perintah untuk mengendalikan handphone menggunakan perintah AT command. Beberapa AT Command untuk mengakses SMS antara lain AT+CMGR, AT+CMGS dan AT+CMGD, adapun penjelasan dari AT Command tersebut adalah sebagai berikut:
2.5.1. AT+CMGR Perintah ini digunakan untuk membaca isi SMS. Untuk mengecek kesiapan sistem, bisa digunakan perintah AT+CMGS=?, jika respon dari handphone adalah ‘OK’, maka handphone siap dibaca. Untuk menjalankan perintah ini, sintax penulisan yang dipakai adalah sebagai berikut: AT+CMGR=
Indek adalah lokasi memory yang akan dibaca isi SMS nya., misal AT+CMGR=1, hal ini menandakan SMS yang dibaca adalah lokasi no 1. Jika perintah ini berhasil, maka handphone akan merespon dengan parameter-parameter sebagai berikut: +CMGR: <stat>,[],
2.5.2. AT+CMGS Perintah ini digunakan untuk mengirim SMS. Untuk mengetahui kesiapan handphone, bisa digunakan test command AT+CMGS=?. Jika handphone siap maka akan merespon dengan ‘OK’. Sintax penulisan perintah yang digunakan adalah sebagai berikut:
15
AT+CMGS= diisi dengan jumlah karakter yang akan dikirimkan. Jika perintah berhasil, maka handphone akan merespon dengan tanda ‘>’, kemudian kode PDU untuk SMS kirim siap di isikan.
2.5.3. AT+CMGD Perintah ini digunakan untuk menghapus isi SMS. Sintax penulisan yang digunakan untuk menjalankan perintah ini, adalah AT+CMGD= Index adalah lokasi memory dari SMS yang akan dihapus. Jika perintah ini berhasil, maka handphone akan merespon dengan ‘OK’. AT Command untuk SMS, biasanya diwakili oleh data dalam format Protocol Data Unit (PDU). Data dalam format PDU mempunyai beberapa header. Headerheader untuk pengiriman SMS dan penerimaan SMS berbeda. Dalam format PDU, data yang dikirim tidak hanya data yang berisi pesan saja, namun ada beberapa informasi mengenai pengirimnya, seperti nomor pengirim, service center SMS, waktu pengiriman, dan sebagainya.
2.5.4. PDU untuk kirim SMS PDU untuk SMS kirim terdiri dari 8 header, dan masing-masing adalah:
2.5.4.1.Nomor SMS Center Header yang pertama ini dibagi dalam tiga sub header, yaitu jumlah pasangan hexadesimal SMS center dalam format hexadesimal. Header yang kedua adalah header untuk tanda pengiriman wilayah nasional dan internasioanal. Untuk kode nasional kode headernya 81 dan untuk kode international kode headernya 91. Header yang ketiga adalah pasangan nomor SMS center yang balik. Apabila salah satu angka tidak memiliki pasangan maka dipasangkan dengan bilangan F. Dibawah ini disajikan contoh header SMS center dengan nomor: 6281100000 dapat ditunjukkan pada Tabel 2.2.
16
Tabel 2.2. Contoh SMS center untuk PDU kirim
Kode
Keterangan
06
Jumlah pasangan hexadesimal SMS center
91
Kode internasional
2618010000
Pasangan nomor SMS center yang balik
Dari data Tabel 2.2 dapat dijelaskan bahwa untuk nomer servis center 6281100000 yang dikirimkan menjadi 06912618010000. Tabel 2.3 berikut adalah nomor SMS center beserta kode PDU untuk operator GSM di indonesia. Tabel 2.3. SMS center operator GSM
Operator
SMS center
Kode PDU
Telkomsel
62811000000
07912618010000
Indosat Mentari
62816125
059126181652
Exelcom
62818445009
07912618485400F9
Indosat M3
62855000000
07912658050000F0
2.5.4.2. Tipe SMS Untuk mengirim SMS tipe yang digunakan adalah 1, sehingga bilangan hexadesimalnya adalah 01.
2.5.4.3. Nomor Referensi Nomor ini secara otomatis diberikan oleh handphone pengirim, sehingga harus diberikan kode 0 terlebih dahulu, sehingga pasangan bilangan hexadesimalnya menjadi 00.
2.5.4.4. Nomor handphone penerima (tujuan) Nomor handphone penerima dibagi dalam tiga header seperti pada nomor SMS center. Header yang pertama adalah jumlah pasangan kode PDU nomor
17
handphone penerima. Header yang kedua adalah kode 81 untuk nasional dan 91 untuk internasional. Header yang ketiga adalah nomor HP penerima dengan pasangan-pasangan yang di balik. Sebagai contoh untuk nomor handphone tujuan 6285228391602 ditunjukkan pada Tabel 2.4. Tabel 2.4. PDU kirim untuk nomer handphone tujuan
Kode
Keterangan
0D
ada 13 angka
91
Kode internasional
265822381906F
Nomor handphone tujuan dengan
2
pasangan-pasangan yang dibalik
Jika ketiga header diatas digabung, menjadi 0D91265822381906F2
2.5.4.5. Bentuk SMS Bentuk SMS yang dikirim ke SMS center dikirim sebagai standard text, sehingga kodenya adalah 00.
2.5.4.6. Encoding Format yang digunakan dalam proses pengiriman ke SMS center melalui handphone GSM menggunakan format 7-bit. Format ini ditandai dengan kode 0, dan jika diubah dalam format PDU header ini menjadi 00.
2.5.4.7. Jangka Waktu SMS Jika bagian ini di lompati berarti jangka waktu pengirimannya tak terbatas. Jika diisi bilangan integer dan kemudian diubah dalam pasangan hexadesimal maka bilangan tersebut akan mewakili jangka waktu pengiriman. Rumus untuk menghitung jangka waktu validitas adalah seperti ditunjukkan pada Tabel 2.5.
18
Tabel 2.5. Waktu validitas Integer (INT)
Jangka waktu validitas
0-143
(INT+1) x 5 menit
144-167
12 jam + (INT -143) x 30 menit
168-196
(INT-166) x 1 hari
197-255
(INT-192) x 1 minggu
2.5.4.8. Isi SMS Header yang terkhir ini terdiri dari dua sub header, yaitu panjang isi dan isi SMS. Untuk handphone GSM menggunakan format encoding 7-bit. Ada dua langkah yang harus dilakukan untuk mengkonversi isi SMS, yaitu langkah pertama mengubah huruf kedalam format 7-bit. Misalnya kita akan mengirimkan kata ”hello”, maka langkah ini dapat ditunjukkan pada Tabel 2.6. Tabel 2.6 Langkah pertama sistem koinversi 7-bit ke 8-bit
Huruf
Kode 7-bit
h
110
1000
e
110
0101
l
110
1100
l
110
1100
o
110
1111
Langkah kedua adalah mengkonversi nilai ASCII kedalam kode PDU, seperti ditunjukkan pada Tabel 2.7. Tabel 2.7 Langkah kedua sistem konversi dari 7-bit ke 8-bit
Huruf
Binner
Dummy
Hexa
h
1 110
1000
E8
e
00 11
0010
1
32
l
100 1
1011
00
9B
l
1111
1101
110
FD
o
0000
0 110
1111
06
19
Untuk memperjelas dalam proses konversi, pada Tabel 2.8 disajikan kode ASCII. Tabel 2.8 Kode ASCII
B6
0
0
0
0
1
1
1
1
B5
0
0
1
1
0
0
1
1
B4
0
1
0
1
0
1
0
1
B3
B2
B1
B0
0
1
2
3
0
0
0
0
0
@
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
4
5
5
7
□
SP
0
;
P
¿
p
£
_
!
1
A
Q
a
q
2
$
□
″
2
B
R
b
r
1
3
¥
□
#
3
C
S
c
s
0
0
4
è
□
¤
4
D
T
d
t
1
0
1
5
è
□
%
5
E
U
e
u
0
1
1
0
6
ù
□
&
6
F
V
f
v
0
1
1
1
7
î
□
‘
7
G
W
g
w
1
0
0
0
8
ō
□
(
8
H
X
h
x
1
0
0
1
9
ç
□
)
9
I
Y
i
y
1
0
1
0
A
LF
□
*
:
J
Z
j
z
1
0
1
1
B
Ǿ
1)
+
;
K
Ä
k
ä
1
1
0
0
C
ø
æ
M,
<
L
Ö
l
ö
1
1
0
1
D
CR
æ
-
=
M
Ñ
m
ñ
1
1
1
0
E
Ά
□
.
>
N
Ü
n
û
1
1
1
1
F
á
É
/
?
O
§
o
à
Oleh karena total 7-bit x 5 huruf = 35-bit, sedangkan yang diperlukan adalah 8-bit x 5-bit = 40-bit, maka perlu 5-bit dummy yang diisi dengan nol. Dengan demikian kata ’hello’ hasil konversinya adalah: E8329BFD06. Dan jika kedua sub header ini digabung menjadi 05E8329BFD06.
20
2.5.5. PDU untuk terima SMS
PDU untuk terima SMS dari SMS center dibagi menjadi delapan header yang hampir sama dengan PDU untuk mengirim SMS. Kedelapan header tersebut adalah:
2.5.5.1. Nomor SMS center Header yang pertama ini dibagi dalam tiga sub header, yaitu jumlah pasangan hexadesimal SMS center dalam format hexadesimal. Header yang kedua adalah header untuk tanda pengiriman wilayah nasional dan internasioanal. Untuk kode nasional kode headernya 81 dan untuk kode international kode headernya 91. Header yang ketiga adalah pasangan nomor SMS center yang dibalik. Apabila salah satu angka tidak memiliki pasangan maka dipasangkan dengan bilangan F. Dibawah ini disajikan contoh SMS center dengan nomor: 6281100000 dalam format PDU dapat ditunjukkan pada Tabel 2.9. Tabel 2.9. Contoh SMS center untuk PDU terima
Kode
Keterangan
06
Jumlah pasangan hexadesimal SMS center
91
Kode internasional
2618010000
Pasangan nomor SMS center yang dibolak-balik
2.5.5.2. Tipe SMS Untuk mengirim SMS tipe yang digunakan adalah 4, sehingga bilangan hexadesimalnya adalah 04.
2.5.5.3. Nomor handphone pengirim Nomor handphone penerima dibagi dalam tiga header seperti pada nomor SMS center. Header yang pertama adalah jumlah pasangan kode PDU nomor
21
handphone penerima. Header yang kedua adalah kode nasional dengan angka 81 dan internasional dengan angka 91. Header yang ketiga adalah nomor handphone penerima dengan pasangan-pasangan yang dibalik. Sebagai contoh untuk nomor handphone tujuan 6285228391602 diubah seperti ditunjukkan Tabel 2.10. Tabel 2.10 PDU untuk nomer handphone tujuan Kode
Keterangan
0D
Ada 13 angka
91
Kode internasional
265822381906F2
Nomor handphone tujuan dengan pasangan-pasangan yang dibolak-balik.
Jika ketiga header diatas digabung, menjadi 0D91265822381906F2.
2.5.5.4. Bentuk SMS SMS terima memiliki kode 00, karena diterima sebagai standard text. 2.5.5.5. Encoding Format yang digunakan dalam proses pengiriman ke SMS center melalui handphone GSM menggunakan skema 7-bit. Format ini ditandai dengan kode 0, dan jika diubah dalam format PDU header ini menjadi 00. 2.5.5.6. Tanggal dan waktu SMS Diwakili oleh 12 bilangan hexa atau 6 pasang yang berarti: yy/mm/dd hh:mm:ss, sebagai contoh 207022512380 yang berarti SMS tersebut sampai pada SMS center pada tanggal 22 juli 2002, pukul 15:32:08 WIB.
2.5.5.7. Jangka waktu Jika tidak dibatasi dikodekan dengan 00. 2.5.5.8. Isi SMS Header ini terdiri dari dua sub header, yaitu panjang isi SMS (jumlah pasangan karakter) 05E8329BFD06.
dan isi SMS. Contoh kata ’hello’ memiliki kode PDU