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 kabel serial. Pada Gambar 2.3 (a) disajikan konektor DB-9, dan (b) adalah contoh dari (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 Mekanisme kerja Relay Gambar 2.6. 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=<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:
15 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. 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 ASCII. Untuk memperjelas dalam proses konversi, pada Tabel 2.8 disajikan kode 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 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 à 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) dan isi SMS. Contoh kata hello memiliki kode PDU 05E8329BFD06.