i
PENGENDALI PUTARAN ARAH RUMAH PADA PEMODELAN RUMAH PINTAR
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Disusun oleh:
GALUH YUDHA PURNAMA NIM: 025114064
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
ii
HOUSE ROTATION CONTROLLER ON SMART HOUSE MODELLING
Submitted as Partial Fulfillment Of The Requirement for Sarjana Teknik Degree In Electrical Engineering
By:
GALUH YUDHA PURNAMA NIM: 025114064
ELECTRICAL ENGINEERING DEPARTMENT FACULTY OF ENGINEERING
SANATA DHARMA UNIVERSITY YOGYAKARTA
2007
iii
iv
v
“The secret of being success is to know something that
somebody else don’t”
“If A + B + C = SUCCESS, then A is hard work, B is pray, and C
is imagination”
Kupersembahkan karya tulis ini kepada:
Tuhan di Surga yang tak pernah berhenti menyayangiku Ibuku yang selalu penuh dengan sabar
Ayahku yang selalu sudi untuk membantuku
Dan adik-adikku
vi
vii
Puji Tuhan karena telah memberikan bimbingan dan kasih-Nya kepada penulis untuk menyelesaikan skripsi yang berjudul “Pengendali Putaran Arah Rumah Pada Pemodelan Rumah Pintar”.
Penulis menyadari bahwa skripsi ini tidak mungkin dapat selesai dengan baik tanpa bantuan dari berbagai pihak. Oleh karena itu penulis mengucapkan terimakasih kepada:
1. Bapak A. Bayu Primawan, S.T.,M.Eng. selaku Kaprodi Teknik Elektro.
2. Bapak Ir. Tjendro dan Martanto, S.T., M.T. yang telah dengan sabar membimbing dan menyemangati serta memberikan ilmunya kepada penulis, sehingga penulis dapat menyelesaikan sekripsi ini dengan baik.
3. Pak Djoko Untoro, S.si, M.T selaku pembimbing akademik
4. Segenap dosen dan karyawan Teknik atas bimbingan, ilmu dan pelayanan yang diberikan selama ini.
5. Laboran TE (mas mardi, mas Sur, Mas Broto serta mas Yusuf) yang benar- benar sangat membantu penulis.
6. Ibuku, yang dengan doa, kasih , dan kesabarannya telah memberikan bantuan moril yang sangat besar
7. Ayahku, yang mau memberiku bantuan baik materiil maupun spiritual.
8. Adik-adikku (Ayu dan Rio), “Kalianlah alasan utama kenapa aku melakukan
ini semua”.
viii
10. Teman-teman satu tim (Eva, Butet, Nendy, Andry), atas kerjasamanya dan kegembiraan yang kita lalui bersama.
11. Anak-anak “Taboo House” (Ari, Gogo, Willy, KS) dan Widi. “It’s such a great and fun adventures that we have the whole years, hope it will never end”.
12. Teman-teman TE ‘02 dan ‘03 atas segala pengalaman hidup bersama selama ini.
13. Adi Slash, Bawono, Berlin, Alex, Heri , atas kebersamaannya selama ini.
14. Teman-teman yang sama-sama menggunakan Ruang TA, atas pinjaman alat dan kebersamaannya.
15. Siska, Vembri, dan anak-anak JKMK yang lain, atas kebersamaan dan kegembiraan yang kalian bagi.
Semoga Tuhan melimpahkan rahmat-Nya kepada kita semua dan semoga tulisan ini dapat berguna dan bermanfaat bagi semua, Amin.
Yogyakarta, 24 Pebruari 2007 Penulis,
Galuh Yudha Purnama
ix
HALAMAN JUDUL ... i
HALAMAN JUDUL (INGGRIS) ... ii
HALAMAN PERSETUJUAN... iii
HALAMAN PENGESAHAN... iv
HALAMAN PERSEMBAHAN... v
PERNYATAAN KEASLIAN KARYA ... vi
KATA PENGANTAR ... vii
DAFTAR ISI ... ix
DAFTAR GAMBAR ... xii
DAFTAR TABEL ... xiii
DAFTAR LAMPIRAN ... xiv
INTISARI ... xv
ABSTRACT... xvi
BAB I. PENDAHULUAN ... 1
I.1 Judul... 1
I.2 Latar Belakang ... 1
I.3 Perumusan Masalah ... 2
I.4 Batasan Masalah ... 3
1.5 Tujuan Penelitian ... 3
I.6 Manfaat Penelitian ... 4
I.7 Metodologi Penelitian ... 4
x
2.1 Mikrokontroler AT89S51... 6
2.1.1 Organisasi memori ... 8
2.1.2 Register ... 8
2.1.3 Struktur Interupsi ... 11
2.1.4 Port I/O Serial ... 14
2.1.5 Pengaturan Baud Rate ... 13
2.2 Motor DC ... 16
2.3 Driver Motor DC ... 17
2.4 Sensor Posisi………... 18
2.5 Antarmuka (Interface) PC……… 19
BAB III. PERANCANGAN ... 21
3.1 Diagram Kotak Pengendali Putaran Arah Rumah Pada Pemodelan Rumah Pintar ... 21
3.2 Antarmuka RS232... 23
3.3 Perancangan Pengendalian Driver Motor DC ... 24
3.4 Perancangan Sensor Posisi ... 25
3.5 Perancangan Mikrokontroler ... 26
3.5.1 Rangkaian Osilator ... 26
3.5.2 Rangkaian Reset ... 27
3.2 Perancangan Perangkat Lunak... 28
3.6.1 Rutin Utama Perangkat Lunak pada Mikrokontroler ... 28
xi
4.1 Pengukuran pada Sensor Posisi Reed Switch ... 34
4.2 Pengukuran pada Driver Motor DC... 36
4.3 Pengamatan terhadap Cara Kerja Alat ... 37
BAB V. KESIMPULAN DAN SARAN ... 40
V.1 Kesimpulan ... 40
V.2 Saran... 40
DAFTAR PUSTAKA... 41
xii
Gambar 2.2 Alokasi Bit Register PSW... 8
Gambar 2.3 Register Interrupt Enable ATMEL AT 89S51... 11
Gambar 2.4 Lambang Motor DC pada rangkaian ... 17
Gambar 2.5 Diagram Blok dari IC L293D... 17
Gambar 2.6 Bentuk Sebuah Reed Switch... 19
Gambar 2.7 Informasi Pin MAX 232 ... 20
Gambar 3.1 Diagram Kotak Pengendali Putaran Arah Rumah Pada Pemodelan Rumah Pintar ... 21
Gambar 3.2 Gambar Pemodelan Rumah dan Koneksinya ke PC ... 22
Gambar 3.3 Koneksi MAX232, mikrokontroler, dan PC... 23
Gambar 3.4 Koneksi Mikrokontroler, L293D, dan Motor DC ... 25
Gambar 3.5.Rangkaian Reed Swich ... 25
Gambar 3.6 Rangkaian Osilator ... 26
Gambar 3.7 Rangkaian Reset... 27
Gambar 3.8 Diagram Alir Utama Perangkat Lunak Pada Mikrokontroler.. 28
Gambar 3.9 Diagram alir Penggerak Motor DC dari penyimpanan di Register
SBUF sampai ke pengambilan data ke Akumulator ... 33
xiii
Tabel 2.1 a Nama-Nama Bit Kontrol dari Register PCON... 9
Tabel 2.1 b Nama-Nama Bit Kontrol dari Register PCON ... 10
Tabel 2.2 Register IE ... 12
Tabel 2.3 Prioritas Interupsi... 13
Tabel 2.4 Mode Serial dan Baud Rate ... 15
Tabel 2.5 Logika Aplikasi L293D... 18
Tabel 3.1 Arah Mata Angin dan Nilai Heksadesimalnya ... 32
Tabel 3.2 Arah mata angin, Nilai Biner, dan Nilai Heksadesimalnya ... 32
Tabel 4.1 Tabel Pengamatan Pada Sensor Posisi... 35
Tabel 4.2 Tabel Pengamatan Pada Driver Motor DC ... 36
Tabel 4.3 Perintah Dari PC dan Hasil Putaran... 37
xiv
B. Rangkaian Lengkap Sistem Pengendali Putaran Rumah ... L2
C. Listing Program ... L3
D. Data Sheet ... L4
xv
mendapat suatu suasana baru dalam rumah cukup dibutuhkan. Terutama arah rumah yang dapat berubah-ubah sesuai keinginan penghuni. Sistem kendali yang memungkinkan penghuni untuk mengubah arah dari rumah sesuai keinginannya.
Dalam penelitian ini digunakan rumah model. Penelitian ini bertujuan untuk mengaplikasikan mikrokontroler AT89S51 sebagai pengendali utama putaran motor DC pada pemodelan rumah pintar.
Sistem ini terdiri dari pengendali utama yaitu personal computer(pc) yang berfungsi untuk memberikan masukan/perintah dari penghuninya, pengendali sekunder yaitu mikrokontroler AT89S51 yang berfungsi mengolah masukan dari pengendali utama dan umpan balik dari reed switch yang bertindak sebagai sensor posisi. Setelah mendapat masukan baik dari pengendali utama maupun dari sensor posisi, maka pengendali sekunder akan memberikan perintah pada driver motor dc untuk menjalankan motor dc kearah yang diminta. Driver motor dc yang digunakan adalah L293D.
Hasil yang didapat adalah, bahwa rumah model dapat berputar ke delapan arah mata angin. Dan berat maksimal yang dapat diangkut oleh rumah model adalah 3 Kg.
Kata kunci: Pengendalian posisi, aplikasi mikrokontroler, model rumah pintar
xvi
the place we lived is needed. Particularly in our own house. In future, the function of a house will not only as a shelter. Many facilities that can embedded in that house. Using the newest technological system improvement, we can embedded a facility that we want. A house that has some automatic systems embedded inside known as smart house. One of the examples of it automatic system embedded is the facility that the direction of the house can be arranged to 8 positions represented by 4 cardinal points and 4 intermediate directions on a compass.
This semi-automatic system consists of the main/master controller, the personal computer (PC). The function of PC is to provide the main inputs from the user through the GUI (Graphical User Interface). The secondary controller, microcontroller, is to process the inputs from the master controller (PC) and detect the reed switches as the position sensors. After the inputs from PC and the position sensors was given, then this secondary controller will give the DC motor’s driver instruction to generate the DC motor toward the direction the user want.
And the result is, that the house (model) can rotated to the 8 direction. And the maximum weight that the house can rotate is 3 Kg.
Key Words: position control, microcontroller application, smart house model
PENDAHULUAN
1.1 Judul
Pengendali Putaran Arah Rumah pada Pemodelan Rumah Pintar
1.2 Latar Belakang
Rumah Pintar merupakan salah satu aplikasi dari kemajuan teknologi saat ini. Pemasangan suatu atau beberapa sistem yang cukup membantu atau menunjang dari keberadaan rumah tersebut. Keinginan penghuni untuk mematikan lampu suatu ruangan tanpa harus berdiri dan menghampiri saklar lampu. Atau untuk memperoleh sinar matahari yang masuk ke dalam rumah, serta mengatur keamanan rumah hanya dengan menggunakan beberapa tombol saja.
Dapat disediakan oleh beberapa sistem yang tertanam dalam rumah.
Salah satu penerapan dari sistem tersebut adalah dapatnya suatu rumah untuk berputar sehingga rumah tersebut dapat menghadap arah yang sesuai dengan arah mata angin. Pemilik rumah yang ingin mengubah arah rumah, hanya tinggal memasukkan suatu perintah lewat suatu GUI (Graphical User Interface) dari sebuah PC yang kemudian akan diteruskan ke pengendali dan pada akhirnya kedudukannya diputar. Pengendali yang dapat digunakan adalah Mikrokontroler.
Mikrokontroler yang akan dipakai adalah mikrokontroler keluarga MCS-51 yaitu
mikrokontroler keluaran ATMEL Electronic (AT89S51 atau AT89C51 dan yang
lainnya). Sistem asli yang ditanam dalam rumah putar sesungguhnya
membutuhkan tenaga dan biaya yang cukup besar, maka dalam penelitian ini
digunakan pemodelan rumah (ukuran kecil) sehingga dapat menekan biaya yang digunakan, namun bisa menjadi suatu referensi untuk perancangan rumah pintar yang asli.
1.3 Perumusan Masalah
Rumah yang dapat berputar adalah salah satu aplikasi dari suatu rumah pintar (untuk selanjutnya rumah yang dimaksud adalah rumah model). Ada banyak cara untuk melakukan pengendalian terhadap sistem ini. Salah satunya adalah digunakannya mikrokontroler sebagai pengendali utama. Mikrokontroler yang digunakan adalah ATMEL AT89S51. Mikrokontroler jenis ini dipakai karena sudah banyak aplikasi pengendalian lain yang memakainya selain karena mudah dijumpai di pasaran.
Untuk mendapatkan posisi yang diinginkan, dibutuhkan sensor yang dapat memberikan referensi tentang posisi arah mata angin yang ada. Untuk itu digunakan sensor posisi yang dalam hal ini digunakan reed switch. Sensor ini memberikan masukan kepada mikrokontroler tentang posisi rumah sebelumnya atau posisi yang diinginkan. Dengan terlebih dahulu sensor tersebut diletakkan pada posisi-posisi yang mewakili arah mata angin dengan bantuan sebuah kompas untuk menentukan posisi default-nya.
Dengan demikian masalah yang dapat dirumuskan adalah:
1. Pendeteksian posisi rumah dilakukan oleh sensor posisi (reed
switch) yang telah diletakkan sesuai dengan arah angin (yang
sebelumnya telah diatur).
2. Motor DC akan memutar rumah ke posisi sesuai dengan yang diinginkan oleh pengguna.
3. Penggendalian utama dilakukan oleh mikrokontroler (AT89S51).
1.4 Batasan masalah
Pada penelitian tentang Pengendali Putaran Motor DC pada Pemodelan Rumah Pintar ini dibatasi pada masalah-masalah sebagai berikut.
1. Rumah hanya dapat diatur menghadap ke 8 arah saja (utara, timur laut, timur, tenggara, selatan, barat daya, barat, dan barat laut).
2. Sebagai penggerak rumah model, digunakan motor DC dengan gearhead.
3. Sensor posisi yang digunakan adalah reed switch.
4. Arah mata angin didapat dengan terlebih dahulu diatur menggunakan suatu kompas magnet dengan default posisi awal menghadap utara.
5. Ukuran rumah model yang digunakan adalah 40 × 40 × 30 cm.
1.5 Tujuan Penelitian
Tujuan dari penelitian ini adalah:
1. Mengaplikasikan AT89S51 sebagai pengendali utama putaran motor DC pada pemodelan rumah pintar.
2. Menerapkan penggunaan sensor posisi pada pengendalian putaran
motor DC pada pemodelan rumah pintar.
1.6 Manfaat Penelitian
Manfaat yang diharapkan dapat diambil dari penelitian Pengendali Putaran Arah Rumah pada Pemodelan Rumah Pintar ini adalah:
1. Tersedianya referensi bagi perancangan rumah pintar yang sesungguhnya.
2. Tersedianya sebuah pemodelan rumah pintar yang dapat berputar sesuai arah mata angin.
1.7 Metodologi Penelitian
Untuk merencanakan dan membuat peralatan dari penelitian ini, diperlukan langkah-langkah sebagai berikut:
1. Mencari dan mempelajari literatur tentang permasalahan yang ada, cara kerja dan sekaligus cara-cara merencanakan dalam membuat peralatan tersebut.
2. Perancangan peralatan menggunakan teori yang ada untuk mendapatkan karakteristik yang sesuai dengan spesifikasi yang ditentukan.
3. Pembuatan peralatan untuk setiap bagian sistem sesuai dengan fungsi masing-masing dan diuji kesesuaiannya dengan kehendak.
Bagian tersebut selanjutnya disusun sebagai kesatuan yang utuh.
4. Pengamatan sistem dilakukan pada titik-titik uji yang penting
1.8 Sistematika Penulisan
Pembahasan secara keseluruhan dari penelitian ini akan dibagi
menjadi empat bab, yaitu:
BAB I Pendahuluan
Berisi latar belakang yang mendasari topik dari penelitian ini, perumusan masalah yang ada, batasan masalah, maanfaat dan tujuan, metodologi penelitian, serta sistematika penulisan.
BAB II Dasar Teori
Berisi tentang teori-teori yang mendasari pembuatan alat pengendali arah rumah pada pemodelan rumah pintar.
Diantaranya dasar teori mikrokontroler AT89S51, sensor posisi, motor DC, dan semua hal yang terkait dengan penelitian.
BAB III Perancangan Alat
Berisi tentang perancangan komponen-komponen yang digunakan pada pembuatan alat pengendali putaran motor DC pada pemodelan rumah pintar.
BAB IV Hasil dan Pembahasan
Berisi tentang hasil yang didapat dari penelitian dan pengamatan terhadap alat.
BAB V Kesimpulan dan Saran
Berisi kesimpulan yang dapat diambil berdasarkan hasil
yang didapat serta saran yang dapat diberikan.
DASAR TEORI
2.1 Mikrokontroler AT89S51
Mikrokontroller AT89S51 merupakan Mikrokontroller yang kompatibel dengan Mikrokontroller 8051 buatan Intel. Perintah-perintah yang digunakan pada Mikrokontroller AT89S51 dapat digunakan pula pada Mikrokontroller 8051
[1] . Blok diagram dari ATMEL AT89S51 dapat dilihat pada gambar 2.1 sebagai berikut.
Gambar 2.1 Blok Diagram ATMEL AT89S51
2.1.1 Organisasi Memori
Untuk pengalamatan memori, dapat dibedakan menjadi dua yaitu untuk program memori dan untuk data memori [1] . Masing-masing program memori dan data memori dapat mengalamati sampai 64 Kb, dengan masing-masing byte lebar datanya 8 bit.
Program memori hanya dapat dibaca, tidak dapat ditulis. Di sini tersimpan program yang akan dijalankan oleh mikrokontroler dan data- data konstanta. Sinyal pembacaan EPROM eksternal adalah dari pin- PSEN. Ada dua tipe organisasi memori dari program memori. Yang pertama adalah pengaksesan program memori sebagian berasal dari internal EPROM yang menempati alamat terendah dan alamat berikutnya dari EPROM eksternal. Sedang yang kedua adalah pengaksesan program memori yang semuanya dari eksternal EPROM.
Data memori menempati alamat yang terpisah dari program memori. Data memori merupakan tempat penyimpanan data variable, operasi stack dan sebagainya. Data memori dapat dibaca dan ditulis.
Sinyal pembacaan untuk eksternal RAM berasal dari pin RD dan untuk penulisan berasal dari pin WR. Alamat 00H-FFH merupakan alamat dari internal RAM yang dapat dialamati dalam dua mode. Pada alamat 00H- 7FH dapat dialamati dalam mode direct maupun indirect addressing.
Alamat 80H-FFH hanya dapat dialamati dalam mode direct addressing.
Di luar alamat tersebut merupakan alamat eksternal RAM.
2.1.2 Register
Mikrokontroler ini memiliki sejumlah register yang memiliki fungsi khusus (special function register – SFR) dan register umum (general purpose register) [1] . General purpose register yang dapat diakses adalah 8 byte per bank yaitu register R0-R7, dengan jumlah bank sebanyak 4. Untuk register-register pada SFR yang dapat dialamati per bit diantaranya adalah:
1. Register ACC(accumulator)
Register ini memiliki alamat 0E0h, dapat dialamati per bit (bit addressable). Biasanya ditulis dengan kode A.
2. Register B
Register ini memiliki alamat 0F0h, bit addressable. Biasa ditulis dengan kode B. digunakan pada proses perkalian dan pembagian, dan dapat dipakai pada instruksi lain sebagai register umum.
3. Register PSW (Program Status Register)
Register ini memiliki alamat 0D0h, bit addressable. Biasa ditulis dengan kode PSW.
Gambar 2.2 Alokasi Bit Register PSW
4. Stack Pointer (SP)
Register yang memiliki alamat 081h ini nilainya ditambah satu (increaament) sebelum data disimpan dengan perintah PUSH ataupun CALL. Stack Pointer memiliki nilai 07h setelah proses RESET dan POWER ON, dengan demikian stack akan berawal dari alamat 080h. namun posisi stack bisa saja dari RAM internal.
5. Data Pointer (DPTR)
Register ini adalah register 16 bit yang terdiri dari dua register 8 bit yaitu DPL (address:082h) dan DPH (address: 083h). DPTR digunakan untuk menunjuk address memory16 bit yang akan diakses misalnya oleh instruksi MOVX A,@DPTR.
6. Register Timer
Yaitu register-register 16 bit yang merupakan isi dari timer/counter 0, 1, dan 2. Timer/counter 1 memiliki register TH1 pada 8DH dan TL1 pada 8BH, timer/counter 0 registernya TL0 pada 8CH dan TH0 pada 84H.
7. Register PCON (Power Control)
Register ini memiliki alamat 087h, dengan bit-bit control sebagai berikut:
Tabel 2.1a Nama-Nama Bit Kontrol dari Register PCON
Simbol Posisi Nama
SMOD PCON.7 Double baud rate rate bit
GF1 PCON.3 General purpose flag 1
Tabel 2.1b Nama-Nama Bit Kontrol dari Register PCON (lanjutan)
Simbol Posisi Nama
GF2 PCON.2 General purpose flag 2
PD PCON.1 Power Down mode
IDL PCON.0 Idle mode
8. Register Interupsi
Mikrokontroller ini memiliki 5 buah interupsi dengan dua level prioritas interupsi, interupsi secara otomatis akan dimatikan bila sistem di-reset. Register yang behubungan dengan interupsi adalah Interrupt Enable Register (IE) pada alamat A8H dan Interupsi Priority Register (IP) pada alamat B8H.
9. Register TCON (Timer /Counter Control)
Register yang memiliki address 088h berfungsi untuk mengontrol fungsi timer 1 dan timer 0 , mengatur respon mikrokontroler ini terhadap level tegangan pada input external interrupt, serta memberikan tanda flag jika telah ada sinyal interrupt external.
10. Register TMOD (Timer/ Counter mode)
Register yang memiliki address 089h berfungsi untuk mengontrol mode Timer 1 dan timer 0.
11. Register SCON (Serial Port Control)
Register ini memiliki address 098h berfungsi untuk mengontrol
fungsi Serial Port.
2.1.3 Struktur Interupsi
Mikrokontroller ini menyediakan 5 sumber interupsi, yaitu : 2 interupsi eksternal, 2 interupsi pewaktu dan sebuah interupsi serial [1] . Setiap sumber interupsi dapat dimatikan dan dihidupkan secara individual dengan cara meresetkan bit-bit IE dalam SFR. Pada bit IE ini terkandung juga sebuah bit aktivasi interupsi secara global. Gambar 2.3 menunjukkkan IE pada Mikrokontroller ATMEL AT89S51.
Gambar 2.3 Register Interrupt Enable ATMEL AT 89S51 Fungsi-fungsi pin IE dapat dilihat pada tabel 2.3. Pin IE7 digunakan sebagai kontrol utama bagi interupsi-interupsi yang lain. Bila pin ini bernilai 1 maka semua pin interupsi akan dapat digunakan (enable), sedangkan bila bernilai 0 maka semua pin interupsi akan tidak dapat digunakan (Disable).
Pin IE6 dan IE5 digunakan sebagai cadangan pada Mikrokontroler ini. IE4 dipergunakan sebagai bit aktivasi interupsi port serial, sehingga bila diinginkan interupsi menggunakan port serial pin IE4 ini harus diberi nilai tinggi atau 1.
Pin IE3 dan IE1 digunakan untuk timer 0 dan timer 1, bila timer
digunakan dan telah mencapai nilai yang diharapkan maka interupsi ini
akan bernilai tinggi atau 1.
Pin IE2 dan IE0 dipergunakan sebagai masukan interupsi yang berasal dari luar, sebagai contoh pin ini dihubungkan dengan saklar external.
Tabel 2.2 Register IE
Simbol Posisi Fungsi
EA IE.7 Untuk mematikan dan menghidupkan seluruh interupsi secara serentak.
- IE.6 Cadangan
- IE.5 Cadangan
ES IE.4 Bit aktivasi interupsi Port Serial ET1 IE.3 Bit aktivasi interupsi timer 1 overflow EX1 IE.2 Bit aktivasi interupsi external 1 ET0 IE.1 Bit aktivasi interupsi timer 0 overflow EX0 IE.0 Bit aktivasi interupsi external 0
Sebuah interupsi yang berprioritas rendah dapat diinterupsi oleh
yang berprioritas lebih tinggi, sedangkan interupsi dengan prioritas tinggi
tidak dapat diinterupsi oleh prioritas yang lebih rendah. Bila kedua
prioritas muncul pada saat yang bersamaan maka interupsi dengan
prioritas yang tertinggi yang akan dieksekusi terlebih dahulu. Namun jika
muncul dua interupsi yang mempunyai prioritas yang sama maka CPU
akan melakukan metode pengecekan secara kontinyu untuk menentukan
interupsi mana yang akan dilayani pertama kali. Prioritas interupsi dapat
dilihat pada tabel 2.8.
Tabel 2.3 Prioritas Interupsi Simbol Posisi Fungsi
- 1P.7 Cadangan
- IP.6 Cadangan
- IP.5 Cadangan
PS IP.4 Bit prioritas untuk Interupsi Port Serial PT1 IP.3 Bit prioritas untuk Interupsi timer 1 PX1 IP.2 Bit prioritas untuk Interupsi external 1 PT0 IP.1 Bit prioritas untuk Interupsi timer 0 PX0 IP.0 Bit prioritas untuk Interupsi external 0
2.1.4 Port I/O Serial
Port I/O serial yang dimiliki mikrokontroler ini memiliki karakteristik full duplex (dapat menerima sekaligus mengirimkan data secara simultan), dan receive-buffered (dapat memulai penerimaan data yang kedua sebelum data pertama dibaca dari register pembacaan [1] . Pengiriman dan pengiriman data pada port serial melalui SBUF.
Port serial dapat bekerja pada 4 mode. Yaitu, 1. Mode 0
Pada mode ini data serial diterima dan dikirim lewat pin RXD,
seangkan pin TXD berfungsi untuk mengirimkan shift clock. Data
yang diterima dan dikirimkan adalah selebar 8 bit dengan bit
terendah dikirimkan /diterima pertama kali. Kecepatan pengiriman
(baud rate) adalah tetap. Sebesar 1/12 frekuensi osilator.
2. Mode1
Pada mode ini data 8 bit dikirim/diterima dengan 2 bit tambahan, dengan urutan start bit (logika0), 8 bit data (dengan bit terendah di depan), dan 1 stop bit (logika 1). Pada saat penerimaan, stop bit masuk pada bit RB8 pada register SCON. Baud rate pada mode ini adalah variable.
3. Mode 2
Pada mode ini data 8 bit dikirim/diterima dengan 3 bit tambahan dengan urutan start bit (logika 0), 8 bit data, 1 bit tambahan yang dapat diprogram, dan 1 stop bit (logika1). Pada saat pengiriman. Bit yang dapat diprogram adalah bit yang terdapat pada bit TB8 pada register SCON. Pada saat penerimaan, bit yang dapat diprogram masuk pada bit RB8 pada register SCON. Baud rate pada mode ini adalah 1/32 atau 1/64 frekuensi osilator.
4. Mode 3
Pada mode ini data 8 bit dikirim/diterima dengan 3 bit tambahan dengan urutan start bit (logika 0), 8 bit data (dengan bit terendah di depan), 1 bit tambahan yang dapat diprogram, dan 1 stop bit (logika 1). Mode ini persis sama dengan mode 2 kecuali baud rate- nya yang variable.
2.1.5 Pengaturan Baud Rate
Baud rate adalah kecepatan transmisi data serial [1] . Berupa
banyaknya transisi logika pada saluran data serial setiap detik. Semakin
besar nilai baud rate, maka semakin cepat proses pengiriman/penerimaan data serial.
Pada mode 0, baud rate adalah tetap sebesar 1/12 frekuensi osilator.
Bit SMOD pada register PCON menentukan baud rate pada mode 2.
untuk SMOD=1 baud rate adalah 1/32 frekuensi osilator, dan jika SMOD=0 maka baud rate adalah 1/64 frekuensi osilator. Baud rate untuk mode1 dan 3 ditentukan oleh kecepatan overflow pada Timer 1.
Baud rate untuk mode 1 dan 3 ditentukan oleh persamaan:
32
* _
1 _ 1
overflow Timer
rate
Baud = (3.1)
Konfigurasi timer 1 yang diperlukan untuk menjalani fungsi diatas adalah:
1) Timer dijalankan pada operasi “timer” atau “counter”, dengan mode 1, 2, atau 3
2) Timer 1 interrupt dibuat tidak bekerja (Disable)
Tabel 2.4 Mode Serial dan Baud Rate
Mode Baud rate
0 1/12 fosc
SMOD = 0 SMOD =1
1
32 ) 1 256 (
12 × − TH ×
fosc
16 ) 1 256 (
12 × − TH ×
fosc
2 1/64 fosc 1/32 fosc
3 12 × ( 256 − TH 1 ) × 32 fosc
16 ) 1 256 (
12 × − TH ×
fosc
2.2 Motor DC
Motor DC merupakan salah satu mesin yang dapat merubah energi listrik menjadi energi mekanik/gerak. Salah satu jenis motor DC adalah motor DC magnet permanen [8] . Motor DC magnet permanen pada dasarnya tersusun dari dua bagian pokok, yaitu :
1. Rotor
Kumparan rotor/komutator merupakan bagian motor yang bergerak yang tersusun dari kumparan-kumparan yang diletakkan pada poros motor. Jika dialiri arus listrik, kumparan rotor akan menghasilkan flux magnet.
2. Stator
Stator merupakan bagian motor yang diam, bagian ini terdiri dari magnet permanen yang mempunyai dua kutub. Pada bagian ini akan dihasilkan garis gaya magnet yang bergerak dari kutub utara ke kutub selatan magnet.
Motor DC magnet permanen merupakan motor dengan daya yang kecil yang mempunyai penggunaan yang luas, antara lain sebagai servo motor pada sistem kendali. Karena motor ini menggunakan magnet permanen untuk menghasilkan medan magnet pada statornya, maka kuat medan magnet stator tetap dan dengan terbatasnya medan magnet stator maka pada gilirannya akan membatasi torsi yang dihasilkan.
Salah satu jenis motor DC yang lain adalah motor DC dengan
menggunakan gearhead. Disini kecepatan putar dari suatu motor DC dapat
dikurangi/diperkecil. Besar pengurangan putar dari motor tersebut tergantung
besar dan banyaknya gear-gear yang dipakai. Sebagai contoh pada penelitian ini digunakan motor DC dengan gearhead yang pada akhirnya menghasilkan perbandingan putar antara motor DC utama (tanpa gearhead) dan dengan gearhead adalah 1:30. Jadi 30 kali putaran motor DC utama akan sama dengan 1 kali putaran motor dengan gearhead. Seri dari motor DC yang dipakai adalah GH35GM.
M
-
+ MG1
MOTOR DC
1 2
Gambar 2.4 Lambang Motor DC pada rangkaian
2.3 Driver Motor DC
Untuk dapat memutar suatu motor DC maka diperlukan suatu driver, untuk itu digunakan IC L293D untuk mendrive motor DC (dengan gearhead) tersebut. L293D didesaian untuk dapat beroperasi dengan arus hingga 600mA dan tegangan dari 4.5 V hingga 36 V [6] . Komponen ini dapat menggerakkan relay, solenoid, motor dc, motor stepper bipolar. Semua input beroperasi pada logika TTL.
Gambar 2.5 Diagram blok dari IC L293D
Sebuah IC L293D dapat mendrive 2 buah motor DC. IC ini mempunyai 4 input (in1, in2, in3, in 4), 4 output (out1, out2, out3, out4), dan 2 enable (en1, en2). Input dan enable tersebut bekerja sesuai dengan tabel berikut:
Tabel 2.5 Logika Aplikasi L293D En1 In1 In2 Out1 Out2 Motor DC
H H H L L Diam
H H L H L Putar kiri
H L H L H Putar kanan
H L L L L Diam
L H H L L Diam
2.4 Sensor Posisi
Sensor posisi adalah suatu sensor yang digunakan untuk mendeteksi
letak/posisi suatu benda pada saat itu. Banyak komponen yang dapat digunakan
sebagai sensor posisi. Salah satunya adalah reed switch . Reed switch atau sering
disebut relai buluh terdiri dari dua buah plat kontak yang tertutup kedap udara
(hermetis) pada tabung gelas yang diisi dengan gas pelindung. Pada saat magnet
permanen didekatkan pada tabung, maka ujung-ujung tab kontak akan saling
menarik satu sama lain dan akan terjadi kontak. Karena magnet permanen
digerakan lebih jauh, ujung-ujung tab kontak dihilangkan kemagnetannya dan
kembali pada posisi aslinya. Pada sistem kerjanya menyerupai saklar yang
diaktifkan oleh magnet. Saklar Reed switch dilindungi tabung agar bebas dari
kelembaban. Oleh karena itu kontak saklar dibuat tertutup agar kontak tidak terpengaruh oleh debu, air, asap atau uap sehingga dapat dipakai lebih lama.
Pengaktif Reed switch yang paling umum adalah menggunakan magnet permanen, namun dapat digunakan magnet induksi.
Bentuk Sebuah Reeds Switch dapat dilihat pada gambar 2.6
Gambar 2.6 Bentuk Sebuah Reed Switch
2.5 Antarmuka (Interface) PC
Pada penelitian ini, untuk antarmuka antara pengendali (mikrokontroler) dan PC digunakan serial port atau communication port (COM). Komunikasi serial merupakan komunikasi asinkron, yaitu bahwa antara penerima dan pengirim data, tidak ada sikronisasi berupa clock. Sehingga mengharuskan ada penyesuaian kecepatan transfer data [1] . Kecepatan data tersebut disebut sebagai baud rate. Terminal serial port pada PC berupa konektor DB-9 male.
Hampir semua alat digital yang digunakan memerlukan salah satu dari
level logika TTL atau CMOS. Untuk itu diperlukan suatu RS-232 level converter
yang berguna mengubah level RS-232 ke bentuk tegangan 0 V dan 5 V. salah
satu bentuk lain dari RS-232 level converter adalah MAX-232. IC ini mempunyai
4 buah inverter, yaitu 2 inverter untuk mengubah level logika TTL/CMOS ke
level logika RS-232 dan dua inverter untuk mengubah level logika RS-232 ke
level logika TTL/CMOS.
Gambar 2.7 Informasi pin MAX 232
PERANCANGAN ALAT
3.1 Diagram Kotak Pengendali Putaran Arah Rumah pada Pemodelan Rumah Pintar
Diagram kotak dari Pengendali Putaran Arah Rumah pada Pemodelan Rumah Pintar dapat ditunjukkan pada gambar dibawah ini:
Gambar 3.1 Diagram Kotak Pengendali Putaran Arah Rumah Pada Pemodelan Rumah Pintar PC dalam hal ini berlaku sebagai master control yang berfungsi untuk memberikan input dari GUI (Graphical User Interface), user memberikan perintah untuk kemudian diteruskan kepada mikrokontroler untuk kemudian proses pengendalian dilakukan. Sebaliknya, user juga akan menerima tampilan berhasil atau gagalnya suatu perintah dari PC.
Seperti dijelaskan pada dasar teori bahwa antarmuka berfungsi sebagai
perantara/penghubung antara PC dan mikrokontroler. Dalam hal ini juga untuk
mengubah level logika antara kedua blok tersebut (PC dan mikrokontroler) dalam komunikasi serial.
Gambar 3.2 Gambar Pemodelan Rumah dan Koneksinya ke PC
Sensor posisi disini akan memberikan referensi kepada mikrokontroler tentang arah rumah pada saat ini. Sehingga mikrokontroler dapat menentukan kearah mana dan pada posisi mana motor harus berputar untuk mendapatkan posisi yang diinginkan. Setelah berputar, sensor ini juga akan memberikan informasi kepada mikrokontroler apakah posisi yang diinginkan tercapai. Gambar pemodelan rumah pintar dan koneksinya dapat dilihat pada gambar 3.2.
Setelah mendapatkan perintah, mikrokontroler akan mengendalikan ke arah mana semestinya motor DC berputar melalui driver motor DC, dalam hal ini driver yang digunakan adalah L293D. Motor DC secara tidak langsung akan memberikan umpan balik kepada sensor. Motor DC akan berputar dan menyebabkan sensor posisi mendeteksi perputaran dari motor DC yang kemudian akan memberi referensi kepada mikrokontroler.
Posisi rumah pada awal pengendalian sudah terlebih dahulu diatur
menghadap arah utara sebagai posisi default-nya. Pengaturan ini dilakukan
dengan menggunakan kompas analog. Kompas ini juga digunakan untuk mendapatkan arah mata angin yang presisi untuk arah rumah yang lain. Untuk program, pengaturan posisi default dilakukan oleh PC.
3.2 Antarmuka RS232
Untuk berhubungan dengan serial port pada PC, tegangan pada mikrokontroler harus diubah dahulu dari standar TTL ke standar RS232.
Sebaliknya, serial port pada PC juga harus mengubah level tegangannya dari standar 232 ke standar TTL.
Untuk itu digunakan IC MAX232 yang memiliki 2 buah pengubah tegangan dari standar TTL ke standar RS232 dan 2 buah pengubah tegangan dari standar RS232 ke standar TTL. Pada IC MAX232 ini perlu ditambahkan beberapa kapasitor untuk menunjang fungsinya sebagai pengubah level tegangan.
Koneksi dan besarnya kapasitor disesuaikan sesuai dengan datasheet.
Koneksi antara MAX232, mikrokontroler, dan PC ditunjukkan pada gambar 3.3.
+5V
+5V
Port 3.1
Port 3.0
MAX232 13
8 11 10 1 3 4 5 6 2
12 9 14 7
1516
R1IN R2IN T1IN T2IN C1+
C1- C2+
C2- V- V+
R1OUT R2OUT T1OUT T2OUT
GNDVcc
+ C1 1uF
+
C5
1uF
+ C3 1uF + C2
1uF
+ C4
1uF P1
CONNECTOR DB9 5 9 4 8 3 7 2 6
1 mikrokontroler
Gambar 3.3 Koneksi MAX232, mikrokontroler, dan PC
3.3 Perancangan Pengendalian driver motor DC
Arus yang dihasilkan oleh mikrokontroler melalui keluaran dari pin-pin port 0 sebesar maksimal 15 mA, belum mencukupi untuk menggerakkan motor DC yang membutuhkan arus rata-rata sebesar 185mA. Untuk itu diperlukan suatu komponen penggerak motor DC yang mampu memenuhi kebutuhan besar arus yang semestinya dapat menggerakkan motor DC tersebut. Untuk itu digunakan suatu driver motor DC.
Driver motor DC yang digunakan disini adalah IC L293D. IC ini mampu menggerakkan suatu motor DC dengan arus keluaran mencapai level maksimum 1,2 A. dan hanya dengan masukan arus input minimum 0,1 mA untuk masukan nilai tinggi (high). Arus ini masih dibawah nilai arus keluaran dari mikrokontroler. Semua nilai-nilai tersebut terdapat pada datasheet masing- masing komponen.
Motor DC akan berputar searah jarum jam apabila sebelumnya masukan 1 (in1) pada driver mendapat logika tinggi (H) dan masukan 2 (in2) mendapat masukan berupa logika rendah (L) dari mikrokontroler. Sedangkan untuk putaran berlawanan jarum jam, terjadi hal yang sebaliknya. In1 mendapat masukan rendah dan in2 mendapat masukan tinggi. Dari kedua kondisi tersebut, enable pada driver harus terlebih mendapat masukan tinggi dari mikrokontroler.
Koneksi antara mikrokontroler, driver motor DC, dan motor DC
ditunjukkan oleh gambar 3.4.
+5V
+9V Port 1.0
Port 1.1
Port 1.2
U8
L293D 2 7 10
9 1
14 11 6 3
15
8
4 512 1316 In1 In2 In3
En2 En1
Out4 Out3 Out2 Out1
In4
Vs
GND4 GND1 GND3 GND2Vss
M
-
+
MOTOR DC
12
ke mikrokontroler
Gambar 3.4 Koneksi Mikrokontroler, L293D, dan Motor DC
3.4 Perancangan sensor posisi
Sensor posisi di sini yang digunakan adalah reed switch. Dengan posisi awal (default) dari model rumah pintar tersebut menghadap utara. Sensor reed switch mempunyai arus maksimal sampai 1 A. Namun pada perancangan ini menggunakan arus sebesar 10mA agar arus yang mengalir tidak melebihi batas arus maksimal dan mampu mampu mengalir pada mikrokontroler.
Gambar 3.5 Rangkaian Reed Swich
Cara kerja dari rangkaian pengaman jendela adalah reed switch yang
bersifat seperti saklar saat didekatkan pada medan magnet maka reed switch
dalam kondisi ON sedangkan saat jauh dari efek medan magnet, maka reed
switch dalam kondisi OFF. Dari kondisi ini maka pada pemasangannya reed
switch diletakan sesuai dengan arah-arah rumah yang diinginkan (8 arah mata
angin), jadi reed switch yang digunakan berjumlah 8 buah. Sedangkan magnet
akan ikut berputar sesuai dengan putaran rumah. Dari kondisi tersebut, apabila
magnet yang berputar mendekati salah satu dari dari reed switch maka arus akan mengalir melalui reed switch tersebut yang kemudian akan memberikan referensi kepada mikrokontroler tentang posisi sensor reed switch yang ON.
3.5 Perancangan Mikrokontroler
Selain Perancangan koneksi-koneksi mikrokontroler dengan perangkat yang lain. Juga dijelaskan perancangan mikrokontroler tersebut sendiri.
Mikrokontroler juga membutuhkan adanya osilator dan adanya rangkaian reset yang digunakan untuk menset kembali mikrokontroler ke keadaan semula.
3.5.1 Rangkaian Osilator
Mikrokontroler mempunyai rangkaian osilator internal (on chip oscillator) yang merupakan sumber clock bagi CPU. Untuk dapat menggunakan rangkaian osilator dalam chip, ditambahkan 1 buah kristal dan 2 buah kapasitor pada pin XTAL dan pin XTAL2 (pin 18 dan 19) [1] . Rangkaian ini menggunakan kristal 12 MHz dan 2 buah kapasitor 30 pF sehingga frekuensi detak pada CPU adalah 12 MHz.
12MHz 30pF
30pF
U15
AT89S51 9 18
19 29
30 31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39
38 37 36 35 34 33 32
RST XTAL2
XTAL1 PSEN
ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0
P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
Gambar 3.6 Rangkaian Osilator
3.5.2 Rangkaian Reset
Rangkaian ini digunakan untuk mereset mikrokontroler pada saat catu daya dihidupkan. Keadaan reset pada mikrokontroler diperoleh apabila pin reset diberi logika tinggi [1] . Waktu reset tersebut dihitung dengan rumus T=RC. Waktu reset 100ms dengan C=10uF maka resistansi:
Ω
=
=
=
−
−
−
−
3 6
3 6 3
10
* 10 ) 10
* 10 /(
) 10
* 100 (
* ) 10
* 10 ( 10
* 100
R
R
Cara kerja reset ini adalah bila saklar reset ditekan maka aliran arus mengalir dari Vcc melalui resistor 1kΩ menuju kaki reset:
54 , ) 4 10
* 10 ( ) 10
* 1 (
5
* ) 10
* 10 (
3 3
3
9 =
= + V R
+5v
U15
AT89S51 9
18
19 29
30 31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39
38 37 36 35 34 33 32
RST XTAL2
XTAL1 PSEN
ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0
P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
10uF
10k 1k
SW1
1 2
Gambar 3.7 Rangkaian Reset
3.6 Perancangan Perangkat Lunak
Mikrokontroler dapat bekerja bila dimasukkan instruksi-instruksi yang diprogramkan. Program dalam perancangan ini terdiri dari bagian program utama dan program sub rutin penggerak motor DC. Program utama adalah program rutin yang mencakup seluruh kerja dari program. Mulai dari komunikasi dengan PC sampai dengan bergeraknya motor DC. Sedangkan sub rutin penggerak motor DC mencakup pengolahan data dari PC sampai pada keputusan-keputusan dari mikrokontroler yang harus diambil tentang berputarnya motor DC.
3.6.1 Rutin Utama Perangkat Lunak pada Mikrokontroler
.
Gambar 3.8 Diagram Alir Utama Perangkat Lunak Pada Mikrokontroler
Rutin utama perangkat lunak pada mikrokontroler akan menginisialisasi fasilitas-fasilitas yang akan digunakan pada mikrokontroler. Mikrokontroler akan memulai rutin untuk transfer data secara serial dari komputer ke mikrokontroler. Setelah transfer selesai, data tersebut akan diolah oleh mikrokontroler yang selanjutnya digunakan untuk menggerakkan motor DC.
Diagram alir rutin utama perangkat lunak pada mikrokontroler ditunjukkan pada gambar 3.8
3.6.2 Subrutin Penggerak Motor DC
Sub rutin penggerak ini diawali dengan inisialisasi komunikasi serial antara PC dan mikrokontroler. Pada komunikasi serial ini terlebih dahulu harus diatur dua hal terlebih dahulu. Yaitu menentukan mode serial yang akan digunakan dan menentukan baud rate. Penentuan mode serial dilakukan dengan mengisi register SCON.
Pada perancangan ini mode serial yang digunakan adalah mode 1. yaitu menggunakan 8 UART dengan baud rate yang dapat diatur.
Pada mode ini, komunikasi data dilakukan secara 8 bit data
asinkron, yang terdiri dari 10 bit. Yaitu 1 bit start, 8 bit data, dan 1 bit
stop. Baud rate pada mode ini dapat diatur dengan menggunakan timer
1. Port 3.0 pada mikrokontroler berfungsi sebagai RxD, yaitu port untuk
menerima data serial, dan port 3.1 berfungsi sebagai TxD, yaitu port
untuk mengirim data.
Untuk pengaturan baud rate port serial, yakni dengan mengubah bit SMOD yang terletak pada register PCON menjadi logika tinggi. Penghitungan baud rate dapat dihitung sebagai berikut:
32
* _
1 _ _ 1
overflow timer
rate
Baud =
Jika diinginkan baud rate 2400bps, timer1 harus diatur
agar overflow setiap
32
* 2400
1 detik. Timer overflow setiap kali TH1
mencapai nilai limpahan dengan frekuensi sebesar f osc /1,0592 atau periode sebesar 11,0592/f osc . Dari sini akan diperoleh rumus sebagai berikut:
32
* 2400
1 )
1 256 (
* 0592 .
11 − =
f osc
TH
240 244
* 32
* 0592 . 256 11
1 = − f osc ≅
TH
Dengan frekuensi osilator sebesar 11,0592*10 3 Hz, maka TH1 adalah 244 atau 0F4H.
Selanjutnya data yang telah tersimpan di akumulator akan
diambil untuk selanjutnya diolah. Kemudian data yang telah diambil
tersebut akan dibandingkan. Disini data dari PC yang telah tersimpan di
akumulator adalah data berupa nilai heksadesimal yang mewakili arah
mata angin. Sebagai contoh arah utara terwakili oleh nilai 46H. Dan
untuk arah mata angin yang lain dapat dilihat pada tabel 3.1.
Tabel 3.1 Arah Mata Angin dan Nilai Heksadesimalnya Arah Mata
Angin
Nilai (Heksadesimal)
Utara 46H
Timur Laut 47H
Timur 48H
Tenggara 49H
Selatan 4AH
Barat Daya 4BH
Barat 4CH
Barat Laut 4DH
Selanjutnya jika sudah terdefinisi data yang masuk, akan dicek dimanakah letak/posisi dari motor DC atau arah rumah tersebut menghadap. Pengecekan dilakukan dengan melihat isi dari port 0. Port 0 merupakan port yang digunakan sebagai port masukan dari sensor posisi. Reed switch yang memberi masukan on, akan memberikan masukan berupa logika tinggi (1) kepada mikrokontroler. Sedangkan reed switch yang off akan memberi masukan berupa logika rendah (0).
Sehingga dari kedelapan arah mata angin yang ada akan memberikan input masing-masing yang membentuk data 8 bit pada port 0. Arah mata angin, nilai binernya, dan nilai heksadesimalnya dapat dilihat pada tabel 3.2.
Tabel 3.2 Arah mata angin, Nilai Biner, dan Nilai Heksadesimalnya Arah Mata Angin Biner (8 bit) Heksadesimal
Utara 00000001 01H
Timur Laut 00000010 02H
Timur 00000100 04H
Tenggara 00001000 08H
Selatan 00010000 10H
Barat Daya 00100000 20H
Barat 01000000 40H
Barat Laut 10000000 80H
Setelah didapat posisi rumah pada saat itu, kemudian motor DC akan digerakkan ke posisi yang diinginkan. Sebelum itu, diberikan terlebih dahulu perintah untuk mengaktifkan driver motor DC lewat enable-nya. Perintah tersebut dilakukan dengan memberi logika tinggi (set) pada port P1.2 yang merupakan output mikrokontroler ke driver motor DC pada pin enable. Arah putaran dari motor DC disesuaikan dengan posisi rumah sebelumnya. Apabila arah putaran yang diinginkan sesuai dengan arah jarum jam, maka port P1.0 yang harus di-set. Sedangkan arah putaran yang berlawanan dengan jarum jam, maka port P1.1 yang harus di-set.
Jika arah putaran motor DC telah terlaksana, maka langkah selanjutnya adalah mengatur agar motor berhenti pada posisi yang diinginkan. Caranya adalah dengan mengecek port masukan dari sensor (port 0), apakah port telah menunjukkan nilai yang diinginkan. Jika belum, maka motor akan tetap berputar sampai posisi yang diinginkan tercapai.
Diagram alir rutin penggerak motor DC ditunjukkan oleh
gambar 3.11. Pada diagram alir tersebut, hanya mewakili proses
pengecekan dan pemutaran motor DC ke arah utara saja. Untuk ke arah
lain, terwakili oleh percabangan ke arah titik-titik (percabangan untuk
data 47H, 48H, 49H, dan seterusnya sampai yang terakhir 4DH) dan
hanya tinggal mengganti isi data dan isi port saja.
Gambar 3.9 Diagram alir Penggerak Motor DC dari penyimpanan di Register
SBUF sampai ke pengambilan data ke Akumulator
HASIL DAN PEMBAHASAN
Sistem pengendali putaran arah rumah model ini digunakan untuk mengendalikan arah putaran pada pemodelan rumah pintar dengan menggunakan reed switch sebagai sensor posisinya serta menggunakan motor DC ber-gearhead sebagai penggerak utama rumah model tersebut. Sensor posisi akan mendeteksi posisi dari arah rumah model tersebut. Magnet yang terpasang, berputar sesuai dengan arah rumah. Magnet tersebut menghidupkan sensor tepat pada magnet/rumah model berhenti berputar. Sensor posisi tersebut sebelumnya diatur agar letaknya sesuai dengan arah mata angin.
Pengendalian sistem ini dilakukan oleh mikrokontroler AT89S51.
mikrokontroler ini mendapatkan masukan dari sensor posisi. Keluaran dari mikrokontroler ini akan memberikan masukan pada driver motor DC (L293D) yang kemudian akan men-drive motor DC untuk berputar dan menggerakan rumah model.
4.1 Pengukuran Pada Sensor Posisi Reed Switch
Tabel perbandingan hasil perancangan dan hasil pengukuran untuk
masing-masing kaki pada port 0 (8 kaki untuk 8 sensor posisi) baik saat ada
magnet maupun tidak dapat dilihat pada tabel 4.1. Pengukuran dilakukan dengan
mengukur tegangan pada kaki port 0 di mikrokontroler, baik saat sensor
mendeteksi magnet ataupun tidak (untuk masing-masing sensor).
Tabel 4.1 Tabel Pengamatan Pada Sensor Posisi
Hasil Perancangan
(Volt)
Hasil Pengukuran
(Volt)
Ada Magnet
Tanpa
Magnet Ada Magnet
Tanpa Magnet
port 0.0 5 0 4,905 0,425
port 0.1 5 0 4,824 0,431
port 0.2 5 0 4,830 0,417
port 0.3 5 0 4,890 0,418
port 0.4 5 0 4,901 0,42
port 0.5 5 0 4,901 0,404
port 0.6 5 0 4,887 0,405
port 0.7 5 0 4,895 0,402
Sensor posisi reed switch berfungsi untuk mendeteksi letak/posisi arah rumah saat itu. Posisi rumah tersebut akan terdeteksi saat magnet yang berputar sesuai arah rumah berada dekat sensor tersebut. Sensor ini terpasang dengan satu kaki terhubung vcc=+5V dan kaki satu terhubung ke port 0 pada mikrokontroler (8 buah sensor). Saat magnet tidak berada dekat dengan sensor, kaki port 0 pada mikrokontroler tidak akan mendapat masukan tegangan dari luar. Dengan tegangan sekitar 0 V, mikrokontroler menganggap besar logika yang masuk adalah 0 (low). Sedangkan saat sekitar sensor terdapat magnet, maka besar tegangan pada kaki port 0 akan sama dengan tegangan vcc, karena kaki tersebut terhubung langsung ke vcc. Mikrokontroler mendeteksi tegangan sekitar 5 V sebagai logika 1 (high).
Dari tabel perbandingan pada tabel 4.1 dapat dilihat bahwa hasil yang
didapat pada perancangan dan pengukuran telah sesuai.
4.2 Pengukuran Pada Driver Motor DC
Tabel perbandingan hasil perancangan dan hasil pengukuran pada driver motor DC dapat dilihat pada tabel 4.2
Tabel 4.2 Tabel Pengamatan Pada Driver Motor DC
Hasil
Perancangan
(Volt)
Hasil Pengukuran
(Volt)
Putar CW
putar
CCW putar CW
putar CCW AT89S51
port 1.0
/in 1 5 0 4,257 0,225
port 1.1
/in2 0 5 0,243 4,454
port 1.2
/en1 5 5 4,627 4,523
L293D out 1 - - 7,901 1,123
out 2 - - 1,103 7,867
Pada saat motor berputar searah jarum jam (Clock Wise,CW), port 1.0
pada mikrokontroler akan memberikan nilai logika 1 (tinggi) ke input 1 pada
driver motor DC dengan besar tegangan 4,257 V dan port 1.1 memberikan nilai
logika 0 (rendah) ke input 2 pada driver motor DC dengan besar tegangan 0,243
V. Sedangkan pada putaran motor DC berlawanan jarum jam (Counter Clock
Wise,CCW), terjadi hal yang sebaliknya. Tegangan 0,225 V dari port 1.0
mikrokontroler dibaca oleh input 1 driver motor DC sebagai logika 0. Tegangan
4,454 V dari port 1.1 mikrokontroler oleh input 2 pada driver motor DC dibaca
sebagai logika 1. Sebelum perputaran terjadi, mikrokontroler terlebih dahulu
memberikan masukan ke enable 1 pada driver motor DC melalui port 1.2 dengan
tegangan yang terukur adalah 4,627 V pada putaran CW dan 4, 523 V pada
putaran CCW.
Tegangan masukan ke Vs pada driver motor DC sebesar 9V dapat ter- drive, sehingga motor DC dapat berputar. Besar tegangan keluaran dari driver untuk memutar motor DC dapat dilihat pada tabel 4.2.
Dari tabel 4.2, dapat dilihat bahwa hasil logika yang didapat untuk masukan ke driver motor DC baik untuk putaran CW maupun CCW sesuai dengan hasil perancangan.
4.3 Pengamatan Pada Cara Kerja Alat
Untuk memutar /menentukan arah rumah, pengguna harus memasukkan perintah melalui graphical user interface. Dengan memilih salah satu arah rumah, secara serial Personal Computer (PC) mengirimkan data yang diartikan oleh mikrokontroler sebagai perintah untuk masuk ke dalam subrutin penggerak motor DC (label putarrumah). Pada tampilan GUI, pengguna memasukkan perintah dengan memilih salah satu arah pada option button yang tersedia. Setiap option button mewakili data yang dikirim ke mikrokontroler. Data yang dikirim berupa karakter ASCII. Sedangkan mikrokontroler akan menerima data tersebut berupa heksadesimal. Data perbandingan antara masukan dari PC dan hasil putaran dapat dilihat pada tabel 4.3.
Tabel 4.3 Perintah Dari PC dan Hasil Putaran Option Button
Yang Dipilih
Hasil Putaran
pertama utara
kedua timur laut
ketiga timur
keempat Tenggara
kelima Selatan
keenam barat daya
ketujuh Barat
kedelapan barat laut
Lalu pengecekan selanjutnya dilakukan terhadap isi data yang berupa ke arah mana rumah harus berputar. Jika data telah terdefinisi arahnya, maka mikrokontroler menghidupkan driver untuk menjalankan motor DC dengan arah putaran sesuai dengan arah terdekat yang diinginkan. Setelah arah rumah tercapai mikrokontroler mematikan driver untuk menghentikan motor DC. Proses berputarnya rumah akan terulang setiap pengguna memilih salah satu arah rumah pada pilihan pada PC.
Proses penghentian motor dilakukan dengan memberikan logika 0 pada masukan enable pada driver motor DC. Pemberian logika 0 ini, dilakukan melalui instruksi yang berada pada program mikrokontroler. Dengan kata lain bahwa penghentian motor DC dilakukan oleh mikrokontroler. Setelah itu mikrokontroler akan memberikan logika 0 juga pada masukan arah putar (in1 atau in2).
Sensor posisi reed switch terpasang mewakili kedelapan arah mata angin.
Sensor tersebut terpasang melingkar, dengan jarak tiap sensor adalah 45 0 . Untuk
pengamatan ketepatan arah rumah terhadap posisi yang semestinya, dilakukan
dengan membandingkan letak magnet terhadap letak sensor posisi reed switch
yang mewakili arah yang diinginkan. Letak sesuai dengan arah rumah (searah
dengan bagian depan dari rumah). Setelah dilakukan pengamatan dan
pengukuran, diketahui bahwa ketepatan rumah tergantung pada saat magnet
terdeteksi oleh sensor. Terdeteksinya magnet untuk tiap-tiap sensor berbeda-
beda. Bahkan untuk satu sensorpun saat terdeteksinya magnet tidak tentu untuk
setiap kali berputar. Sebagai contoh sensor posisi arah utara, pada salah satu
pengamatan motor DC berhenti dengan magnet berada tepat berada di atas sensor tersebut. Dan pada pengamatan lain, motor DC berhenti dengan magnet agak bergeser dari sensor sejauh 5 0 -10 0 (baik arah CW atau CCW). Begitu juga dengan sensor posisi yang lainnya. Untuk data-data pergeseran rumah dapat dilihat pada lampiran A. Toleransi kesalahan arah rumah terhadap arah yang seharusnya ditetapkan sebesar 22,5 0 . Jadi apabila perbedaan letak sensor posisi dan magnet tidak lebih dari 22,5 0 baik kearah negatif (belum sampai sensor) atau positif (melebihi sensor) dapat dikatakan telah mencapai arah yang diinginkan.
Untuk pengujian kenyamanan, dilakukan dengan menempatkan gelas berukuran sedang dengan berisi air hampir penuh di dalam rumah tersebut. Dan kemudian rumah diputar ke berbagai posisi. Air pada gelas saat rumah berputar tidak tumpah. Air akan tumpah apabila dengan secara tiba-tiba arah rumah berputar kearah sebaliknya. Tetapi karena satu masukan ke masukan lain dari PC ke pengendali membutuhkan waktu tertentu, hal tersebut dapat teratasi.
Rumah dapat berputar dengan beban maksimal yang telah diuji mencapai
berat 3 Kg. Dengan masukan tegangan yang di-drive ke motor DC sebesar 9 volt
mampu untuk mengatasi beban seberat itu. Bila beban mencapai berat diatas itu,
maka motor masih berputar dan rumah tidak akan berputar. Sedangkan belt akan
slip pada gear yang berfungsi untuk memutar motor karena reel belt dan gear
tidak tepat. Untuk pengujian kecepatan putar, dengan tegangan 9V yang di-drive
ke motor DC. Didapat bahwa untuk mencapai putaran sebesar 180 0
membutuhkan waktu 3,8 detik. Atau dapat dikatakan kecepatan (radian) putar
rumah tersebut adalah 47,5 0 /detik.
40
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil pembuatan alat dan pengujian yang dilakukan dibandingkan dengan perancangan yang dilakukan, dapat disimpulkan sebagai berikut:
1. Dengan menggunakan tegangan Vs pada driver motor DC sebesar 9 V dapat memutar rumah model dengan beban maksimal mencapai 3 Kg.
2. Sistem ini dapat menunjukkan ke delapan arah posisi kompas dengan baik, posisi default (utara) diatur terlebih dulu, dengan mempunyai pergeseran maksimal sebesar 10 0 pada arah yang dituju.
5.2 Saran
1. Penggunaan sensor kompas digital sebagai sensor posisi akan lebih mempermudah cara kerja dari sistem ini, sehingga tidak diperlukan pengaturan default arah utara terlebih dahulu.
2. Pemilihan bahan-bahan pembuat model rumah seharusnya lebih dipikirkan secara matang. Agar didapat model rumah yang dapat berputar secara maksimal.
3. Agar rumah dapat menampung berat yang lebih besar lagi,
penggunaan gear dan belt yang tepat perlu dilakukan.
Daftar Pustaka
[1] Eko, Agfianto, 2004, Belajar Mikrokontroller AT89C51/52/55, Gava Media, Yogyakarta
[2] Rachmad Setiawan, 2006, Mikrokontroler MCS-51, Penerbit Graha Ilmu, Yogyakarta
[3] Malvino, 1984, Prinsip-Prinsip Elektronika, Edisi ketiga Penerbit Erlangga, Jakarta
[4] http://www.atmel.com : Data sheet AT89S51
[5] http://alldatasheet.com : Data sheet MAX232
[6] http://alldatasheet.com : Data sheet L293D
[7] http://alldatasheet.com : Data sheet reed switch
[8] http://en.wikipedia.org/wiki/electric_motor
Posisi akhir Posisi awal
Pergeseran (dalam derajat)
utara timur laut 5
timur 5
tenggara 10
selatan 10
barat daya 0
barat 0
barat laut 5
timur laut utara 0
timur 0
tenggara 5
selatan 7
barat daya 0
barat 0
barat laut 0
timur utara 10
timur laut 0
tenggara 0
selatan 0
barat daya 0
barat 10
barat laut 10
tenggara utara 5
timur laut 5
timur 6
selatan 0
barat daya 0
barat 0
barat laut 0
selatan utara 10
timur laut 5
timur 10
tenggara 0
barat daya 0
barat 0
barat laut 10
barat daya utara 5
timur laut 5
timur 5
tenggara 5
selatan 0
barat 5
barat laut 0
barat utara 0
timur laut 5
timur 5
tenggara 5
selatan 0
timur laut 3
timur 5
tenggara 5
selatan 0
barat daya 0
barat 10
LAMPIRAN B
RANGKAIAN LENGKAP PENGENDALI PUTARAN ARAH RUMAH PADA PEMODELAN RUMAH PINTAR
+5V
+9v +5V
+5V
+5V P1
CONNECTOR DB9 5 9 4 8 3 7 2 6 1
+ C3
1uF
+
C5
1uF
U9
AT89S51
9 18 19 29
30
31 1 2 3 4 5 6 7 8 21
22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
4020
RST XTAL2 XTAL1 PSEN
ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8
P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
VccGND
+ C4 1uF
30pF
+ C2
1uF 1k
10k + C1
1uF
12MHz
10uF
30pF
SW1
12
MAX232 13
8 11 10 1 3 4 5 6 2
12 9 14 7
1516
R1IN R2IN T1IN T2IN C1+
C1- C2+
C2- V- V+
R1OUT R2OUT T1OUT T2OUT
GNDVcc
U8
L293D 2 7 10
9 1
14 11 6 3
15
8
4 512 1316
In1 In2 In3
En2 En1
Out4 Out3 Out2 Out1
In4
Vs
GND4 GND1
GND3 GND2Vss
M
- +
MOTOR DC
12
reed_utara
reed_timur
reed_selatan
reed_barat reed_barat
laut reed_barat daya reed_tenggara reed_timur laut