Perancangan Sistem Pengendalian Pintu Air Pada Bendungan Berbasis Mikrokontroler AT89S51 Dan PC

(1)

PERANCANGAN SISTEM PENGENDALIAN PINTU AIR PADA BENDUNGAN BERBASIS MIKROKONTROLER AT89S51 DAN PC

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

KIKI VALERY S. SIMAMORA NIM. 060801002

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2011


(2)

Judul : PERANCANGAN SISTEM PENGENDALIAN PINTU AIR PADA BENDUNGAN BERBASIS

MIKROKONTROLLER AT89S51 DAN PC

Kategori : SKRIPSI

Nama : KIKI VALERY S. SIMAMORA

Nomor Induk Mahasiswa : 060801002

Program Studi : SARJANA (S1) FISIKA

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM

(FMIPA) UNIVERSITAS SUMATERA UTARA

Diketahui/Disetujui oleh Departemen Fisika FMIPA USU

Ketua, Pembimbing,

Dr. Marhaposan Situmorang Dr. Bisman P M.Eng.Sc


(3)

PERNYATAAN

PERANCANGAN SISTEM PENGENDALIAN PINTU AIR PADA BENDUNGAN BERBASIS MIKROKONTROLLER AT89S51 DAN PC

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing- masing disebutkan sumbernya

Medan, ... Maret 2011

KIKI VALERY S. SIMAMORA 060801002


(4)

PENGHARGAAN

Puji dan syukur saya panjatkan kehadirat Tuhan Yesus Kristus yang telah

memberikan kasihNya yang luar biasa, sehingga saya bisa menyelesaikan skripsi ini dengan baik.

Tidak lupa juga saya mengucapkan terima kasih kepada Dr. Bisman Perangin-angin M.Eng.Sc yang telah membimbing dan mengarahkan saya dalam penyelesaian skripsi ini. Ucapan terima kasih juga saya berikan kepada Ketua Departemen DR. Marhaposan Situmorang, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua Dosen dan Seluruh Staf pada Departeman Fisika.

Dan juga terima kasih secara khusus untuk kedua orangtuaku, S.P Simamora, dan H.L.Tobing, abangku Daniel dan Valentino, adikku Thalia serta kakak iparku Ellen yang selama ini telah memberikan semangat dan motivasi dan kasih sayang selama

penyelesaian skripsi ini. Untuk teman seperjuanganku, Rini, Osma, Yanti, Elfrida, Elisda, Gina, Mardiah, Leo dan juga teman-teman stanbuk 2006, juga abang Brian, Victor dan Yudhi yang telah memberikan ide, dukungan, dan solusi.

Akhirnya terima kasih secara istimewa untuk Hendra Manik yang dengan tulus dan setia memberikan semangat, motivasi, dukungan dan sayangnya sehingga saya lebih bersemangat dalam menyelesaikan skripsi ini. Banyak nama yang tak dapat disebutkan secara keseluruhan, tapi biarlah Kasih Tuhan yang selalu melingkupi kita semua. Tuhan Yesus Memberkati.


(5)

ABSTRAK

Telah dirancang sebuah alat yang dapat mendeteksi ketinggian air serta mengendalikan pintu air pada sebuah bendungan. Pengendalian pintu air ini dilakukan berdasarkan level ketinggian air. Dalam perancangan ini digunakan 8 (delapan) level untuk melihat level ketinggian air tersebut. Untuk dapat mendeteksi ketinggian air, maka digunakan sensor yang terdiri dari dua lempeng besi, dimana salah satu lempeng dihubungkan ke transistor. Transistor disini digunakan sebagai pengkondisi sinyal, dengan menggunakan prinsip transistor sebagai saklar, maka sensor dapat memberikan sinyal yang siap diolah pada mikrokontroller. Hasil output dari sensor inilah yang akan dibandingkan pada

mikrokontroller agar dapat dikendalikan pada PC. Agar mikrokontroller dan PC dapat berkomunikasi maka digunakan sebuah penghubung komunikasi serial yaitu RS 232. Untuk dapat membuka dan menutup pintu air sesuai dengan level yang diharapkan maka digunakan motor stepper. Sehingga pintu dapat bergerak membuka dan menutup sesuai perintah yang diberikan.

ABSTRACT

Was design an instrument for detects water level and water control gates at a dam. Control gate is performed based on the level of water level. This design used 8 (eight) level to see the water level height. To be able to detect the water level, used sensor which consist of two metal plates where one plate is connected to the transistor. Transistor are used a signal conditioner by using the principle of transistor as switches. The sensor can provide a ready signal is processed in the microcontroller AT89S51. The output of this sensor be compared to the microcontroller and PC can communicate then use a serial communication link, that is RS 232 to be able to open and close the water gates in accordonce with the expected level then used stepper motors,so the door can move open and close according to the command given.


(6)

DAFTAR ISI

Halaman

Persetujuan i

Pernyataan ii

Penghargaan iii

Abstrak iv

Abstract v

Daftar Isi vi

Daftar Tabel viii

Daftar Gambar ix

Bab 1 Pendahuluan 1

1.1 Latar Belakang Masalah 2

1.2 Tujuan Penelitian 3

1.3 Batasan Masalah 3

1.4 Manfaat Penelitian 3

1.5 Sistematika Penulisan 4

Bab 2 Landasan Teori 5

2.1 Bendungan 5

2.1.1 Pengertian Bendungan 5

2.1.2 Fungsi Bendungan 6

2.2 Transistor 7

2.3 Transitor NPN sebagai saklar 7

2.3.1 Transistor Saklar Tertutup 9

2..3.2 Transistor Saklar Terbuka 9

2.3.3 Perhitungan Transistor Sebagai Saklar 10

2.4 Mikrokontroller AT89S51 11

2.4.1 Konstruksi Mikrokontroller AT89S51 11

2.4.2 Instruksi MCS 51 14

2.4.3 Register Fungsi Khusus 18

2.5 Interfacing 20

2.5.1 Serial Port DB 9 20

2.5.2 Komunikasi Serial Pada Mikrokntroller AT89S51 21

2.5.3 Baud Rate Serial Pada Mikrokontroller AT89S51 23

2.5.4 RS 232 26

2.5.5 IC MAX 232 28

2.6 Microsoft Visual Basic 6.0 29

2.7 Motor Langkah (Stepper) 32

Bab 3 Perancangan Alat dan Program 37

3.1 Diagram Blok Rangkaian 37

3.2 Fungsi Sistem Mekanik 38


(7)

3.4 Rangkaian Pengkondisi Sinyal 40

3.5 Rangkaian Konverter RS 232 41

3.6 Rangkaian Mikrokontroller AT89S51 42

3.7 Rangkaian Driver Motor Stepper 43

3.8 Rangkaian Lengkap 44

Bab 4 Pengujian Sistem dan Analisa Program 47

4.1 Pengujian Sistem Hardware 47

4.1.1 Pengujian Rangkaian Mikrokontroller AT89S51 47

4.1.2 Pengujian Rangkaian Sensor 49

4.1.3 Pengujian Motor Stepper 50

4.2 Pengujian Software 53

4.2.1 Analisa Program Pada PC menggunakan Visual Basic 6.0 53

Bab 5 Kesimpulan dan Saran 59

5.1 Kesimpulan 59


(8)

DAFTAR TABEL

Halaman

Tabel 2.1 Instruksi Aritmatika 14

Tabel 2.2 Data Transfer 16

Tabel 2.3 Percabangan Program 17

Tabel 2.4 Mode Serial vs Baud Rate 25

Tabel 2.5 Penentuan nilai TH1 pada Pembangkit Baud Rate 25

Tabel 2.6 Pin Pada DB 9 27

Tabel 2.7 Arah Perputaran Motor 36


(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Bendungan Pada PLTA Tangga Siguragura 7

Gambar 2.2 Kurva Karakteristik dan Garis Beban Transistor 8

Gambar 2.3 Transistor Saklar Tertutup 9

Gambar 2.4 Transistor Saklar Terbuka 9

Gambar 2.5 Susunan Pin Pada Mikrokontroller AT89S5112

Gambar 2.6 Diagram Blok Port Serial 22

Gambar 2.7 Komunikasi sinkron dan Komunikasi Asinkron 23

Gambar 2.8 Konfigurasi Pin DB 9 26

Gambar 2.9 Bentuk Fisik IC MAX 232 28

Gambar 2.10 Tampilan Visual Basic 6.0 29

Gambar 2.11 Window Property 30

Gambar 2.12 Window Form 31

Gambar 2.13 Window Project 31

Gambar 2.14 Tool Bar 32

Gambar 2.15 Konstruksi Motor Stepper Bipolar 33

Gambar 2.16 Konstruksi Motor Stepper Unipolar 33

Gambar 3.1 Diagram Blok Rangkaian 37

Gambar 3.2 RancanganTampak Dari Samping 38

Gambar 3.3 Lempeng Tembaga Sebagai Pendeteksi Ketinggian Air 39

Gambar 3.4 Rangkaian Sensor Sebagai Saklar Otomatis 41

Gambar 3.5 Rangkaian Konverter Level RS 232 42

Gambar 3.6 Sistem Minimum Mikrokontroller AT89S51 43

Gambar 3.7 Driver Motor Stepper 44

Gambar 3.8 Rangkaian Lengkap 46

Gambar 4.1 Rangkaian Mikrokontroller AT89S51 46

Gambar 4.2 Rangkaian Sensor 49


(10)

ABSTRAK

Telah dirancang sebuah alat yang dapat mendeteksi ketinggian air serta mengendalikan pintu air pada sebuah bendungan. Pengendalian pintu air ini dilakukan berdasarkan level ketinggian air. Dalam perancangan ini digunakan 8 (delapan) level untuk melihat level ketinggian air tersebut. Untuk dapat mendeteksi ketinggian air, maka digunakan sensor yang terdiri dari dua lempeng besi, dimana salah satu lempeng dihubungkan ke transistor. Transistor disini digunakan sebagai pengkondisi sinyal, dengan menggunakan prinsip transistor sebagai saklar, maka sensor dapat memberikan sinyal yang siap diolah pada mikrokontroller. Hasil output dari sensor inilah yang akan dibandingkan pada

mikrokontroller agar dapat dikendalikan pada PC. Agar mikrokontroller dan PC dapat berkomunikasi maka digunakan sebuah penghubung komunikasi serial yaitu RS 232. Untuk dapat membuka dan menutup pintu air sesuai dengan level yang diharapkan maka digunakan motor stepper. Sehingga pintu dapat bergerak membuka dan menutup sesuai perintah yang diberikan.

ABSTRACT

Was design an instrument for detects water level and water control gates at a dam. Control gate is performed based on the level of water level. This design used 8 (eight) level to see the water level height. To be able to detect the water level, used sensor which consist of two metal plates where one plate is connected to the transistor. Transistor are used a signal conditioner by using the principle of transistor as switches. The sensor can provide a ready signal is processed in the microcontroller AT89S51. The output of this sensor be compared to the microcontroller and PC can communicate then use a serial communication link, that is RS 232 to be able to open and close the water gates in accordonce with the expected level then used stepper motors,so the door can move open and close according to the command given.


(11)

BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Bendungan adalah konstruksi yang dibangun untuk menahan laju air menjadi waduk, danau, atau tempat rekreasi. Sering kali bendungan juga digunakan untuk mengalirkan air ke sebuah pembangkit listrik tenaga air. Salah satu fungsi bendungan adalah untuk menstabilkan aliran air pada bidang pertanian atau sering juga disebut irigasi. Disamping itu dapat juga digunakan sebagai pengendalian banjir dan reklamasi (digunakan untuk mencegah masuknya air ke suatu daerah yang seharusnya dapat tenggelam).

Selama ini pada bendungan- bendungan yang ada, pintu air digunakan untuk mengatur ketinggian air dalam bendungan masih digunakan cara manual untuk menjaga supaya air dalam bendungan tetap stabil atau air tidak kurang dan tidak melebihi batas yang sudah ada. Oleh karena itu, petugas penjaga pintu air harus siap siaga setiap saat. Tapi sangat tidak mungkin petugas itu setiap saat ada untuk menjaga pintu air. Oleh karena itu, penulis akan merancang sebuah sistem yang dapat mengendalikan pintu air pada bendungan. Sehingga dapat meringankan pekerjaan serta memudahkan dalam pengawasan terhadap ketinggian air yang berada pada bendungan tersebut. Alat ini sangat berguna sebagai pengganti kerja dari seorang operator dalam mengatur buka tutup pintu air, sehingga operator tersebut dapat mengendalikan pintu air tanpa harus bersiap siaga setiap saat dengan mengatur level ketinggian air yang stabil.

Alat ini akan setiap saat mengawasi dan menstabilkan ketinggian air pada bendungan. Pada perancangan alat ini digunakan sensor berupa saklar otomatis yang akan mendeteksi ketinggian air pada bendungan tersebut. Sensor ini terdiri dari dua lempeng besi dan sebuah transistor yang berfungsi sebagai saklar otomatis. Dua lempeng besi diletakkan pada air dengan ketinggian 1 cm dengan lempeng besi lainnya yang akan


(12)

berfungsi sebagai pendeteksi level ketinggian air. Setelah menghasilkan data digital, data digital inilah yang diolah pada mikrokontroller sebagai pembanding data yang akan dikirimkan ke PC sehingga kita dapat mengendalikan level ketinggian yang kita inginkan.

Dalam hal ini digunakan mikrokontroller AT89S51 dengan pertimbangan harga yang murah dan memiliki fitur dasar yang cukup lengkap untuk suatu pemrosesan input-output. Data yang dibaca oleh mikrokontroller kemudian digunakan untuk mengetahui ketinggian air pada rancangan bendungan tersebut. Setelah mengetahui ketinggian air, selanjutnya mikrokontroller akan mengirimkan sinyal kepada PC untuk menerima perintah yang akan diberikan oleh PC. Namun PC tersebut tidak dapat langsung menerima sinyal yang diberikan oleh mikrokontroller, maka diperlukan sebuah penghubung. Dalam hal ini digunakan IC MAX 232. Yang merupakan antarmuka antara PC dengan Mikrokontroller yang dilakukan secara serial. Apabila air melewati batas yang diharapkan, maka mikrokontroller akan memerintahkan pintu air agar membuka sehingga air pada bendungan akan berkurang. Demikian sebaliknya, apabila air kurang dari batas ketinggian yang diharapkan, maka mikrokontroller akan memerintahkan pintu air agar menutup sehingga air pada bendungan akan bertambah. Demikian seterusnya sehingga ketinggian air menjadi stabil atau berada pada level ketinggian yang diharapkan.

1.2 Tujuan Penelitian

Merancang suatu alat yang dapat mengendalikan pintu air pada bendungan secara otomatis serta dapat mengatur level ketinggian air sesuai dengan level yang ditentukan.


(13)

1.3 Batasan Masalah

Adapun batasan dari permasalahan yang akan di bahas dalam penelitian ini adalah:

1. Pada alat ini, sensor yang digunakan berupa dua lempeng besi.

2. Perancangan alat ini difokuskan untuk mengatur ketinggian air pada level yang telah ditentukan, dalam hal ini digunakan 8 (delapan) level yang akan mendeteksi ketinggian air.

3. Yang digunakan sebagai sistem kendali adalah Mikrokontroler AT89S51 dan PC. 4. Alat ini hanya mendeteksi ketinggian air, dan tidak menghitung volume air yang

berada dalam bendungan.

1.4 Manfaat Penelitian

Manfaat yang diharapkan dari penelitian ini adalah:

1. Alat pengendalian pintu air ini dapat digunakan secara otomatis dan dapat

mengendalikan pintu air dalam jarak yang jauh.

2. Pada bidang pertanian, diharapkan dapat mendukung sistem irigasi.

3. Sebagai informasi bagaimana dasar membangun sebuah instrumen yang mampu

mengendalikan level ketinggian air secara otomatis dengan menggunakan PC sebagai sistem utama.

4. Membantu dalam sistem irigasi, sehingga tidak bekerja lagi secara manual

melainkan secara otomatis.

1.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana perancangan sistem pengendalian pintu air pada bendungan, maka penulis menulis laporan ini dengan sistematika penulisan sebagai berikut:


(14)

BAB I. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II. LANDASAN TEORI

Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain tentang prinsip kerja sensor berupa transistor yang berfungsi sebagai saklat otomatis berbasis Mikrokontroller AT89S51 dan PC.

BAB III. PERANCANGAN ALAT DAN PROGRAM

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51 dan PC.

BAB IV. PENGUJIAN DAN PEMBAHASAN SISTEM

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktipkan rangkaian, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51 dan PC.

BAB V. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(15)

BAB II

LANDASAN TEORI

2.1 Bendungan

2.1.1 Pengertian Bendungan

Bendungan atau dam adalah konstruksi yang dibangun untuk menahan laju menjad kembali ke Inggris dan Belanda di abad pertengahan, seperti terlihat pada nama-nama dari banyak kota tua di sana. Pembangunan bendungan paling awal terjadi di

Mesopotamia dan Timur Tengah. Bendungan di Mesopotamia digunakan untuk mengontrol tingkat air dikarenakan pengaruh cuaca di sekitar sungai Eufrat dan Tigris yang bisa sangat tidak terduga.

Seringkali bendungan juga digunakan untuk mengalirkan air ke sebuah

Pembangkit Listrik Tenaga Air (PLTA). Bendungan Penadah Air Tangga (Tangga Intake Dam) yang terletak di Tangga dan berfungsi untuk membendung air yang telah dipakai PLTA Siguragura untuk dimanfaatkan kembali pada PLTA Tangga.

Gambar 2.1 Bendungan pada PLTA Tangga Siguragura

Bendungan ini merupakan bendungan busur pertama di Indonesia. Stasiun Pembangkit Tangga memiliki 4 unit Generator. Total kapasitas tetap dari keempat generator tersebut adalah 223 MW. Tipe bendungan ini adalah beton massa berbentuk busur dengan ketinggian 82 meter.

2.1.2 Fungsi Bendungan

Tujuan dari pembangunan bendungan dimaksud mencakup penyediaan air untuk irigasi pertanian ataupun pasokan air untuk kebutuhan kota, meningkatkan kualitas


(16)

navigasi, menciptakan penampungan air untuk memasok kebutuhan air bagi industri, menghasilkan listrik tenaga air, menciptakan area rekreasi, wilayah bagi perikanan, habitat untuk ikan dan binatang liar, menahan aliran air di musim hujan untuk mengurangi risiko banjir di hilir, ataupun untuk mencegah aliran limbah dari pabrik ataupun pertambangan untuk mengalir ke sungai. Kebanyakan dam juga memiliki bagian yang disebut pintu air untuk membuang air yang tidak diinginkan secara bertahap atau berkelanjutan.

Beberapa bendungan dapat juga berfungsi sebagai jembatan bagi pejalan kaki ataupun kendaraan di seberang sungai. Ketika penggunaan bendungan dikombinasikan dengan sumber tenaga yang sifatnya sebentar-sebentar (intermittent power source) seperti angin atau matahari, waduk dapat berfungsi sebagai tempat penyimpanan air terpompa untuk memfasilitasi pengurangan beban dasar dari jaringan tenaga listrik. Beberapa bendungan melayani semua tujuan ini tetapi beberapa bendungan serbaguna melayani lebih dari satu tujuan. Berikut adalah fungsi bendungan secara umum:

1. Sebagai Pembangkit: Listrik tenaga air adalah sumber utama listrik di dunia. banyak negara memiliki sungai dengan aliran air yang memadai, yang dapat dibendung.

2. Untuk Menstabilkan aliran air / irigasi: Bendungan sering digunakan untuk mengontrol dan menstabilkan aliran air, untuk pertanian tujuan dan irigasi. Mereka dapat membantu menstabilkan atau mengembalikan tingkat air danau dan laut pedalaman. Mereka menyimpan air untuk minum dan kebutuhan manusia secara langsung

3. Untuk Pencegahan banjir: Bendungan diciptakan untuk pengendalian banjir 4. Untuk Reklamasi: Bendungan (sering disebut tanggul-tanggul atau tanggul)

digunakan untuk mencegah masuknya air ke suatu daerah yang seharusnya dapat tenggelam, sehingga para reklamasi untuk digunakan oleh manusia 5. Untuk Air pengalihan: Bendungan yang digunakan untuk tujuan hiburan

2.2 Transistor

Transistor merupakan alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung (switching) dan dapat juga sebagai stabilisasi tegangan. Pada umumnya transistor memiliki 3 terminal dasar, yaitu basis, kolektor dan emitor. Transistor merupakan salah satu jenis komponen aktif yang banyak digunakan, baik dalam rangkaian analog, maupun digital. Transistor yang paling banyak digunakan adalah transistor bipolar. Dinamakan bipolar karena kanal konduksi utamanya menggunakan dua polaritas pembawa muatan yaitu elektron dan lubang, untuk membawa arus listrik.


(17)

Transistor bipolar terdiri dari dua jenis, yaitu tipe NPN dan PNP dan pada perancangan alat pengendalian pintu air ini digunakan transistor bipolar tipe NPN.

2.3 Transistor NPN Sebagai Saklar

Pada penggunaan transistor sebagai switching tegangan nol volt pada Vbe transistor jenis NPN berarti mengaktipkan transistor tersebut sebagai saklar dengan keadaan terbuka, sedangkan memberi tegangan ≥ 0,7 volt untuk transistor silikon dan ≥ 0,3 volt untuk transistor germanium pada Vbe transistor akan memfungsikan transistor itu sebagai saklar dengan keadaan tertutup (Gambar 2.3). Transistor dapat juga difungsikan sebagai saklar dengan mengatur arus basis Ib sehingga transistor dalam keadaan jenuh (saturasi) atau keadaan mati (cut-off).

Gambar 2.2 Kurva Karakteristik dan Garis Beban Transistor

Daerah aktif

Transitor dapat bekerja pada daerah aktif jika transistor mendapat arus basis (IB) > 0. Tetapi jika lebih kecil dari arus basis maksimalnya, keluaran arus kolektor akan berubah-ubah sesuai dengan perubahan pemberian arus basisnya.

Daerah jenuh (Saturasi)

Transistor dapat bekerja pada daerah jenuh jika transistor mendapat arus basis (IB) lebih besar dari arus basis maksimalnya. Hal ini menimbulkan keluaran arus kolektor tidak dapat bertambah lagi.

Daerah mati (Cut Off)

Daerah mati merupakan daerah kerja saat transistor mendapat bias arus basis (IB) = 0, maka arus kolektor dengan basis terbuka menjadi arus bocor dari basis ke emitor (ICEO). Hal yang sama dapat terjadi pada transistor hubungan kolektor-basis. Jika arus emitor sangat kecil (IE = 0), emitor dalam keadaan terbuka dan arus mengalir dari kolektor ke basis (ICBO).


(18)

2.3.1 Transistor Saklar Tertutup

Dengan mengatur Ib > Ic / β kondisi transistor akan menjadi jenuh seakan

kolektor dan emitor terhubung (short circuit). Arus mengalir dari kolektor ke emitor tanpa hambatan dan Vce ≈ 0. Besar arus yang mengalir dari kolektor ke emitor sama dengan Vcc/Rc. Keadaan seperti ini menyerupai saklar dalam kondisi tertutup (On). Berikut adalah gambaran transistor dalam kondisi jenuh ekivalen dengan saklar tertutup:

NPN Rc

Rb Vs

Ic

VCE = 0 Ib

Rc

V = 0

Tertutup

C

E

C

E

Vcc Vcc

Gambar 2.3 Transistor Saklar Tertutup 2.3.2 Transistor Saklar Terbuka

Dengan mengatur Ib = 0 atau tidak memberi tegangan pada bias basis atau basis diberi tegangan mundur terhadap emitor maka transistor akan dalam kondisi mati (cut-off), sehingga tak ada arus mengalir dari kolektor ke emitor ( Ic ≈ 0 ) dan Vce ≈ Vcc. Keadaan ini menyerupai saklar pada kondisi terbuka (off). Berikut adalah gambaran transistor dalam kondisi mati ekivalen dengan saklar terbuka:

NPN Rc

Rb Vs

Ic = 0

VCE = VCC

Ib = 0

Rc

V = VCC

Terbuka

C

E

C

E

Vcc Vcc

Gambar 2.4 Transistor Saklar Tertutup 2.3.3 Perhitungan Transistor Sebagai Saklar

Perhitungan secara teori untuk menentuka sebagai berikut:


(19)

Kondisi Jenuh atau Saturasi

Vce = Vcc – Ic . Rc……….. (2.1) Karena kondisi jenuh Vce = 0V (keadaan ideal), maka:

Ic = Vcc / Rc……… (2.2)

Menentukan tahanan basis Rb untuk memperoleh arus basis pada keadaan jenuh adalah:

Rb = (Vi – Vbe) / Ib jenuh Sehingga besar arus basis Ib jenuh:

Ib jenuh > Ic / β

Kondisi Mati atau Cutt Off

Vce = Vcc – Ic . Rc…... (2.3) Karena kondisi mati Ic = 0 (kondisi Ideal) maka:

Vce = Vcc – 0 . R c

Vce = Vcc……….. (2.4) Besar arus basis Ib:

Ib = Ic / β Ib = 0/β = 0

2.4 Mikrokontroller AT89S51

Dalam merancang aplikasi elektronika digital dibutuhkan sebuah alat/komponen yang dapat menghitung, mengingat, dan mengambil pilihan dan digunakan sebagai otaknya. Kemampuan ini dimiliki oleh sebuah komputer, namun tidaklah efisien jika harus menggunakan komputer hanya untuk keperluan tersebut. Untuk itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler sebenarnya adalah

pengembangan dari mikroprosesor, namun dirancang khusus untuk keperluan

instrumentasi sederhana. Mikrokontroler seri MCS-51 termasuk sederhana, murah dan mudah didapat dipasaran. Salah satu mikrokontroler seri MCS-51 adalah mikrokontroler AT89S51.


(20)

2.4.1 Konstruksi Mikrokontroller AT89S51

Mikrokontroler AT89S51 adalah mikrokontroler keluaran ATMEL.Inc.

Mikrokontroler ini kompatibel dengan keluaran mikrokontroler 80C51. Mikrokontroller AT89S51 terdiri dari 40 pin dan sudah memiliki memory flash didalamnya, sehingga sangat praktis untuk digunakan. Beberapa kemampuan (fitur) yang dimiliki adalah sebagai berikut :

• Memiliki 4K Flash EPROM yang digunakan untuk menyimpan program.

Flash EPROM(Erasable Programmable Read Only Memory) dapat ditulis dan dihapus sebanyak 1000 kali (menurut manual).

• Memiliki internal RAM 128 byte.

RAM (Random Access Memory), suatu memori yang datanya akan hilang bila catu padam, diakses secara random, tidak sekuensial, artinya dialamat mana saja dapat dicapai secara langsung dengan cepat.

4 buah 8-bit I/O (Input/Output) port

Port ini berfungsi sebagai terminal input dan output. Selain itu, dapat digunakan

sebagai terminal komunikasi paralel, serta komunikasi serial (pin10 dan 11).

• Dua buah timer/counter 16 bit.

• Tegangan operasi dinamis dari 2,7 volt hingga 6 volt.

• Operasi clock dari 0 hingga 24 MHz

• Program bisa diproteksi, sehingga tidak dapat dibaca oleh orang lain.

• Menangani 6 sumber interupsi.

Ada kemampuan Idle mode dan Down mode

Berikut adalah gambar susunan pin pada Mikrokontroller AT89S51:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/ VPP ALE / PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (A8) P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST (RXD) P3.0 (TXD) P3.1 (INT 0) P3.2 (INT 1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL 2 XTAL 1 GND A T 89S 51


(21)

Gambar 2.5 Susunan Pin pada Mikrokontroller AT89S51

Keterangan fungsi-fungsi masing-masing pin adalah sebagai berikut :

Pin 40 Vcc, Masukan catu daya +5 volt DC

Pin 20 Gnd, Masukan catu daya 0 volt DC

Pin 32-39 P0.0-P0.7, Port input/output delapan bit dua arah yang juga dapat berfungsi sebagai bus data dan bus alamat bila mikrokontroler menggunakan memori luar (eksternal).

Pin 1-8 P1.0-P1.7, Port input/output dua arah delapan bit dengan internal pull up.

Pin 10-17 P3.0-P3.7Port input/output delapan bit dua arah, selain itu Port 3 juga memiliki alternativef fungsi sebagai :

RXD (pin 10) Port komunikasi input serial TXD (pin 11) Port komuikasi output serial

INT0 (pin 12) Saluran Interupsi eksternal 0 (aktif rendah) INT1 (pin 13) Saluran Interupsi eksternal 1 (aktif rendah) T0 (pin 14) Input Timer 0

T1 (pin 15) Input Timer 1

WR (pin 16) Berfungsi sebagai sinyal kendali tulis, saat prosesor akan menulis data ke memori I/O luar. RD (pin 17) Berfungsi sebagai sinyal kendali baca, saat

prosesor akan membaca data dari memori I/O luar.

Pin 9 RESET, Pin yang berfungsi untuk mereset mikrokontroller

AT89S51 ke keadaan awal.

Pin 30 ALE (Address Latch Enable), berfungsi menahan sementara

alamat byte rendah pada proses pengalamatan ke memori eksternal. Pin 29 PSEN (Program Store Enable), Sinyal pengontrol yang berfungsi

untuk membaca program dari memori eksternal.

Pin 31 EA, Pin untuk pilihan program, menggunakan program internal

atau eksternal. Bila ‘0’, maka digunakan program eksternal. Pin 19 X1, Masukan ke rangkaian osilator internal. Sumber osilator

eksternal atau quartz crystal kristal dapat digunakan.

Pin 18 X2, Masukan ke rangkaian osilator internal, koneksi quartz crystal atau tidak dikoneksikan apabila digunakan eksternal osilator.

2.4.2 Instruksi MCS-51

Pengalamatan adalah pengelompokkan berdasarkan orientasi lokasi memori, tipe-tipe instruksi adalah pengelompokkan berdasarkan fungsi instruksi. Beberapa fungsi pada instruksi MCS-51 yang akan digunakan yaitu Aritmatika, Transfer data,dll. Pada


(22)

table-tabel perlu dijelaskan arti dari simbol-simbol yang digunakan pada mnemonics sebagai berikut :

Rn Register serbaguna R0 sd R7 di register bank yang diseleksi oleh PSW.

Direct 8 bit alamat internal RAM (0-127) atau SFR (128-255)

@Rn lokasi internal RAM yang alamatnya ditunjukkan oleh R0 atau R1 (pengalamatan tak langsung dengan R0 sd R7). Perhatikan; tidak untuk R2, R3, R4, R5, R6, dan R7

#Data konstanta 8 bit

#Data 16 konstanta 16 bit

Addrl1 alamat 11 bit (untuk akses memori hingga 2K)

Addr16 alamat 16 bit (untuk akses memori hingga 64K)

Rel 8 bit offset relative bertanda (2’S complement), digunakan untuk SJMP, lompat dalam jangkauan 128 (mundur) hingga +127 (maju) Instruksi-instruksi diperlihatkan disajikan pada table 2.5, yang menunjukkan ragam pengalamatan yang dapat digunakan dengan masing-masing instruksi.

Tabel 2.1 Instruksi Aritmatika

Mnemonic Diskripsi

ADD A, <source> A=A+<source ADDC A, <source> A=A+<source>+C SUBB A, <source> A=A-<source>-C

INC A A=A+1

INC <source> <source>=<source>+1

DEC A A=A-1

DEC <source> <source>=<source>-1

INC DPTR DPTR=DPTR+1

MUL AB AB = A X B

DIV AB A = Hasil A/B; B = sisa A/B

DA A Decimal Adjust

Source (sumber) adalah operand dengan ragam pengalamatan; register direct, indirect atau immediate. Contoh program penjumlahan pada ragam pengalamatan untuk instruksi aritmatika seperti berikut ini :

ADD A, 7FH ;a diisi dengan a+isi dri memori lokasi 7FH ;(pengalamatan langsung)


(23)

ADD A, @R1 ;a diisi dengan a+isi dari memori yang alamatnya ;

disimpan di R1 (pengalamatan tak langsung)

ADD A, R7 ;a diisi dengan a+isi dari R7

ADD A, #127 ;a diisi dengan a+127 (pengalamatan segera)

Untuk penggunaan kristal 12 MHz, kebanyakan instruksi aritmatik dieksekusi dalam 1 µs kecuali instruksi INC DPTR yang memerlukan waktu 2 µs dan instruksi-instruksi perkalian dan pembagian yang memerlukan waktu 4 µs.

Data didalam memori internal dapat dinaikkan atau diturunkan (increment atau decrement), tanpa melalui akumulator , demikian juga pada DPTR yang digunakan untuk menghasilkan pengalamatan 16 bit di memori eksternal. Instruksi MUL AB mengalikan dengan data yang ada pada register B dan meletakkan hasil 16 bit ke dalam register A dan B. Register A berisi lo-byte dan register B berisi hi-byte. Bila hasilnya lebih besar dari 255 (0FFh), maka bit OV set, sedangkan bit C selalu akan diclearkan (‘0’). Instruksi DIV AB membagi isi akumulator dengan data dalam register B dan meletakkan hasil bagi (quotient) 8 bit dalam akumulator, dan sisanya (remainder) 8 bit dalam register B. Operasi DIV akan membuat bit-bit CY dan OV menjadi ‘0’.

MOV adalah proses move (pindahkan) data dari sumber ke tujuan yang

sebenarnya adalah proses mengcopy, artinya data di sumber tidak berubah. Proses data transfer yang lain adalah PUSH dan POP, XCH dan XCHD seperti yang diperlihatkan pada tabel 2.6.

Tabel 2.2 Data Transfer

Mnemonic ARTI

MOV <dest>,<source> <dest>=<source>, memori int

MOV DPTR,#data 16 Dptr = data16

MOVC A,@A+<base-reg>

A = isi dilokasi A+<base-reg> MOVX <dest>,<source> <dest>=<source>,data mem

PUSH direct Simpan data ke memori stack

POP direct Ambil data dari memori stack

MOV<dest>,<source> adalah copy data dari source ke destination, atau sumber ke tujuan, semua memori internal dan SFR dapat berlaku sebagai source dan sebagian besar dapat berlaku sebagai destination. Ragam pengalamatan dari kedua operand bisa semua kombinasi, berikut contoh proses transfer data.

;keadaan awal isi RAM dengan alamat 30h adalah ;40h, lokasi 40h berisi 10h, P1 berisi 11001010b Mov R0,#30h ;R0 berisi 30h

Mov A,@R0 ;A berisi 40h


(24)

Mov B,@R1 ;B berisi 10h

Mov @R1,P1 ;RAM lokasi 40h berisi 11001010b

Mov P2,P1 ;P2=P1=11001010b

Program asembler bersifat sekuensial, seperti pada program basic klasik(awal mula basic), dan biasanya diperlukan pencabangan untuk tujuan tertentu, yaitu lompat ke lokasi instruksi dengan alamat tertentu. Pencabangan ini terdiri dari: pelaksanaan

subrutin, pencabangan tanpa syarat dan bersyarat. Subrutin adalah penggal program yang sering digunakan, tanpa harus menulis ulang perintahnya. Proses ACALL dan LCALL menggunakan memori stack untuk menyimpan data-data alamat yang ditinggalkan sebelum melaksanakan subrutin, agar apabila kembali melaksanakan subrutin, mikrokontroller ingat lokasinya kembali. Berikut tabel pencabangan program.

Tabel 2.3 Pencabangan Program

Mnemonic ARTI

ACALL addr11 <dest>=<source>, memori int

LCALL addr16 Dptr = data16

RET A = isi dilokasi A+<base-reg>

SJMP rel Lompat maju atau mundur sejauh rel

JMP @A+DPTR Lompat ke alamat a+dptr

CJNE

<dest-byte>,<scr-byte>,rel Bila <dest>#<source> lompat sejauh rel

CJNE A,#data,rel Bila A#data lompat sejauh rel

DJNZ direct, rel Direct= direct-1,bila #0 lompat sejauh

rel

NOP No Operation, tidak ada operasi

Pencabangan bersyarat adalah lompat ke alamat tertentu bila persyaratan

terpenuhi. Secara umum perintahnya adalah : CJNE <dest-byte>,<src-byte>, rel; artinya Compare destination byte dan source byte, Jump if Not Equal along rel(active). Source byte adalah A, yang dibandingkan dengan destination byte berupa direct memory atau immediate constant. Source dapat juga berupa direct Rn atau indirect @Rn yang dibandingkan dengan immediate constant.

START :

CJNE A,#040h, LABEL1 ;bandingkan dengan 40h, jika tak ;sama lompat ke LABEL1

CJNE A,P1,LABEL1 ;bandingkan a dengan P1, jika tak

;sama lompat ke LABEL1

CJNE R1,#040h,LABEL1 ;bandingkan R1 dengan 40h, jika ;tak sama lompat ke LABEL1


(25)

CJNE @R1,#0CCh,LABEL1 ;bandingkan indirect R1 dengan ;CCh,jika tak sama lompat ke ;LABEL1

LABEL1: --- ---

Instruksi DJNZ direct, rel, adalah : Decrement Jump if Not Zero, artinya kurangi satu dahulu data di direct, kemudian bila isinya nol, maka lomatlah ke rel. Biasanya instruksi ini digunakan untuk pencacah. Berikut contoh penggunaan instruksi tersebut ;

START :

Mov R0,#5 ;isi R0 dengan 5

Mov R1,#40h ;isi R1 dengan 40h

LOOP:

Mov @R1,#0AAh ;isi memori di <R1> dengan AAh

Inc R1 ;R1=R1+1

DJNZ R0,LOOP ;R0=R0-1, jika belum 0 kembali ke LOOP

Sjmp $ :usai

Perintah diatas adalah mengisi memori lokasi 40h,41h,42h,43h dan 44h dengan data AAh, disini R0 digunakan sebagai pencacah sebanyak 5 kali, sedangkan R1 digunakan sebagai pointer memori dengan alamat awal 40h. Perintah SJMP $ memerintahkan mikrokontroller untuk melompat ke tempat yang sama, artinya looping ditempat.

Instruksi NOP adalah tidak memerintahkan MCU mengerjakan apa-apa, proses ini hanya menunda kerja mikrokontroller, karena satu instruksi NOP memakan 1 mikrodetik, sehingga beberapa perintah NOP bisa digunakan untuk proses penundaan atau delay.

2.4.3 Register Fungsi Khusus ( Special Function Register )

Tidak semua alamat pada SFR digunakan, alamat-alamat yang tidak digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada alamat-alamat yang tidak terpakai tersebut akan menghasilkan data acak dan penulisannya tidak menimbulkan efek sama sekali. Pengguna perangkat lunak sebaiknya jangan menuliskan ‘1’ pada lokasi-lokasi ‘tak bertuan’ tersebut, karena dapat digunakan untuk mikrokontroler

generasi selanjutnya. Dengan demikian, nilai-nilai reset atau non-aktif dari bit-bit baru ini akan selalu ‘0’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:

Akumulator

Acc atau akumulator yang menempati lokasi E0h digunakan sebagai register untuk penyimpanan data sementara, dalam program, instruksi mengacunya sebagai register A.


(26)

Register B

Register B (lokasi F0h) digunakan selama operasi perkalian dan pembagian, untuk instruksi lain dapat diperlakukan sebagai register scratch pad (“papan coret-coret”) lainnya.

Program Status Word (PSW)

Register PSW (lokasi D0h) mengandung informasi status program.

Stack Pointer

Register SP atau Stack Pointer (lokasi 81h) merupakan register dengan panjang 8-bit, digunakan dalam proses simpan menggunakan instruksi PUSH dan CALL. Walau Stack bisa menempati lokasi dimana saja dalam RAM, register SP akan selalu diinisialisasi ke 07h setelah adanya reset, hal ini menyebabkan stack berawal di lokasi 08h.

Data Pointer

Register Data Pointer atau DPTR mengandung DPTR untuk byte tinggi (DPH) dan byte rendah (DPL) yang masing-masing berada dilokasi 83h dan 82h,

bersama-sama membentuk register yang mampu menyimpan alamat 16-bit. Dapat dimanipulasi sebagai register 16-bit atau ditulis dari/ke port, untuk masing-masing Port 0,Port 1, Port2 dan Port 3.

Serial Data Buffer

SBUF atau Serial Data Buffer (lokasi 99h) sebenarnya terdiri dari dua register yang terpisah, yaitu register penyangga pengirim (transmit buffer) dan penyangga penerima (receive buffer). Pada saat data disalin ke SBUF, maka data

sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.

Time Register

Pasangan register (TH0, TL0) dilokasi 8Ch dan 8Ah,(TH1, TL1) dilokasi 8Dh dan 8Bh serta (TH2, TL2) dilokasi CDh dan CCH merupakan register-register pencacah 16-bit untuk masing-masing Timer 0, Timer 1 dan Timer 2.

Capture Register

Pasangan register (RCAP2H, RCAP21) yang menempati lokasi CBh dan CAh merupakan register capture untuk mode Timer 2 capture. Pada mode ini, sebagai tanggapan terjadinya suatu transisi sinyal di kaki (pin) T2EX (pada AT89C52/55), TH2 dan TL2 disalin masing-masing ke RCAP2H dan RCAP2L. Timer 2 juga


(27)

memiliki mode isi-ulang-otomatis 16-bit dan RCAP2H serta RCAP2L digunakan untuk menyimpan nilai isi-ulang tersebut.

Kontrol Register

Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCON berisi bit-bit kontrol dan status untuk sistem interupsi, pencacah/pewaktu dan port serial.

2.5 INTERFACING

Agar mikrokontroller dan PC dapat berkomunikasi maka dibutuhkan sebuah antarmuka yang dapat digunakan sebagai penghubungnya. Dalam perancangan alat ini digunakan metode parallel DB 25 dan metode serial DB 9. Dalam perancangan alat ini digunakan metode komunikasi serial DB 9.

2.5.1 Serial Port DB 9

Komunikasi serial adalah pengiriman data secara serial (data dikirim satu persatu secara berurutan), sehingga komunikasi serial jauh lebih lambat daripada komunikasi parallel. Serial port lebih sulit ditangani karena peralatan yang dihubungkan ke serial port harus berkomunikasi dengan menggunakan transmisi serial, sedang data yang ada pada computer diolah secara parallel. Oleh karena itu data dari dan ke serial port harus dikonversikan ke dan dari bentuk parallel untuk bias digunakan. Dengan menggunakan bantuan sebuah hardware.

Selain itu kelebihan dari komunikasi serial ialah pengiriman data dapat dilakukan lebih jauh disbanding pengiriman secara parallel, karena serial port mengirimkan logika “1” dengan kisaran tegangan -3 Volt hingga -25 Volt dan logika 0 dengan kisaran +3 Volt hingga +25 Volt sehingga kehilangan daya karena panjangnya kabel bukan masalah utama. Bandingkan dengan port parallel yang memiliki kemungkinan lebih besar kesalahan dalam hal pengiriman data karena port paralel menggunakan level TTL berkisar dari 0 Volt untuk logika “0” dan +5 Volt untuk logika “1”.

2.5.2 Komunikasi serial Pada Mikrokontroller AT89S51

Mikrokontroller 89S51 mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data serial secara Full Duplex sehingga Port Serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau data yang akan dikirimkan, 89S51 mempunyai sebuah register yaitu SBUF yang terletak pada alamat 99H di mana register ini berfungsi sebagai buffer sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua belum diterima secara penuh, maka data ini tidak akan hilang.


(28)

Pada kenyataannya register SBUF terdiri dari dua buah register yang memang menempati alamat yang sama yaitu 99H. Register tersebut adalah Transmit Buffer

Register yang bersifat write only (hanya dapat ditulis) dan Receive Buffer Register yang

bersifat read only (hanya dapat dibaca). Pada proses penerimaan data dari Port Serial, data yang masuk ke dalam Port Serial akan ditampung pada Receive Buffer Register terlebih dahulu dan diteruskan ke jalur bus internal pada saat pembacaan register SBUF sedangkan pada proses pengiriman data ke Port Serial, data yang dituliskan dari bus internal akan ditampung pada Transmit Buffer Register terlebih dahulu sebelum dikirim ke Port Serial.

SBUF Receive Buffer Register

(read only)

SHIFT REGISTER

SBUF Transmit Buffer Register

(write only)

Bus Internal 89s51 D

Clk RXD (P3.0) TXD

(P3.1)

Baud rate clok (receive) Baud rate clok

(transmit)

Gambar 2.6 Diagram blok port serial

Port Serial 89S51 dapat digunakan untuk komunikasi data secara sinkron maupun asinkron. Komunikasi data serial secara sinkron adalah merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi di mana sinyal clock tersebut akan tersulut pada setiap bit pengiriman data sedangkan komunikasi asinkron tidak

memerlukan sinyal clock sebagai sinkronisasi. Pengiriman data pada komunikasi serial 89S51 dilakukan mulai dari bit yang paling rendah (LSB) hingga bit yang paling tinggi (MSB).


(29)

Gambar 2.7 Komunikasi Sinkron dan Komunikasi Asinkron 2.5.3 Baud Rate Serial Pada Mikrokontroller AT89S51

Baud rate clok berkaitan erat dengan frekuensi kristal yang digunakan dan pada mode 1,2 dan 3 juga di tentukan oleh bit SMOD pada PCON register. Baud rate clok tiap mode ditentukan sebagia berikut

• Mode 0 adalah 1/12 frekuensi kristal

• Mode 2, untuk SMOD = 0 adalah 1/64 frekuensi kristal

• Mode 2, untuk SMOD =1 adalah 1/32 frekuensi kristal

• Mode 1 dan 3 untuk SMOD = 0 adalah 1/32 dari timer overflow

• Mode 1 dan 3 untuk SMOD = 1 adalah 1/16 dari timer overflow

PCON tidak dapat di akses secara bit, sehingga pengaturan bit SMOD dapat dilakukan dengan perintah dibawah ini, dalam hal ini SMOD di clearkan MOV A, PCON ; ambil nilai PCON

CLR Acc.7 ; clear bit 7

MOV PCON,A ; kembali ke PCON

Baud rate dari Port Serial 89C51 dapat diatur pada Mode 1 dan Mode 3, namun pada Mode 0 dan Mode 2, baud rate tersebut mempunyai kecepatan yang permanen yaitu untuk Mode 0 adalah 1/12 frekwensi osilator dan Mode 2 adalah 1/64 frekwensi osilator.

Dengan mengubah bit SMOD yang terletak pada Register PCON menjadi set (kondisi awal pada saat sistem reset adalah clear) maka baud rate pada Mode 1, 2 dan 3 akan berubah menjadi dua kali lipat.

Pada Mode 1 dan 3 baud rate dapat diatur dengan menggunakan Timer1. Cara yang biasa digunakan adalah Timer Mode 2 (8 bit auto reload) yang hanya menggunakan register TH1 saja. Pengiriman setiap bit data terjadi setiap Timer 1 overflow sebanyak 32 kali sehingga dapat disimpulkan bahwa:


(30)

Baud rate (jumlah bit data yang terkirim tiap detik) =

32 1

lowx

TimerOverf …… (2.5)

Apabila diinginkan baud rate 9600 bps maka timer 1 harus diatur agar overflow setiap

32 9600

1

x detik

Timer 1 overflow setiap kali TH1 mencapai nilai limpahan (overflow) dengan frekwensi sebesar fosc/12 atau periode 12/fosc. Dari sini akan ditemukan formula

fosc TH x[256 1]

12 − = 32 9600 1 x sebagai berikut: 32 ] 1 256 [ 12 9600 x TH x fosc − =

Dengan frekwensi osilator sebesar 11,0592 MHz maka TH1 adalah 253 atau 0FDH. Selain variabel-variabel di atas, masih terdapat sebuah variabel lagi yang menjadi pengatur baud rate serial yaitu Bit SMOD pada Register PCON. Apabila bit ini set maka faktor pengali 32 pada formula 3.1 akan berubah menjadi 16. Oleh karena itu dapat disimpulkan formula untuk baud rate serial untuk Mode 1 dan Mode 3 adalah:

xK TH x fosc Baudrate ] 1 256 [ 12 −

= ………(2.6)

Tabel 2.5 memberikan bermacam nilai pada TH 1 pada pembangkit baud reat komunikasi data serial melalui port serial pada metode 1 dan 3, penggunaan kristal 12 MHz hanya di perbolehkan hingga kecepatan 4800 bps saja. Penggunaan kecepatan 4800 untuk


(31)

Tabel 2.4 Mode Serial vs baud rate

Mode Baud rate

0 1/12 fosc

1 SMOD = 0 SMOD = 1

2 1/32 fosc 1/32 fosc

3

Table.2.5 penentuan nilai TH1 pada pembangkit Baud rate:

BPS Kristal SMOD TH1 reload REAL BPS ERROR

4800 12 1 -13(F3h) 4807 0.16%

2400 12 0 -13(F3h) 2404 0.16%

2400 12 1 -26(E6h) 2404 0.16%

1200 12 1 -26(E6h) 1202 0.16%

1200 12 1 -56(CCh) 1202 0.16%

19200 11.059 1 -3(FDh) 19200 0%

9600 11.059 0 -3(FDh) 9600 0%

BPS Kristal SMOD TH1 reload REAL BPS ERROR

9600 11.059 1 -6(Fah) 9600 0%

4800 11.059 0 -6(Fah) 4800 0%

4800 11.059 1 -12(F4h) 4800 0%

2400 11.059 0 -12(F4h) 2400 0%

2400 11.059 1 -24(E8h) 2400 0%

1200 11.059 0 -24(E8h) 1200 0%

1200 11.059 1 -48(D0h) 1200 0%

2.5.4 Standar RS 232

Dalam hal interfacing secara serial antara PC dengan Mikrokontroller AT89S51 disini digunakan gerbang interkoneksi dari dan ke komputer melalui sinyal level RS 232. Standar RS 232 ditetapkan oleh Industry Association and Telecomunication Industry

Association pada tahun 1962 jauh sebelum IC TTL popular, oleh karena itu level

tegangan yang ditentukan untuk RS 232 tidak ada hubungannya dengan level tegangan TTL. Beberapa parameter yang ditetapkan oleh EIA (Electronics Industry Association) antara lain:


(32)

• Logika “0” (Low) antara tegangan +3 V s/d +25 V

• Logika “1” (High) antara tegangan -3 V s/d -25 V

• Tegangan rangkaian terbuka tidak boleh lebih dari 25 V (dengan acuan ground)

• Arus hubungan singkat rangkaian tidak boleh lebih dari 500 mA.

Gambar 2.8 Konfigurasi Pin DB 9


(33)

Komunikasi pada RS 232 dengan PC adalah komunikasi asinkron. Dimana sinyal clocknya tidak dikirim bersamaan dengan data. Masing-masing data disinkronkan menggunakan clock internal pada tiap-tiap sisinya. Format transmisi satu byte pada RS 232 adalah 8 bit, sebelum data tersebut ditransmisikan maka akan diawali oleh start bit dengan logika “0” (0 Volt) kemudian 8 bit data akan diakhiri oleh satu stop bit dengan logika “1” (5 Volt).

2.5.5 IC MAX 232

Untuk dapat berkomunikasi antara mikrokontroller dengan komputer, maka diperlukan suatu penyetaraan level tegangan. Besarnya level tegangan komunikasi serial (Level Tegangan RS232) adalah -25 s.d -3 V untuk logika high (1) dan +3 s.d +25 V untuk logika low (0). Hal ini sangat berbeda dengan level tegangan pada mikrokontroller (Level Tegangan TTL/CMOS) dimana untuk logika high (1) level tegangannya adalah 5 V dan untuk logika low (0) level tegangannya adalah 0 V. Oleh karena itu diperlukan sebuah pengantarmuka yang dapat menyamakan level tegangan dari komunikasi serial pada komputer dengan mikrokontroller, yaitu IC RS232 produksi MAXIM yang disebut MAX232.

Gambar 2.9 Bentuk Fisik IC MAX232

MAX232 adalah saluran driver/receiver ganda yang termasuk pembangkit tegangan kapasitip yang menyediakan level tegangan RS232 dari sebuah sumber tegangan 5V. Setiap receiver pada IC MAX232 ini mengkonversikan level tegangan RS232 ke level tegangan TTL/CMOS sebesar 5 V.

Dan setiap receiver ini mempunyai ambang batas sebesar 1.3 V, dan histeresis sebesar 0.5 V, serta dapat menerima masukan level tegangan ±30 V. Sedangkan untuk setiap driver pada IC MAX232 ini mengkonversikan level tegangan masukan


(34)

pasang konvertor TTL ke RS232 dan kebalikannya. Pada aplikasinya yang digunakan biasanya hanya satu pasang saja.

2.6 Microsoft Visual Basic 6.0

Microsoft Visual Basic adalah sebuah aplikasi yang digunakan untuk

pengembangan dengan memanfaatkan keistimewaan konsep- konsep antar muka grafis dalam Microsoft Windows. Aplikasi yang dihasilkan Visual Basic dapat digunakan sebagai tampilan pada PC yang berhubungan dengan piranti lain seperti mikrokontroller.

Untuk menjalakan program Visual Basic dari Windows Xp, pilih Start, All Program kemudian pilih Microsoft Visual Basic 6.0, selanjutnya double klik pada ikon Visual Basic 6.0. Lalu akan ditampilkan pembuka Visual Basic 6.0, seperti gambar berikut ini:

Property Project

Form ToolBar ToolBox

Gambar 2.10 Tampilan Visual Basic 6.0

Dalam pemrograman Visual Basis banyak istilah dan konsep untuk menyebut sesuatu yang membentuk sebuah aplikasi. Istilah- istilah tersebut memiliki arti yang sama dalam lingkungan pemrograman Visual lainnya, seperti misalnya Objek, Property dan Event. Defenisi objek adalah sesuatu yang dapat melakukan hal- hal tertentu. Dalam Visual Basic contoh dari objek adalah, Command Button, Label, List Box, Chek Box, dan lain- lain. Atau dapat dikatakan Objek adalah komponen- komponen yang membuat aplikasi. Dalam lingkungan pengembangan Visual, sekarang objek yang dibuat dapat langsung ditampilkan dilayar. Objek yang dibuat tersebut akan sama hasilnya pada saat program dijalankan, dengan demikian tidak perlu lagi melakukan perubahan kode program secara


(35)

manual. Setelah objek diletakkan diform, maka semua atribut objek tersebut akan disimpan sebagai suatu kode program yang dapat langsung dijalankan. Dalam gambar 2.10 terdapat beberapa jendela window yang aktif, diantaranya :

1. Windows property

Windows property dalam Visual Basic merupakan mekanisme normal yang akan menjelaskan atribut- atribut dari objek. Setiap objek Visual Basic memiliki property tertentu yang settinggnya mengontrol tampilan dan ulah dari objek dalam suatu aplikasi.

Gambar 2.11 Window Property Gambar 2.12

Beberapa property terbatas pada nilai-nilai tertentu contoh, Property Visible hanya bias

diatur dengan True atau False saja.

2. Windows Form

Sebuah Form adalah area tampilan yang berhubungan dengan sebuah jendela yang akan terlihat ketika aplikasi berjalan. Ketika memulai sebuah proyek baru, Visual Basic menciptakan sebuah form kosong dan memberinya judul Form1. Dalam Form inilah ditempatkan control untuk keperluan aplikasi.


(36)

3. Windows Project

Pada dasarnya Project adalah sekumpulan Form, Module, Class dan file sumber yang membentuk sebuah aplikasi. Jadi windows Project merupakan Windows yang

menampilkan listing semua file pembentuk Project. File Form berisi Deskripsi dari form dan kode- kode yang berhubungan dengannya.

Gambar 2.14 Windows Project

Sedangkan Modul berisi deklarasi dan Prosedure. File class memuat karakteristik- karakteristik tertentu dalam Class, meliputi Property dan Metodenya. Dua tombol yang terdapat pada sisi atas windows Project digunakan untuk menampilkan window Form (View Form) dan menampilkan window kodenya (Tombol View Code).

4. ToolBar

ToolBar merupakan kumpulan tombol- tombol yang mempunyai tugas untuk pengaksesan terhadap aplikasi yang berada dibawah kendalinya dengan cepat. Dan ToolBox berisi kontrol- kontrol atau objek- objek yang akan ditempelkan pada form sebagai element program aplikasi.


(37)

2.7 Motor Langkah (Stepper)

Pada dasarnya prinsip kerja motor stepper sama dengan motor DC, yaitu

membangkitkan medan magnet untuk memperoleh gaya tarik ataupun gaya tolak menolak dengan menggunakan catu tegangan DC pada lilitan/kumparannya. Motor stepper

menggunakan gaya tarik untuk menarik fisik kutub magnet yang berlawanan sedekat mungkin ke posisi kutub magnet yang dihasilkan oleh kumparan.

Dilihat dari lilitannya motor stepper terbagi menjadi 2 jenis yaitu : a.

Motor stepper bipolar memiliki empat kabel masukan. Namun untuk menggerakan motor stepper tipe ini lebih rumit jika dibandingkan dengan menggerakan motor stepper tipe unipolar. Sebagai gambaran dapat dilihat konstruksi motor stepper bipolar pada gambar berikut :

Motor Stepper Bipolar

Gambar 2.16 Konstruksi Motor Stepper Bipolar

Untuk motor stepper dengan lilitan bipolar, diperlukan sinyal pulsa yang berubah-ubah dari positif ke negatif dan sebaliknya. Jadi pada setiap terminal lilitan (A & B) harus dihubungkan dengan sinyal yang mengayun dari positif ke negatif dan sebaliknya. Karena itu dibutuhkan rangkaian pengendali yang lebih kompleks daripada rangkaian pengendali untuk motor unipolar.

b. Motor Stepper Unipolar

Motor stepper unipolar terdiri dari dua lilitan yang memiliki center tap. Center tap dari masing masing lilitan ada yang berupa kabel terpisah sudah terhubung didalamnya sehingga center tap yang keluar hanya satu kabel. Center tap dari motor stepper dapat dihubungkan ke ground atau dapat juga yang menghubungkannya ke +Vcc, tergantung pada driver yang digunakan. Sebagai gambaran dapat dilihat konstruksi motor stepper unipolar pada gambar berikut:


(38)

Gambar 2.17 Konstruksi Motor Stepper Unipolar

Rangkaian pengendali motor stepper unipolar lebih mudah dirancang karena hanya memerlukan satu switch pada setiap lilitannya. Agar motor ini berputar, tegangan positif diberikan pada terminal center tap, kemudian tegangan positif diberikan secara bergantian dan berurutan terus- menerus pada keempat terminal masing-masing lilitan. Oleh karena itu, pada alat ini digunakan motor stepper jenis unipolar.

Pada motor stepper ini, suplai tegangan yang dibutuhkan adalah V = 12 volt dan sudut rotasi 1,80 per step. Maka dalam satu putaran penuh (3600) terjadi 3600/1,80= 200 step (Np). Kecepatan pulsa diekspresikan sebagai pps (= pulsa per second) dan kecepatan putar umumnya ditulis sebagai ω (= rotasi / menit atau rpm). Kecepatan putar motor stepper (rpm) dapat dihitung menggunakan rumus pada kecepatan pulsa (pps) sebagai berikut.

[

rotasi menit

]

Np pps

/ 60

= ω

pps Np

60

=

ω ... (2.7) Np = step/putaran (pulsa/rotasi)

pps = pulsa per detik

Torsi yang dapat dihasilkan oleh motor stepper dapat dihitung berdasarkan perbandingan daya kerja motor terhadap kecepatan putarannya. Atau dapat dirumuskan sebagai berikut:

ω

τ = P (2.8)

dengan P adalah daya kerja motor dalam satuan watt dan ω adalah kecepatan perputaran motor dalam satuan rotation per minute (rpm).

Untuk mengetahui beban maksimum yang dapat digerakkan motor stepper dapat diperoleh dengan menghitung torsi dengan menggunakan rumus:


(39)

r F.

=

τ ... (2.9) dengan F adalah gaya berat yang bekerja terhadap motor dan r adalah jarak sumbu putar pada motor. Gaya berat yang bekerja terhadap motor dapat dituliskan dengan:

F = m.g (Newton) ... (2.10) dengan,

m = massa (kg) dan

g = percepatan gravitasi (m/s2).

Motor stepper dapat diatur posisinya dengan akurat pada posisi tertentu dan dapat berputar kearah yang diinginkan dengan memberi pulsa-pulsa digital dengan pola seperti pada table 2.8 dibawah ini. Untuk memutar motor stepper adalah dengan memberi pulsa ke koil secara berurutan dari koil 1 ke koil 2, dan seterusnya. Arah putaran motor stepper tergantung urutan pulsa yang diberikan ke koil, apabila diinginkan putaran dengan arah yang berlawanan, maka urutan pulsa yang dimasukkan ke koil pun digeser berlawanan pula.

Motor stepper dapat diatur posisinya dengan akurat pada posisi tertentu dan dapat berputar kearah yang diinginkan dengan memberi pulsa-pulsa digital dengan pola seperti pada table 2.4 dibawah ini. Untuk memutar motor stepper adalah dengan memberi pulsa ke koil secara berurutan dari koil 1 ke koil 2, dan seterusnya. Arah putaran motor stepper tergantung urutan pulsa yang diberikan ke koil, apabila diinginkan putaran dengan arah yang berlawanan, maka urutan pulsa yang dimasukkan ke koil pun digeser berlawanan pula.

Tabel 2.7 Arah Perputaran Motor

Putaran

Searah jarum jam Berlawanan arah jarum jam

koil 1 koil 2 koil 3 koil 4 koil 1 koil 2 koil 3 koil 4

step 1 1 0 0 0 0 0 0 1

step 2 0 1 0 0 0 0 1 0

step 3 0 0 1 0 0 1 0 0

step 4 0 0 0 1 1 0 0 0

Pada tabel 2.4 diatas, ‘1’ diartikan bahwa lilitan yang bersangkutan dilewati arus sehingga menghasilkan gaya tolak untuk rotor, sedangkan ‘0’ diartikan lilitan dalam


(40)

kondisi off, yakni tidak mendapatkan arus. Pada tabel juga ditunjukkan, untuk membalik putaran motor stepper cukup membalik urutan pemberian pulsa pada lilitan. Untuk memperlambat atau mempercepat putaran motor stepper, dengan mengatur waktu urutan pemberian pulsa, akan tetapi, pemberian waktu pulsa jika terlalu lamban akan

menyebabkan motor stepper bergetar dan jika terlalu cepat akan mengakibatkan motor tidak mau berputar.


(41)

BAB III

PERANCANGAN ALAT DAN PROGRAM 3.1 Diagram Blok Rangkaian

Secara umum pada perancangan sistem pengendalian pintu air ini, terdiri dari 7 blok. Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan pada gambar 3.1. berikut ini:

Gambar 3.1 Diagram Blok Rangkaian

Sensor setiap saat akan membaca level ketinggian air. Dalam hal ini digunakan 8 (delapan) level ketinggian air. Data yang dihasilkan oleh sensor akan dikondisikan pada pengkondisi sinyal, sehingga menghasilkan data digital yang akan dibandingkan oleh mikrokontroller. Pada perancangan sistem ini, mikrokontroller adalah otak dari keseluruhan sistem kerja alat ini. Data yang diberikan pada mikrokontroller akan

dikirimkan ke PC yang berfungsi sebagai input sekaligus output dari data yang diberikan. Agar mikrokontroller dapat berkomunikasi dengan PC maka digunakanlah MAX 232 sebagai penghubungnya. Setelah level ketinggian air ditampilkan pada PC, kemudian kita dapat mengatur level ketinggian air sesuai dengan yang kita inginkan. Melalui PC kita kirimkan data level ketinggian air yang kita inginkan ke mikrokontroller AT89S51. Kemudian mikrokontroller akan memerintahkan motor stepper melalui driver motor

PC DRIVER

MOTOR STEPPER MIKROKONTROLLER

AT89S51 MAX 232

MOTOR STEPPER PENGKONDISI

SINYAL SENSOR

PINTU AIR


(42)

stepper untuk membuka dan menutup pintu air sehingga ketinggian air sampai pada level yang telah kita tentukan.

3.2 Fungsi Sistem Mekanik

Gambar sistem mekanik alat ditunjukkan pada gambar 3.2 berikut ini:

Gambar 3.2 Rancangan Tampak Dari Samping = pintu air pada bendungan

= lempeng tembaga sebagai sensor

= level ketinggian air = bendungan air atau wadah

= motor stepper untuk membuka-tutup pintu air 3.3 Perancangan Sensor Pendeteksi Ketinggian Air

Pada perancangan alat ini, pendeteksian air dilakukan dengan menggunakan elektroda berupa lempeng tembaga. Lempeng tembaga diberi jarak 1 cm dengan lempeng tembaga lainnya. Misalkan salah satu lempengan diberi label lempeng A dan diberi tegangan 5 volt , sedangkan pasangannya diberi label lempeng B. Bila lempeng A dan lempeng B dihubungkan dengan air, maka lempeng B akan menghasilkan tegangan sekitar 1,5 volt. Dan bila lempeng A dan lempeng B tidak terhubung, maka lempeng B tidak akan memiliki tegangan atau 0 volt. Prinsip inilah yang digunakan untuk

mendeteksi ketinggian air. Dengan memposisikan 8 (delapan) pasang lempeng dengan Pintu Air

Motor Stepper

Level Ketinggian Air

Wadah/ Bendungan Leaga

30 Cm

Arah aliran

15 Cm 10 Cm


(43)

jarak 1cm dari bawah ke atas, maka kita dapat mendeteksi ketinggian air dengan 8 level. Berikut adalah gambarannya:

Gambar 3.3 Lempeng Tembaga Sebagai Pendeteksi Ketinggian Air

Pada gambar 3.3 diatas, Output tegangan yang dihasilkan kedelapan pasang lempeng tembaga ini, tidak bisa digunakan langsung sebagai data digital yang akan dibaca oleh mikrokontroller. Oleh karena itu digunakan transistor dengan prinsip transistor sebagai saklar, sehingga dapat dihasilkan data digital 5 volt (High) dan 0 volt (Low).

3.4 Rangkaian Pengkondisi Sinyal

Pada alat ini, sensor yang digunakan untuk mendeteksi ketinggian air digunakan sepasang lempeng tembaga yang dihubungkan pada transistor yang bekerja sebagai saklar otomatis. Pada sepasang lempeng tembaga salah satunya (lempeng A) dihubungkan dengan tegangan +5 Volt dan yang lainnya (lempeng B) dihubungkan ke basis transistor, seperti Gambar 3.3 berikut ini.

Transistor 8

5 Volt

1 2 3 4 5 6 7 8 Transistor 7

Transistor 6 Transistor 5 Transistor 4 Transistor 3 Transistor 2 Transistor 1

Lempeng A Lempeng B


(44)

Gambar 3.4 Rangkaian Sensor Sebagai Saklar Otomatis

Dapat kita lihat apabila lempeng A dan lempeng B tidak terhubung, maka tegangan akan dialirkan dari Vc ke Vout, sehingga Vout menjadi +5 Volt. Dan apabila lempeng A dan lempeng B terhubung oleh air, maka akan ada tegangan yang dialirkan pada basis transistor yang cukup untuk mengaktifkan transistor. Apabila transistor aktif maka tegangan dari Vc akan mengalir ke VE

Pada alat ini digunakan 8 (delapan) pasang lempeng tembaga. Jarak sepasang lempeng tembaga dengan lempeng tembaga berikutnya adalah 1 cm, dan dipasang mulai dari dasar wadah sehingga diperoleh 8 (delapan) level ketinggian air. Inilah yang

digunakan sebagai acuan level ketinggian air pada alat. Masing- masing pasangan lempeng tembaga dihubungkan dengan transistor. Sehingga akan dihasilkan 8 (delapan) buah output data digital yang kemudian dihubungkan dengan P2.0 sampai P2.7 pada mikrokontroller.

, dan Vout akan menjadi 0. Vout yang dihasilkan berupa +5 Volt (High) dan 0 (Low) inilah yang digunakan menjadi data digital yang kemudian dapat dibaca oleh mikrokontroller.

3.5 Rangkaian Konverter RS232

Untuk menghubungkan mikrokontroller dengan PC tidak bisa dilakukan secara langsung namun membutuhkan sebuah konverter. Dalam antarmuka mikrokontroller dan PC disini dilakukan secara serial Oleh karena itu diperlukan sebuah port serial, dalam hal ini digunakan port DB9. Dari port DB9 ini kemudian dihubungkan dengan rangkaian konverter. Dalam hal ini digunakan rangkaian konverter RS233 menggunakan IC MAX232. Berikut ini adalah gambarannya:

TR1 1K 4k7 P2.0 +5V TR2 1K 4k7 P2.1 TR3 1K 4k7 P2.2 TR4 1K 4k7 P2.3 TR5 1K 4k7 P2.4 TR6 1K 4k7 P2.5 TR7 1K 4k7 P2.6 TR8 1K 4k7 P2.7


(45)

Gambar 3.5 Rangkaian Konverter Level RS232

3.6 Rangkaian Mikrokontroler AT89S51

Mikrokontroller AT89S51 disini digunakan sebagai pengendali utama seluruh sistem atau alat. Pada Mikrokontroller AT89S51 inilah program akan disikan sehingga alat dapat bekerja secara otomatis. Namun rangkaian mikrokontroller AT89S51 tidak dapat langsung digunakan. Ada berberapa komponen yang harus ditambahkan, diantaranya kristal dan kapasitor yang digunakan sebagai pembangkit sinyal. Kristal yang digunakan mempunyai frekuensi 11,0592MHz yang dihubungkan pada pin 18 dan pin 19. Sedangkan dua kapasitor dengan nilai 30pF dihubungkan pada pin 18 ke ground dan pin 19 ke juga ke ground. Berikut adalah gambar rangkaian sistem minimum mikrokontroller AT89S51: 10uF 10uF 10uF Vcc 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 Vcc Gnd T1 Out R1 In R1 Out T1 In T2 In R2 Out C1+ V+ C1-C2+ C2- V-T2 Out R2 In MAXIM MAX232 10uF Vcc 1 6 2 7 3 8 4 9 5 RX TX P3.1/RXD P3.0/TXD


(46)

GND +5V X-TAL 11,0592MHz +5V GND 1k AT89S51 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XTAL 2 XTAL 1 GND 40 39 38 37 36 35 34 33 32 28 27 26 25 24 23 22 21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 10uF 30pF 30pF 31 30 29 4k7 4k7

Gambar 3.6 Sistem Minimum Mikrokontroller AT89S51

Rangkaian mikrokontroller ini terdiri dari 40 pin. Pin 40 dihubungkan pada sumber tegangan +5 volt dan pin 20 dihubungkan ke ground. Rangkaian mikrokontroller ini memiliki 4 port input/output dengan masing-masing saluran 8 bit. Pin 39 sampai pin 32 adalah port 0.

Mulai dari pin 39 sebagai P0.0 sampai pin 32 sebagai P0.7. Pada port 0 ini juga dihubungkan dengan resistor 4k7 sebagai tegangan pull up eksternal. Pada pin 21 sampai pin 28 digunakan sebagai port 2. Pada pin 1 sampai pin 8 digunakan sebagai port 1. Dan pada pin 10 sampai pin 17 digunakan sebagai port 3. Pada pin 9 berfungsi sebagai reset, dihubungkan dengan sebuah kapasitor 10uF yang dihubungkan ke positif dan sebuah resistor 10 Kohm yang dihubungkan ke ground.

3.7 Rangkaian Driver Motor Stepper

Agar pintu dapat bergerak membuka dan menutup pintu, maka digunakan motor stepper. Mikrokontroler tidak dapat langsung mengendalikan putaran dari motor

stepper, karena itu dibutuhkan driver sebagai perantara antara mikrokontroler dan motor stepper. Rangkaian driver motor stepper ditunjukkan pada gambar 3.6 berikut:


(47)

Gambar 3.7 Driver Motor Stepper

Driver ini berfungsi untuk memutar motor stepper searah dengan jarum jam atau berlawanan arah dengan jarum jam. Dengan memberikan sinyal high secara bergantian ke input dari rangkaian driver motor stepper tersebut, maka pergerakan motor stepper sudah dapat dikendalikan oleh mikrokontroler. Rangkaian driver motor stepper ini terdiri dari empat masukan dan empat keluaran, dimana masing-masing masukan dihubungkan dengan mikrokontroler dan keluarannya dihubungkan ke motor stepper. Rangkaian ini akan bekerja memutar motor stepper jika diberi sinyal high (1) secara bergantian pada ke- 4 masukannya.

Rangkaian ini terdiri dari 4 buah transistor NPN TIP 122. Masing-masing transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51. Basis dari masing- masing transistor diberi tahanan 1 Kohm untuk membatasi arus yang masuk ke transistor. Kolektor dihubungkan dengan kumparan yang terdapat pada motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt dan emitor dihubungkan ke ground.

Jika P0.0 diberi logika high (1), yang berarti basis pada transistor TIP 122 mendapat tegangan 5 volt, maka transistor akan aktif. Hal ini akan menyebabkan terhubungnya kolektor dengan emitor, sehingga kolektor mendapatkan tegangan 0 volt dari ground. Hal ini menyebabkan arus akan mengalir dari sumber tegangan 12 volt ke kumparan, sehingga kumparan akan menghasilkan medan magnet. Medan magnet ini akan menarik logam yang ada pada motor, sehingga motor mengarah pada kumparan yang memiliki medan magnet tesebut. Agar motor berputar maka harus diberikan logika high secara bergantian ke masing-masing input dari masing-masing rangkaian. Pemberian logika high lebih dari satu input tidak akan membuat motor berputar. Dan pemberian logika high yanm g tidak bergantian juga tidak akan membuat motor berputar.


(48)

3.8 Rangkaian Lengkap

Berdasarkan uraian-uraian yang telah diterangkan pada bagian sebelumnya, maka dibuat rangkaian lengkap dari peralatan. Adapun rangkaian lengkap dari perancangan sistem ini dapat dilihat pada gambar 3.8 berikut ini:


(49)

BAB IV

PENGUJIAN SISTEM DAN ANALISA PROGRAM 4.1 Pengujian Sistem Hardware

4.1.1 Pengujian Rangkaian Mikrokontroller AT89S51

Dalam pengujian yang akan dilakukan pada rangkaian mikrokontroller terlebih dahulu kedelapan pin pada Port 0 dihubungkan dengan LED. Penambahan LED disini hanya berguna sebagai pengujian apakah program yang diisikan telah berjalan dengan baik atau tidak. Berikut gambar rangkaian mikrokontroller AT89S51 yang dihubungkan dengan LED:

Gambar 4.1 Rangkaian Mikrokontroller AT89S51

Untuk menghidupkan sebuah LED, maka pin yang terhubung ke LED tersebut harus diberi nilai high (1). Sebaliknya, pin yang mendapat nilai low (0), maka LED nya akan mati. Pengujian dilakukan dengan memberikan program sederhana pada

mikrokontroller AT89S51. Berikut adalah program untuk pengujian rangkaian mikrokontroller AT89S51 :

1k 330O GND +5V X-TAL 12MHz +5V GND 1k 10mF AT89S51 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XTAL 2 XTAL 1 GND 40 39 38 37 36 35 34 33 32 28 27 26 25 24 23 22 21 330O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1k GND 33pF 33pF 31 30 29


(50)

Loop:

mov p0,#55h P0 0 1 0 1 0 1 0 1

acall tunda

mov P0,#0AAH P0 1 0 1 0 1 0 1 0

acall tunda

sjmp Loop Short jump to loop

tunda: mov r7,#255 tnd: mov r6,#255 Djnz r6,$ Djnz r7,tnd ret

Program diatas hanya program sederhana yang diisikan kedalam mikrokontroller, dimana program diatas akan menghidupkan LED yang terhubung ke pin P0.0, P0.2, P0.4 dan P0.6 berhenti sesaat lalu menghidupkan LED yang terhubung ke pin P0.1, P0.3, P0.5 dan P0.7 dan berhenti sesaat kemudian kembali lagi menghidupkan LED yang terhubung ke pin P0.0, P0.2, P0.4 dan P0.6.

Demikian seterusnya. Rutin tunda berfungsi sebagai waktu berhenti sesaat sebelum LED lainnya dihidupkan. Dengan mengisikan nilai yang berbeda pada Port 0, maka tampilannya juga berbeda. Pengujian yang sama juga dilakukan pada Port 1, Port 2 dan Port 3. Apabila LED atau mikrokontroller telah berjalan sesuai dengan program yang diisikan kedalamnya maka rangkaian mikrokontroller ini telah berfungsi dengan baik dan siap untuk digunakan.

4.1.2 Pengujian Rangkaian Sensor

Pengujian rangkaian sensor dapat dilakukan dengan cara menghubungkan salah satu lempeng yang ada pada sensor ini. Dalam hal ini yang berfungsi sebagai input sensor adalah lempeng A dan yang berfungsi sebagai output sensor adalah lempeng B. Pada lempeng A akan dihubungkan dengan sumber tegangan +5 Volt dan outputnya akan diumpankan ke kaki basis transistor dimana transistor disini akan digunakan sebagai rangkaian pengkondisi sinyal.

Gambar 4.2 Rangkaian Sensor

A B

+5V +5V

4K7

V out 1K


(51)

Dari hasil pengujian sensor yang dilakukan, maka diperoleh tegangan yang dihasilkan pada kaki basis. Data yang diperoleh ini yang akan dimanfaatkan dengan menggunakan prinsip kerja dari transistor. Berikut data yang diperoleh pada saat pengukuran tegangan basis, sebagai berikut :

Tabel 4.1 Hasil pengukuran Tegangan Basis (VB Karakteristik

)

VB yang dihasilkan Keadaan sensor

Tegangan basis Emitter pada saat

saturasi (IB = 0,2 mA) 1,5 V Logika 0 (Low)

Tegangan basis Emitter pada saat

cut-off (IB = 0 ) 0 V Logika 1 (High)

Saat kedua lempeng terhubung oleh air, maka pada lempeng B dihasilkan tegangan sebesar 1,5 Volt. Tegangan inilah yang cukup untuk mengaktifkan transistor. Sehingga tegangan dari Vc akan mengalir ke VE, dan Vout akan menjadi 0 volt. Kondisi

0 inilah yang dianggap sebagai data high yang akan dikirimkan ke mikrokontroller. Sebaliknya, saat kedua lempeng tidak terhubung oleh air, maka tegangan dilempeng B sebesar 0 volt, sehingga transistor tidak akan aktif maka tidak ada tegangan yang

mengalir dari Vc ke VE dan Vout akan menjadi 5 volt. Sehingga tegangan 5 volt ini yang

digunakan sebagai data low yang akan diolah pada mikrokontroller.

4.1.3 Pengujian Motor Stepper

a. Menentukan Arah Perputaran Motor Stepper

Untuk mengetahui arah perputaran dari motor stepper adalah dengan mengisikan program ke mikrokontroller sebagai berikut :

Putar_kiri :

Mov a,#01H loop :

Mov P0,a RL a

acall tunda_step Sjmp loop tunda_step :

Mov r7,#255 Mov r6,$255 tnd :

Djnz r6,$ Djnz r7,tnd Ret


(52)

Program diatas akan mengatur gerakan motor stepper agar berputar kearah kiri atau berlawanan dengan putaran jarum jam.

Putar_kanan : Mov a,#01H Loop :

Mov P0,a RR a

acall tunda_step Sjmp loop tunda_step :

Mov r7,#255 Mov r6,$255 tnd :

djnz r6,$ djnz r7,tnd ret

Program diatas akan mengatur gerakan roler agar berputar terus ke arah kanan atau searah dengan arah putaran jarum jam. Rutin tunda dengan perintah call step_tunda merupakan lama waktu perputaran motor untuk satu step atau langkah.

Perintah Mov r6,#255 dan Mov r7,#255 masing-masing terdiri dari 2 siklus mesin. Perintah djnz juga terdiri dari 2 siklus mesin. Sedangkan perintah ret terdiri dari 1 siklus mesin. Perintah djnz r6,$ maksudnya adalah mengurangi nilai pada r6 sampai bernilai 0, berarti perintah djnz r6,$ pada program diatas dilakukan sebanyak 255 kali, atau 225 x 2 = 510 µd. Setelah nilai r6 bernilai 0 maka nilai r7 berkurang 1 nilai karena adanya perintah djnz r7, kemudian program akan kembali mengurangi nilai pada r6 sampai bernilai 0 (kembali ke tunda_step) sehingga perintah ini dilakukan sebanyak 255 kali. Dengan demikian dapat diketahui hasilnya adalah (510 x 255 = 65025 µd). Hasil dari perkalian ini kemudian ditambahkan dengan 5 siklus berikutnya (mov r6 = 2 siklus, mov r7 = 2 siklus, dan ret = 1 siklus) sehingga hasil akhir didapatkan (65025 + 5 = 65030 µd). Jadi waktu tunda yang diberikan untuk satu step adalah 65030 µd atau 0,065detik.

b. Menentukan beban maksimum yang dapat digerakkan motor stepper.

Untuk mengetahui beban maksimum yang dapat digerakkan oleh motor stepper ini, maka terlebih dahulu mengitung besar torsi dan gaya berat yang bekerja. Besar torsi pada motor stepper ini adalah :

ω

τ = P ,dimana P = V.i , V=12V , i = 2 A

60 2

12Vx ampere

= τ


(53)

τ = 0,4 Nm

l F.

=

τ

Sehingga gaya berat yang bekerja pada motor stepper ini:

l

F =τ ,dimana l disini adalah panjang dari pintu air.

N m

Nm

F 4

1 , 0

4 , 0

= =

Pada alat ini berat yang akan digerakkan oleh motor stepper adalah pintu air. Dengan berat maksimum 0,2 kg atau 200 x 10-3kg sehingga motor stepper dapat menggerakkan pintu air. Dan gaya berat yang bekerja untuk menggerakkan pintu sebesar 4 N.

4.2 Pengujian Software

4.2.1 Analisa Program pada PC menggunakan Visual Basic 6.0

Program pada PC menggunakan software Visual Basic 6.0. Pengujian ini

dilakukan dengan menghubungkan dengan semua blok di bagian pemancar dan penerima. Pada blok bagian penerima di hubungkan ke PC, dan semua blok diaktifkan. Kemudian keluaran RS232 pada bagian penerima dihubungkan ke port serial komputer. Jika semua sistem menyala maka pendeteksi sinyal akan menyala sehingga data yang dikirimkan akan diterima untuk ditampilkan pada layar PC. Hasil dari pengujian ini dapat dilihat dari program dibawah ini:

Private Sub Command1_Click()

MSComm1.Output = "6" ‘kirim nilai 6 ke port serial Label11 = "6" ‘tampilkan 6 pada label1 End Sub

Private Sub Command2_Click()

MSComm1.Output = "7" ‘kirim nilai 7 ke port serial Label11 = "7" ‘tampilkan nilai 7 pada label1

End Sub

Private Sub Command3_Click()

MSComm1.Output = "8" ‘kirim nilai 8 ke port serial Label11 = "8" ‘tampilkan nilai 8 pada label1

End Sub

Private Sub Command4_Click()

MSComm1.Output = "a" ‘kirim nilai a ke port seial Label11 = "a" ‘tampilkan a pada label1


(54)

Private Sub Command5_Click()

MSComm1.Output = "1" ‘kirim nilai 1 ke port serial

Label11 = "1" ‘tampilkan nilai 1 pada label1

End Sub

Private Sub Command6_Click()

MSComm1.Output = "2" ‘kirim nilai 2 ke port serial Label11 = "2" ‘tampilkan nilai 2 ke label1

End Sub

Private Sub Command7_Click()

MSComm1.Output = "3" ‘kirim nilai 2 ke port serial Label11 = "3" ‘tampilkan nilai 3 ke label1

End Sub

Private Sub Command8_Click()

MSComm1.Output = "4" ‘kirim nilai 4 ke port serial Label11 = "4" ‘tampilkan nilai 4 ke label1

End Sub

Private Sub Command9_Click()

MSComm1.Output = "5" ‘kirim nilai 5 ke port serial Label11 = "5" ‘tampilkan nilai 5 ke label1

End Sub

Private Sub Form_Load()

MSComm1.PortOpen = True ‘buka komunikasi ke port serial

MSComm1.DTREnable = True ‘aktifkan pengiriman data

MSComm1.RTSEnable = True ‘aktifkan pengiriman data

Timer1.Enabled = True ‘aktifkan timer1

Timer2.Enabled = True ‘aktifkan timer2

End Sub

Pada program diatas memerintahkan untuk komunikasi pada port serial diaktifkan, pengiriman data diaktifkan dan penerimaan data diaktifkan. Program juga akan

mengaktifkan timer 1 dan timer 2.

Private Sub Timer1_Timer()

Label1.Caption = MSComm1.Input ‘input serial dari mikro tampilkan di label1

If Label1.Caption <> "" Then ‘jika label1 tidak kosong, maka

Label2.Caption = Label1.Caption ‘tampilkan label1 pada label2 End If


(1)

Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFF0000 warna picture 3 = Biru Tua Picture4.BackColor = &HFF0000 warna picture 4 = Biru Tua Picture5.BackColor = &HFFFF80 warna picture 5 = Biru Muda Picture6.BackColor = &HFFFF80 warna picture 6 = Biru Muda Picture7.BackColor = &HFFFF80 warna picture 7 = Biru Muda Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda End If

If Label2.Caption = "5" Then ‘jika label 2 = 5, maka Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFF0000 warna picture 3 = Biru Tua Picture4.BackColor = &HFF0000 warna picture 4 = Biru Tua Picture5.BackColor = &HFF0000 warna picture 5 = Biru Tua Picture6.BackColor = &HFFFF80 warna picture 6 = Biru Muda Picture7.BackColor = &HFFFF80 warna picture 7 = Biru Muda Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda End If

If Label2.Caption = "6" Then ‘jika label 2 = 6 maka, Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFF0000 warna picture 3 = Biru Tua Picture4.BackColor = &HFF0000 warna picture 4 = Biru Tua Picture5.BackColor = &HFF0000 warna picture 5 = Biru Tua Picture6.BackColor = &HFF0000 warna picture 6 = Biru Tua Picture7.BackColor = &HFFFF80 warna picture 7 = Biru Muda Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda End If

If Label2.Caption = "7" Then ‘jika label 2 = 7, maka Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFF0000 warna picture 3 = Biru Tua Picture4.BackColor = &HFF0000 warna picture 4 = Biru Tua Picture5.BackColor = &HFF0000 warna picture 5 = Biru Tua Picture6.BackColor = &HFF0000 warna picture 6 = Biru Tua Picture7.BackColor = &HFF0000 warna picture 7 = Biru Tua Picture8.BackColor = &HFFFF80 warna picture 8 = Biru Muda End If

If Label2.Caption = "8" Then ‘jika label 2 = 8, maka Picture1.BackColor = &HFF0000 warna picture 1 = Biru Tua Picture2.BackColor = &HFF0000 warna picture 2 = Biru Tua Picture3.BackColor = &HFF0000 warna picture 3 = Biru Tua


(2)

Picture4.BackColor = &HFF0000 warna picture 4 = Biru Tua Picture5.BackColor = &HFF0000 warna picture 5 = Biru Tua Picture6.BackColor = &HFF0000 warna picture 6 = Biru Tua Picture7.BackColor = &HFF0000 warna picture 7 = Biru Tua Picture8.BackColor = &HFF0000 warna picture 8 = Biru Tua

End If End Sub

Private Sub Timer2_Timer()

MSComm1.Output = Label11.Caption End Sub

Gambar 4.3 Tampilan Pada Monitor PC

Gambar 4.3 Tampilan Level ketinggian air pada PC

Gambar 4.3 Tampilan Level Ketinggian air Pada PC

Ketika program telah dijalankan maka akan tampak tampilan seperti gambar di atas pada monitor PC yang berpungsi sebagai pengiriman data dari PC ke mikrokontroller dan dari mikrokontroller ke PC sebagai tampilan pada monitor PC. Pada layout di atas terdapat 8 buah command buttom yaitu level ketinggian air. Adapun fungsi command level


(3)

ketinggian air berguna untuk menaikkan dan menurunkan level ketinggian air dengan cara manual dan pada commond level yang berfungsi untuk menaikkan dan menurunkan secara otomatis. Pada tampilan monitor PC terdapat label yang berwarna yang berfungsi untuk mengetahui berapa tingkat level ketinggian air yang ada pada bendungan.


(4)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari uraian yang telah dibahas pada penelitian ini, maka dapat diambil beberapa kesimpulan sebagai berikut :

1. Dalam penelitian ini telah berhasil dibuat sebuah rancang bangun yang dapat diaplikasikan untuk bendungan dan dapat mengendalikan pintu air bergerak membuka dan menutup sesuai dengan level yang ditentukan yaitu 8 level dengan sistem pengendali utama yaitu Mikrokontroller AT89S51 dan PC.

2. Untuk alat pengendalian pintu air ini digunakan metode pengiriman data secara serial karena melalui metode pengiriman data serial lebih jauh sehingga kehilangan daya karena panjangnya kabel bukan menjadi masalah utama dibandingkan dengan metode paralel.

3. Pada penelitian ini, dalam melakukan uji cobanya semua sistem berjalan dengan baik dan berjalan seperti yang diharapkan.

5.2. Saran

Adapun saran dari penulis adalah sebagai berikut :

1. Pada pengenbangan lebih lanjut, dapat dirancang alat yang dapat mengendalikan pintu air dengan sensor yang lebih baik seperti weather meters sehingga dapat lebih baik dalam mendeteksi ketinggian air.

2. Sebaiknya rangkaian dan sistem dikemas dalam bentuk yang lebih aman agar alat lebih efektif dalam penggunaannya.

3. Alat ini masih memiliki kekurangan yaitu sensor sering terhubung apabila air masih tersisa pada ujung sensor.


(5)

DAFTAR PUSTAKA

Afgianto Eko Putra.2002.Teknik Antar Muka Komputer.Edisi Pertama.Graha Ilmu:Yogyakarta

Afgianto Eko Putra.2004.Belajar Mikrokontroller at89C51/52/55.Cetakan Pertama.Gava Media:Yogyakarta

Andi. 2003. Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroller AT89S51. PT. Elek Media Komputindo:Jakarta

Malvino, Albert Paul.1986.Prinsip-Prinsip Elektronika.Edisi Ketiga.Jilid 1.Erlangga:Jakarta

Sudjadi. MT.2005. Teori dan Aplikasi Mikrokontroller.edisi Pertama.Graha Ilmu: Yogyakarta.

Sumarna.2006.Elektronika Digital.Edisi Pertama.Graha Ilmu:Yogyakarta

Suryana, Taryana.2009.Visual Basic 6.0.Edisi Pertama.Graha Ilmu:Yogyakarta

Tim Lab Mikroprosesor.2007.Pemrograman Mikrokontroller AT89S51.Edisi Pertama.

Penerbit ANDI: Yogyakarta

Tim Lab Penelitian dan Pengembangan.2005.Pemrograman Visual Basic 6.0.Penerbit ANDI:Yogyakarta

tanggal :16/02/2011 01.55 wib

tanggal : 17/11/10 07.30 wib

tanggal : 12/02/2011 09.25 wib

tanggal : 12/02/2011 09.56 wib

tanggal : 16/02/2011 01.35

tanggal : 12/02/2011 09.49 wib


(6)

tanggal : 12/02/2011 09.49 wib

tanggal : 12/02/2011 09.35 wib

tanggal : 16/02/2011 01.35

tanggal : 15/02/2011 14.26

tanggal : 15/02/2011 14.19

tanggal : 15/02/2011 14.29

tanggal : 12/02/2011 09.38 wib