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.
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 –
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.
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.
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
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.10. 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
8 CTS In Clear to Send
9 RI In Ring Indicator
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)
Gambar 2.7. (a) kondisi awal relay; (b) setelah ada medan magnet
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
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.1.
Tabel 2.1. 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.1 dapat dijelaskan bahwa untuk nomer servis center
6281100000 yang dikirimkan menjadi 06912618010000. Tabel 2.2 berikut adalah nomor SMS center beserta kode PDU untuk operator GSM di indonesia.
Tabel 2.2. 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.3.
Tabel 2.3. 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 untuk menghitung jangka waktu validitas adalah seperti ditunjukkan pada Tabel 2.4.
Tabel 2.4. 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.5.
Tabel 2.5 Langkah pertama sistem konversi 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.6.
Tabel 2.6 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
Untuk memperjelas dalam proses konversi, pada Tabel 2.7 disajikan kode ASCII.
Tabel 2.7 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 ä
Oleh karena total 7-bit x 5 huruf = 35-bit, sedangkan yang diperlukan adalah 8-bit x 5-bit = 40-bit, maka perlu 5-bitdummy yang diisi dengan nol. Dengan demikian kata ’hello’ hasil konversinya adalah: E8329BFD06. Dan jika kedua sub header ini digabung menjadi 05E8329BFD06.
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.8.
1 1 0 0 C ø æ M, < L Ö l ö
1 1 0 1 D CR æ - = M Ñ m ñ
1 1 1 0 E Ά □ . > N Ü n û
Tabel 2.8. 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.9.
Tabel 2.9 PDU untuk nomer handphone tujuan
Kode AKeterangan
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.