4
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
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.
Gambar 2.1 Arsitektur ATMEGA8535
Konfigurasi pin dari IC ATMEGA8535 ditunjukkan pada Gambar 2.2.
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
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
tri-stated 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
tri-stated 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
input, pin port D yang secara eksternal ditarik rendah akan arus sumber jika resistor pullup diaktifkan. Pin Port D adalah
tri-stated 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
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
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
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
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)
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=<index>
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>,[<alpha>],<length><CR><LF><pdu>
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:
AT+CMGS=<legh>
<legh> 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>
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. Header-header 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.
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
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
2
Nomor handphone tujuan dengan 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
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
Untuk memperjelas dalam proses konversi, pada Tabel 2.8 disajikan kode ASCII.
Tabel 2.8 Kode ASCII
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.
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 4 5 5 7 0 0 0 0 0 @ □ SP 0 ; P ¿ p 0 0 0 1 1 £ _ ! 1 A Q a q 0 0 1 0 2 $ □ ″″″″ 2 B R b r 0 0 1 1 3 ¥ □ # 3 C S c s 0 1 0 0 4 è □ ¤ 4 D T d t 0 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 à
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
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) dan isi SMS. Contoh kata ’hello’ memiliki kode PDU 05E8329BFD06.