• Tidak ada hasil yang ditemukan

Alat pengukur kedalaman sumur berbasis mikrokontroler AT89S51 - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Alat pengukur kedalaman sumur berbasis mikrokontroler AT89S51 - USD Repository"

Copied!
109
0
0

Teks penuh

(1)

ALAT PENGUKUR KEDALAMAN SUMUR

BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik

Program Studi Teknik Elektro Fakultas Teknik Universitas Sanata Dharma

disusun oleh

YUSUF FREDY HARYANTO NIM : 005114105

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

FINAL PROJECT

Presented as Partial Fulfilment of the Requirements

To Obtain the Sarjana Teknik Degree

In Electrical Engineering

By

YUSUF FREDY HARYANTO

005114105

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

ENGINEERING FACULTY

SANATA DHARMA UNIVERSITY

(3)
(4)
(5)

v

(6)

diberikan kepadamu ”

Ku persembahkan karya ilmiah ini untuk :

Tuhan ku Yesus Kristus

Sebab Dialah sumber segala sesuatu, oleh Dia dan kepada

Dialah kemuliaan sampai selama-lamanya.

Bunda Maria...

Keluargaku :

Ayahanda tercinta (alm), Ibunda tercinta, mba Christin,

mas Anto, mas Anton, mba Emi, cicil, fandy dan

orang-orang yang selalu mendukung dan menyayangi saya.

Special for Caecilia Erlin Desiana tercinta yang selalu

menemani aku dan memberi semangat.

Dan Almamaterku...

(7)

Alat Pengukur Kedalaman Sumur

Berbasis Mikrokontroler AT89S51

NAMA : Yusuf Fredy Haryanto NIM : 005114105

INTI SARI

Tugas akhir ini membahas tentang alat untuk mengukur kedalaman sumur. Kedalaman sumur yang dihasilkan menggunakan satuan meter, yang akan ditampilkan melalui seven segments.

Alat ini terdiri dari rengkaian sensor, pengendali motor, microcontroller dan seven segments. Kedalaman tersebut diketahui melalui optocoupler dan ditangkap menggunakan microcontroller. Fungsi dari microcontroller yaitu menghitung pulsa dari sensor, mengatur putaran motor dan menampilkan hasil perhitungan pada seven segments. Microcontroller yang digunakan pada alat ini adalah AT89S51.

Hasil akhir dari penelitian ini adalah alat dapat mengukur kedalaman dengan jangkauan 00,00 meter sampai 99,95 meter, dan resolusi 5 centi meter Kata kunci : Pengukuran kedalaman, aplikasi microcontroller

(8)

ABSTRACT

This paper discussed about the tool to measuring the depth of well. The well depth that is resulted using this tool uses the meter unit of depth.

This tool consists of sensor circuit, motor controller, microcontroller and seven segments. The depth is sensed by optocoupler and being captured using microcontroller. Microcontroller tasks are counting pulses from sensor, controls the direction of motor and display the counting result at seven segments. Microcontroller that is being used in this appliance is AT89S51

The results are this tool can measure the depth with range 00.00 m up to 99.95 m, and 5 cm resolution which is presented in through the seven segments. The seven segments circuit represents the end of the all circuit systems in the well depth measuring.

Keywords: Depth measurement, microcontroller application.

(9)

Kata Pengantar

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, oleh karena kasih dan penyertaan-Nya sehingga penulis dapat meyelesaikan Tugas Akhir yang berjudul “Pengukur Kedalaman Sumur Berbasis Mikrokontroler AT89S51”. Tugas Akhir ini disusun sebagai salah satu syarat untuk

memperoleh gelar Sarjana Teknik. Dalam penyusunannya, banyak pihak yang telah membantu dan memberikan dukungan pada penulis, oleh karena itu, penulis ingin mengucapkan terima kasih kepada:

1. Bapak Ir. Greg. Heliarko, S.J., S.S., B.S.T., M.A., M.Sc., selaku Dekan Fakultas teknik Universitas Sanata Dharma, Yogyakarta.

2. Bapak Agustinus Bayu Primawan, S.T., M.Eng., selaku Ketua Jurusan Teknik

Elektro, Fakultas Teknik, Universitas Sanata Dharma, Yogyakarta.

3. Ibu Wiwien Widyastuti, S.T., M.T., selaku Dosen Pembimbing Akademik. 4. Bapak B. Djoko Untoro S., Ssi., MT selaku Pembimbing I yang bersedia

membagikan ilmu yang dimilikinya dalam membantu proses penyusunan tugas akhir ini.

5. Bapak Ir. Tjendro selaku Pembimbing II Yang bersedia meluangkan waktunya untuk membantu proses penyusunan tugas akhir ini.

6. Seluruh staf Dosen Jurusan Teknik Elektro USD yang telah memberikan banyak pelajaran berharga selama masa kuliah.

7. Pak Djito, Mas Sur, Mas Broto, Mas Mardi dan segenap staf serta karyawan Fakultas Teknik USD, terimakasih atas keramahannya dan pelayanannya. 8. Ibunda tercinta MM. Sudarmi yang selalu mendoakan dan memberi kasih

sayangnya serta dukungan yang tiada habisnya.

9. Ayahanda tercinta Herybertus Satinem (alm) terimakasih atas nasehat dan pengorbanan yang kau berikan untukku semasa hidup mu.

10. Istriku tercinta Caecilia Erlin Desiana terima kasih atas dorongan semangat, kasih sayang, cinta, dan doamu.

(10)

13. Teman-teman seperjuangan di Prodi Teknik Elektro 2000: Joko, Niko, Surya, Sigit, Roy, Marsel, Bowo Andre, Wahyu dan semua anak TE 2000. You are the best!

14. Anak kontrakan, Puguh (kumis), Ucok, makasih atas semuanya.

15. Semua pihak yang telah membantu selama penyusunan laporan tugas akhir ini yang tidak dapat penulis sebutkan satu per satu.

Penulis menyadari bahwa tugas akhir ini masih memiliki banyak kekurangan. Oleh sebab itu, segala bentuk saran dan kritik yang bersifat membangun sangat penulis harapkan demi penyempurnaan .

Penulis

(11)

D A F T A R I S I

Hal

HALAMAN JUDUL ……….…….…... i

HALAMAN PENGESAHAN PEMBIMBING …...………... iii

HALAMAN PENGESAHAN PENGUJI………...…... iv

PERNYATAAN KEASLIAN KARYA ………..…………... v

HALAMAN PERSEMBAHAN DAN MOTO HIDUP………... vi

INTISARI ………....………….... vii

1.5. Metodologi Penelitian ... 2

1.6. Sistematika Penulisan ... 3

(12)

3.1. Perancangan Perangkat keras ...13

3.1.1. Rangkaian Sensor ... 13

3.1.2. Rangkaian Sensor rotary encoder... 14

3.1.3 Piringan rotary encoder... 15

3.1.4. Rangkaian Pengondisi Sinyal... 15

3.1.5. Mekanisme alat pengukuran... 19

3.1.6. Mikrokontroler AT89S51 ... 20

3.1.7. Driver motor... 21

3.1.8. Unit Penampil... ... 23

3.2.. Perancangan Perangkat Lunak... 26

3.2.1. Algoritma Perangkat Lunak ... 26

3.2.2. Diagram alir program utama ... 27

3.2.3. Diagram alir subrutin increment cacah pulsa ... 28

BAB IV HASIL PENGAMATAN DAN PEMBAHASAN 4.1. Pengamatan Cara kerja Alat... 30

4.2. Pengamatan Pada sensor... 33

4.3. Pengamatan Pada Pengendali Motor DC... 34

4.4. Proses Pencacahan ... 34 4.5. Perhitungan jumlah pulsa... 4.6. Proses Pengukuran kedalaman...

35 36

BAB V KESIMPULAN DAN SARAN

5.1. Kesimpulan... 5.2. Saran...

40 40

DAFTAR PUSTAKA ...

LAMPIRAN ...

(13)

DAFTAR GAMBAR

Gambar 2.1 Piringan rotary encoder... 5

Gambar 2.2 Pulsa increment encoder ...…...…..5

Gambar 2.3.a Phototransistor... 6

Gambar 2.3.b Sensor rotary encoder...………... 6

Gambar 2.4 Transistor penguat... 7

Gambar 2.5 Schmitt triger... 7

Gambar 2.6 Register TMOD (Timer Mode Control Register)... 8

Gambar 2.7 Register TCON………...………….…... 9

Gambar 2.8 Interrupt Enable Register... 10

Gambar 2.9 Interrupt Priority Register ... 11

Gambar 2.10 Rangkaian LED... 11

Gambar 2.11 Bentuk tampilan seven segment……..…... 12

Gambar 3.1 Diagram blok sistem Pengukur Kedalaman Sumur... 13

Gambar 3.2.a Phototransistor... ... 14

Gambar 3.2.b Sensor rotary encoder... 14

Gambar 3.3 Pulsa rotary encoder... 15

Gambar 3.4 Lebar pulsa... ...……... 16

Gambar 3.5 Rangkaian Pengkondisi sinyal...…….... 17

Gambar 3.6 Gelombang keluaran schmitt triger... 18

Gambar 3.7 Mekanik Alat Pengukur Kedalaman Sumur... 19

Gambar 3.8 Rangkaian reset... 20

Gambar 3.9 Rangkaian osilator... 21

Gambar 3.10 Hubungan L293D dengan mikrokontroler AT89S51... ... 22

Gambar 3.11 Rangkaian indikator LED... 23

Gambar 3.12 Skema dasar konfigurasi saklar menggunakan transistor... 24

Gambar 3.13 Rangkaian penampil seven segment... 26

Gambar 3.14 Diagram alir program utama... 27

Gambar 3.15 Diagram alir subrutin increment cacah pulsa... 29

(14)

Gambar 4.5 Gambar satu pulsa... 36 Gambar 4.6 Grafik error pada pengukuran... 39

(15)

DAFTAR TABEL

Tabel II.1. Mode operasi pemilih timer / counter AT89S51 ... 9

Tabel II.2. Tabel kebenaran seven segment... 12

Tabel 3.2. Logika pada L293D... 23

Tabel 4.1. Tegangan keluaran sensor...33

Tabel 4.2. Pengamatan tegangan pada pengendali motor... 34

Tabel 4.3. Hasil pengukuran dengan beban... 37

Tabel 4.4. Hasil pengukuran dengan menarik tali... 38

(16)

Lampiran 3. Data-sheet AT89S51……...………....……L3 Lampiran 4. Data-sheet Phototransistor………....… .L4 Lampiran 5. Data-sheet Transistor……… ……...L5 Lampiran 6. Data-sheet L293D……… ………...L6 Lampiran 7. Data-sheet seven segment………L7

(17)

BAB I

PENDAHULUAN

1.1. Judul

Alat Pengukur Kedalaman Sumur Berbasis Mikrokontroler AT89S51

1.2. Latar Belakang

Perkembangan elektronika akhir-akhir ini sangat pesat apalagi perkembangan yang terjadi pada mikrokontroler. Mikrokontroler yang ada saat ini sangat luas aplikasinya terutama dalam bidang elektronika. Penggunaan mikrokontroler dalam bidang elektronika misalnya pada sistem kontrol, monitoring, proteksi, juga dalam hal pengukuran. Piranti ini sangat baik untuk melakukan pekerjaan tersebut dengan ditunjang oleh sistem perangkat lunak (software) yang ada.

Mikrokontroler di dalam penelitian ini diaplikasikan sebagai pengukur kedalaman sumur. Setelah data diolah dalam mikrokontroler AT89S51 kemudian hasil olahan data tersebut akan ditampilkan melalui penampil seven segment.

Dengan alat Pengukur Kedalaman Sumur berbasis mikrokontroler AT89S51 ini diharapkan dapat membantu dunia industri maupun kehidupan sehari-hari yang memudahkan manusia dalam hal pengukuran terutama segala sesuatu yang berkaitan dengan pengukuran kedalaman.

1.3. Pembatasan Masalah

Adapun batasan masalah yang dipakai pada penelitian ini adalah : 1. Rotary encoder hanya berfungsi sebagai penghasil cacah pulsa.

2. Optocoupler berfungsi untuk mendeteksi banyaknya jumlah pulsa yang dihasilkan.

3. Alat ini hanya dapat mengukur sampai pada permukaan sumur.

(18)

4. Pemanfaatan mikrokontroler AT89S51 sebagai pengendali dan sarana untuk mengimplementasikan program perhitungan kedalaman sumur. 5. Motor dc sebagai sarana penggerak mekanik.

6. Tampilan untuk jarak kedalaman permukaan air sumur ini menggunakan seven segment.

7. Jangkauan kedalaman maksimal yang diukur 99,95 meter dengan resolusi sebesar 5 cm.

1.4. Tujuan dan manfaat dari Penelitian

Tujuan dan manfaat dari penelitian ini adalah untuk membuat miniatur (prototipe) sistem dari alat pengukur kedalaman sumur berbasis mikrokontroler AT89S51. Sedangkan tujuan sekunder dari penelitian ini adalah :

1. Merancang suatu sistem untuk menghitung kedalaman sumur berbasis mikrokontroler AT89S51.

2. Mengerti dan memahami cara kerja masing-masing rangkaian

3. Dapat merancang rangkaian-rangkaian sensor, seven segment dan pengendali motor dc.

4. Memberi kemudahan dalam pengukuran kedalaman sumur

5. Mengaplikasikan ilmu-ilmu yang telah diperoleh selama kuliah khususnya yang mempelajari mikrokontroler, dan beberapa mata kuliah yang lainnya.

1.5. Metodologi Penelitian

Dalam penulisan Tugas Akhir ini, metode penelitian yang digunakan meliputi :

1. Studi literatur pustaka yang berkaitan dengan mikrokontroler, rotary encoder,dan pengendali motor dc.

2. Membuat rangkaian sensor dan rotary encoder. 3. Membuat program proses perhitungan pencacahan.

(19)

I.6. Sistematika Penulisan

Sistematika penulisan laporan ini terdiri dari : BAB I : PENDAHULUAN

Pada Bab Pendahuluan ini berisikan tentang judul, latar belakang, pembatasan masalah, tujuan penelitian, manfaat penelitian, metodelogi penelitian, dan sistematika penulisan. BAB II : DASAR TEORI

Pada dasar teori ini menjelaskan teori dasar pembentukan dari ‘Alat Pengukur Kedalaman Sumur Menggunakan AT89S51’, yang terdiri dari AT89S51, seven segment, Motor dc, Optocoupler, dan rotary encoder.

BAB III : PERANCANGAN ALAT

Dalam bab ini berisikan tentang perancangan perangkat keras yang terdiri dari rangkaian mikrokontroler AT89S51, rotary encoder, Motor dc, Optocoupler, dan seven segment. Dan

berisikan tentang perancangan perangkat lunak dalam pembuatan alat tersebut.

BAB IV : PENGAMATAN DAN PEMBAHASAN

Pada bab ini akan membahas tentang analisis hasil penelitian yang telah dilaksanakan.

BAB V : KESIMPULAN DAN SARAN

Bab yang terakhir ini merupakan kesimpulan dari alat yang telah dibuat dan berisikan saran-saran untuk pengembangan menuju yang lebih baik.

(20)

2.1. Sensor Posisi

Sensor berfungsi untuk memonitoring dan menganalisis gejala yang terjadi pada posisi suatu benda. Hal ini sangat penting dalam hal mengendalikan posisi dari benda yang dikendalikan.

2.1.1. Sensor Rotary Encoder

Encoder merupakan peralatan mekanis yang dapat memonitor gerakan

atau posisi. Secara khusus encoder menggunakan sensor cahaya untuk memberikan suatu urutan pulsa yang dapat diubah ke dalam gerakan, posisi atau arah. Encoder terbuat dari piringan yang sangat tipis dan LED yang tetap tidak bergerak ditempel sehingga cahaya secara kontinyu difokuskan ke celah piringan. Sebuah cahaya menggerakan transistor yang ditempel pada sisi yang lain dari piringan sehingga dapat mendeteksi cahaya dari LED. Piringan ditempelkan pada motor atau peralatan lain sehingga ketika diputar piringan bergerak. Begitu cahaya dari LED difokuskan pada transistor maka transistor akan saturasi dan 12

gelombang pulsa elektronika akan dihasilkan. Tipe piringan ini digunakan dalam aplikasi yang lebih mudah tetapi ukuran lubang piringan dibatasi sejumlah ketelitian yang ditentukan.

Rotary encoder pada dasarnya dibagi menjadi dua jenis yaitu Increment

Rotary encoder dan Absolute rotary encoder. Increment rotaray encoder relatif lebih murah dan memberikan resolusi sudut yang tinggi dan dapat mendeteksi seberapa kecilnya putaran yang terjadi. Absolute encoder memiliki kelebihan dalam hal transmisi data yang handal terutama apabila terdapat peralatan listrik yang dapat menimbulkan interfensi.

Increment encoder mempunyai kelebihan dibanding Absolute encoder

diantaranya resolusi yang tinggi dan juga murah meskipun terdapat kelemahan. Gambar 2.1. memperlihatkan piringan increment encoder.

(21)

Gambar 2.1 Piringan Rotary encoder

Pada gambar diatas terdapat satu buah sensor. Sensor A dimanfaatkan untuk menentukan piringan berputar searah jarum jam. Pulsa yang dihasilkan oleh incremen encoder ditunjukan pada gambar 2.2.

Pulsa A

Gambar 2.2 Pulsa increment encoder

Sensor merupakan piranti elektronika yang berfungsi sebagai sensor cahaya, yang terdiri dari bagian sumber (source) dan penerima (receiver).

Bagian sumber biasanya berupa LED infra marah, sedangkan penerimanya berupa phototransistor. Sensor dibuat sedemikian rupa sehingga cahaya yang dipancarkan dari sumber dapat diterima dengan baik oleh penerima seperti yang ditunjukan pada gambar 2.3.a. Sensor terbuat dari galium arsenida infrared emiting diode dan silicon phototransistor yang sudah dikemas dalam bentuk

tertentu.

A

(22)

R R

R

5v 5v

Gambar 2.3.a Phototransistor Gambar 2.3.b Sensor Rotary encoder

Dari gambar 2.3.b menunjukan bahwa saat phototransistortidak terhalang maka akan terjadi aliran elektron dari basis menuju emiter sehingga mengakibatkan phototransistor aktif. Dengan kata lain saat dioda infra merah memancarkan cahaya, pada basis phototransistor akan mengalir arus IB sehingga

menghasilkan tegangan VB yang cukup besar sehingga phototransistor ON.

Untuk memaksimalkan tegangan phototransistor, maka phototransistor dibuat bersifat seperti saklar yang terhubung tertutup yang menyebabkan tegangan pada emiternya maksimal VE  VCC, pada keadaan ini phototransistor bekerja

pada daerah jenuh atau saturasi. Dan apabila phototransistor terhalang maka arus pada basisnya sama dengan nol sehingga phototransistor off, dengan demikian tegangan basisnya sangat kecil (VB < VF) pada keadaan ini phototransistor

bersifat seperti saklar yang terhubung buka. Arus kolektor fototransistor pada kondisi ini maksimal yang menyebabkan tegangan VE sangat kecil VE 0, kondisi

demikian sering disebut phototransistor pada keadaan cut-off.

2.1.2. Pengkondisi Sinyal

(23)

dengan kebutuhan unsur berikutnya. Berdasarkan fungsinya, pengondisi sinyal dapat diklasifikasikan sebagai rangkaian pengondisi seperti penguatan dan pelemahan serta rangkaian pengolah seperti konversi tegangan ke frekuensi dan konversi tegangan ke arus.

Untuk menguatkan sinyal yang dihasilkan oleh rotary encoder menggunakan penguat transistor seperti ditunjukan pada gambar 2.4 berikut ini.

Gambar 2.4. Transistor Penguat

Sinyal yang telah dikuatkan dipicu menggunakan pemicu schmitt trigger agar sinyal keluaran terjadi perubahan yang tajam dari tinggi ke rendah atau sebaliknya. Rangkaian pemicu schmitt trigger menggunakan CMOS Inverting Schmitt Trigger. Rangkaian ini sudah dikemas dalam IC 7414 seperti

diperlihatkan pada gambar 2.5.

Gambar 2.5 Schmitt Triger

R

BD677

Ke schmitt triger

Dari sensor

+5V

(24)

2.2. Mikrokontroler AT89S51

Mikrokontroler AT89S51 merupakan mikrokontroler buatan Atmel yang menguasai teknologi pembuatan FPEROM (Flash Programmable and Erasable Read Only Memory). FPEROM merupakan ROM (Read Only Memory) yang

dapat dihapus dan ditulis kembali dengan teknologi flash. Kelebihan flash ini adalah mikrokontroler dapat menyimpan program secara internal, tidak membutuhkan ROM eksternal.

AT89S51 memiliki 4 kBytes FPEROM, 256 Bytes RAM, 32 jalur I/O (Input/Output), dan dua 16-bit timers/counters.

2.2.1. Timer dan Counter dalam Mikrokontroler AT89S51

Mikrokontroler AT89S51 dilengkapi dengan dua buah timer/counter, yaitu timer 0 dan timer 1. Pencacah timer/counter AT89S51 merupakan pencacah biner

naik (count-up binary counter) yang mencacah dari 0000h sampai FFFFh. Saat kondisi pencacah berubah dari FFFFh kembali ke 0000h akan timbul sinyal limpahan (overflow).

Masing-masing timer juga dapat berfungsi sebagai counter. Pada saat sebagai timer, register naik satu (increment) setiap satu siklus mesin. Pada saat sebagai counter, register naik satu (increment) pada saat transisi dari 1 ke 0 dari masukan eksternal, T0 dan T1.

2.2.2. a. Timer Mode Register (TMOD)

Penggunaan register TMOD yang ditunjukkan pada Gambar 2.6. adalah untuk mengatur kerja Timer 0 dan Timer 1. Register TMOD terbagi atas dua yaitu, bit 0 sampai 3 (TMOD.0 sampai TMOD.3) untuk mangatur kerja Timer 0, sedangkan bit 4 sampai 7 (TMOD.4 sampai TMOD.7) untuk mengatur kerja Timer 1. Register TMOD merupakan register yang tidak bit addressable.

GATE C/T M1 M0 GATE C/T M1 M0

Timer 1 Timer 0

(25)

GATE : Jika GATE = 1, maka timer/counter “x” aktif bila pin INTx high dan pin TRx juga high.

Jika GATE = 0, maka timer/counter “x” aktif jika hanya pin TRx high.

C/T : low untuk fungsi timer dan high untuk fungsi counter.

M1 dan M0 : pemilih mode timer/counter (Mode 0 sampai Mode3) yang konfigurasinya dapat dilihat pada tabel II.1.

Tabel II.1. Mode operasi pemilih Timer/counter AT89S51

M1 M0 Mode Operasi

0 0 0 Timer/counter 13-bit 0 1 1 Timer/counter 16-bit

1 0 2 Timer/counter 8-bit isi ulang (auto reload) 1 1 3 Gabungan timer/counter 16-bit dan 8-bit

2.2.2.b. Timer control Register Timer 0 dan 1

TCON merupakan bit addressable sehingga bisa diatur per-bitnya (dengan

instruksi SETB atau CLR). Register TCON (gambar 2.7.) berisi pengaturan timer dan interupsi eksternal sekaligus dalam 1 byte.

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Timer1 Interupsi

Gambar 2.7. Register TCON

Jika dalam pemrograman tidak memakai interupsi eksternal, maka IE dan IT dapat diabaikan (diset ‘0’).

TR1 dan TR0: pengatur aktif dan nonaktif timer / counter.

TF1 dan TF0 : penampung bit limpahan (overflow) timer/counter

IE1 dan IE0 : tanda (flag) interupsi eksternal

IT1 dan IT0 : menentukan pen-trigger-an interupsi eksternal.

(26)

2.2.2.c. THx dan TLx (x adalah penomoran Timer)

Pengaksesan timer masing-masing memerlukan dua register 8-bit. Timer 0 melalui TH0 (Timer 0 High Byte) dan TL0 (Timer 0 Low Byte), sedangkan timer 1 melalui TH1 (Timer 1 High Byte) dan TL1 (Timer 1 Low Byte).

2.2.3. Sistem Interupsi

Interupsi merupakan suatu sarana dalam mikrokontroler yang sangat berperan dalam penanganan sistem input/output. Dalam proses interupsi, terjadinya sesuatu pada perangkat keras akan dicatat pada flip-flop tertentu yang sering disebut petanda (flag). Catatan dalam petanda tersebut diatur sedemikian rupa sehingga merupakan sinyal permintaan interupsi pada prosesor.

Program yang dijalankan dengan cara tersebut dinamakan sebagai program pelayanan interupsi (ISR – Interrupt Service Routine). Saat prosesor menjalankan ISR, pekerjaan yang sedang dilakukan dalam program utama ditinggalkan sementara. Selesai menjalankan ISR program utama kembali dijalankan.

AT89S51 menyediakan 5 sumber interupsi yakni : interupsi external 0, interupsi external 1, interupsi timer 0, interupsi timer 1, dan interupsi port serial. Setiap sumber interupsi dapat diaktifkan atau dinonaktifkan dengan mengatur interrupt enable (IE) bit dalam SFR.

Dalam mikrokontroler AT89S51 terdapat dua register khusus yang dapat digunakan untuk mengatur sistem interupsi yakni interrupt enable (IE) register dan interrupt priority (IP) register.

EA - - ES ET1 EX1 ET0 EX0

Gambar 2.8.Interrupt Enable Register

Enable bit = 1, mengijinkan interupsi tersebut.

(27)

- - - PS PT1 PX1 PT0 PX0

Gambar 2.9.Interrupt Priority Register

Keadaan tinggi pada salah satu bit membuat bit tersebut berada dalam prioritas tinggi. Register TCON menyediakan 4 bit yang dapat juga digunakan untuk mengatur interupsi.

2.3. Display/ Penampil

Penampil yang digunakan adalah dioda pemancar cahaya dan seven segment. Konfigurasi dioda terbagi atas dua yaitu konfigurasi common annoda

dan common cathoda. Untuk konfigurasi common annoda, kaki-kaki annoda-nya dihubung menjadi satu sedangkan untuk konfigurasi common cathoda kaki-kaki cathoda-nya yang dihubung menjadi satu.

Penampil yang digunakan pada rangkaian ini menggunakan konfigurasi common annoda.

2.3.1. Dioda Pemancar cahaya

Dioda pemancar cahaya (Light Emiting Dioda atau LED) bila diberi pra-tegangan maju akan memancarkan cahaya. Gambar 2.10. menunjukkan rangkaian LED yang dihubungkan dengan resistansi secara seri.

1,5V sampai 2 V, sehingga nilai Ra dapat dicari dengan persamaan berikut :

(28)

2.3.2. Penampil Seven Segment

Gambar 2.11. Bentuk Tampilan Seven Segment

Pada seven segment, untuk menampilkan suatu lambang harus dinyalakan tiap segment yang berkaitan dengan lambang tersebut yang digerakkan oleh saklar. Sebagai contoh, bila diinginkan desimal 8 menyala, saklar a, b, c, d, e, f, g ditutup, maka segment LED a, b, c, d, e, f, g menyala sehingga pada seven segmentakan tertampil desimal 8.

Seven segment tersebut mempunyai hubungan common anode yaitu anoda-anoda terhubung satu sama lain. Pada kaki-kaki katoda dipasang resistor sebagai penahan arus dan saklar sebagai fungsi driver.

(29)

BAB III

PERANCANGAN ALAT

3.1. Perancangan Perangkat Keras

Pengukur kedalaman sumur berbasis mikrokontroler AT89S51 ini memiliki tiga bagian utama yaitu masukan, pengontrol dan keluaran. Piranti masukannya adalah rangkaian sensor rotary encoder dan rangkaian sensor optocoupler yang dihubungkan ke pengkondisi sinyal. Piranti kontrolnya adalah mikrokontroler AT89S51, sedangkan piranti keluarannya digunakan penampil seven segment empat digit yang menunjukkan kedalaman sumur.

Trafo

Gambar 3.1. Diagram Blok Sistem Pengukur Kedalaman Sumur

3.1.1. Rangkaian Sensor

Dalam perancangan ini membutuhkan dua buah sensor. Kedua sensor yang digunakan mempunyai fungsi yang berbeda. Yang satu berfungsi untuk menentukan posisi awal dari benda saat sistem direset. Sensor berikutnya berfungsi untuk memonitor posisi akhir benda yang digerakan.

(30)

3.1.2. Rangkaian sensor rotary encoder

Rotary encoder terdiri dari LED infra merah, piringan bercelah dan

phototransistor. Rotary encoder ini akan bekerja saat motor mulai berputar,

dengan tali yang dihubungkan dari motor ke rotary encoder maka bersamaan dengan perputaran motor maka rotary encoder akan berputar. Tali yang digunakan untuk memutar rotaray encoder ini berfungsi juga sebagai penduga kedalaman sumur yang akan diukur. Dalam perancangan ini tali penduga yang digunakan minimal sepanjang 100 meter. Pada saat rotary encoder mulai berputar maka sensor optocoupler akan mulai bekerja dan akan menghasilkan suatu gelombang pulsa elektronik. Dari banyaknya pulsa elektronik inilah yang nantinya akan diproses oleh mikrokontroler menjadi jarak kedalaman sumur. Rangkaian phototransistor ditunjukan pada gambar 3.2.a. Dan rangkaian elektronis dari

sensor rotary encoder diperlihatkan pada gambar 3.2.b.

4K7 150

4K7

5v 5v

Gambar 3.2.a. Phototransistor Gambar 3.2.b. sensor rotary encoder

(31)

Karena dipasaran tidak terdapat nilai resistor seperti hasil perhitungan maka dalam perancangan menggunakan resistor dengan nilai 150 .

Jika cahaya dari dioda dihalangi maka phototransistor akan off, sehingga tegangan kolektor phototransistormenjadi rendah. Saat tegangan kolektor rendah VCE = 0,3V dan Ic = 1mA maka nilai Rc dapat diperoleh dengan persamaan:

Rc =

Piringan bercelah terdapat 8 buah celah. Celah-celah tersebut melewatkan atau menghalangi sorotan cahaya yang akan diterima oleh phototransistor. Keluaran phototransistor terbentuk sesuai dengan ada tidaknya sorotan cahaya. Kondisi ini akan menghasilkan suatu gelombang kotak pada keluaran phototransistor. Bentuk gelombang diperlihatkan pada gambar 3.3 berikut ini:

pulsa

A

Gambar 3.3. Pulsa rotary encoder

Sensor tersebut dipasang dengan posisi tertentu agar membentuk gelombang keluaran. Untuk mendapatkan jumlah pulsa dalam satu putaran dapat mengunakan persamaan sebagai berikut:

 = Keliling lingkaran

(32)

 = 3,14

d = diameter lingkaran

Jumlah celah yang digunakan dalam perancangan ini sebanyak 8 celah. Setiap celah mempunyai jarak yang sama. Jarak setiap celah besarnya 2,5 cm. Karena piringan terdiri dari celah dan tidak celah maka satu siklus gelombang yag terjadi oleh perubahan terang dan gelap mempunyai jarak dua kali jarak celah. Dari persamaan diatas dapat dihitung menggunakan persamaan 3.1 yang berarti satu pulsa sama dengan 5 cm dengan diameter roda putar piringan adalah 6,369 cm. Hasil perhitungan adalah sebagai berikut:

1pulsa =

Jika digambarkan dalam bentuk pulsa akan terlihat seperti gambar 3.4. berikut ini: 2,5 cm

5 cm

Gambar 3.4. Lebar pulsa

(33)

= 1999 pulsa

3.1.4. Rangkaian Pengkondisi Sinyal

Pada bagian ini berfungsi untuk mengkondisikan sinyal dari sensor posisi sebelum sinyal itu masuk ke mikrokontoler AT89S51. Rangkaian yang digunakan berfungsi agar dapat dibaca oleh mikrokontroler.

7414

Dari gambar 3.5 rangkaian pengkondisi sinyal ini terdiri dari transistor NPN dan inverter yang dikemas dalam IC74LS14.

Saat phototransistor cutoff transistor saturasi dengan IB = 1mA, sehingga

IC dapat diperoleh dengan persamaan sebagai berikut:

IC = .IB ;  = 750

IC = 750.1 mA = 750 mA

Berdasarkan perhitungan diatas IC merupakan arus maksimal yang

dihasilkan oleh transistor. Pada perancangan sudah diketahui Vcc = 5V dan Rc = 1K. Ketika transistor saturasi maka VCE = 0,3V. Dengan demikian Ic dapat

diperoleh dengan persamaan sebagai berikut:

(34)

Ketika Ic = 0 maka:

VCE = Vcc – Ic.Rc

VCE = 5 – 0

VCE = 5Volt

Sinyal dari penguat sinyal dibutuhkan untuk menggerakan rangkaian masukan pada CMOS inverter schmitt trigger. Sinyal keluaran transistor penguat terjadi perubahan dari tinggi ke rendah dan dari rendah ke tinggi belum sempurna. Untuk itu digunakan schmitt trigger agar dapat menghasilkan gelombang keluaran dengan perubahan yang tajam. Gambar 3.6 memperlihatkan bentuk gelombang keluaran schmitt trigger. Keluaran dari schmitt triger diumpankan ke kaki P3.4 pada mikrokontroler.

A P3.4

Gambar 3.6. Gelombang Keluaran SchmittTtrigger

(35)

3.1.5. Mekanisme Alat Pengukuran

G

3.7. Mekanik Alat Pengukur Kedalaman Sumur ON/FF

Start

Tali

Deteksi Posisi Kedalaman Limit Switch 2

Limit switch 1 Optocoupler

Air Sumur Tali

Motor Rotary

encoder

(36)

3.1.5.a. Saat pengukuran

Pada gambar 3.7 diatas untuk melakukan pengukuran, tombol start ditekan maka kondisi limit switch 1 menjadi ON yang mengakibatkan motor akan mulai berputar CCW, hal ini menunjukan bahwa proses pengukuran dimulai. Bersamaan dengan itu rotary encoder berputar CCW untuk memulai pencacahan hingga deteksi posisi menyentuh permukaan air.

Saat deteksi posisi kedalaman mencapai permukaan air maka tali akan mengendor yang mengakibatkan limit switch 1 menjadi kondisi OFF, dan motor akan berhenti berputar, itu berarti rotary encoder akan berhenti mencacah. Hasil dari awal pencacahan sampai akhir pencacahan akan diproses oleh mikrokontroler dan akan ditampilkan pada seven segment sebagai hasil pengukuran.

3.1.5.b. Selesai pengukuran

Setelah hasil pengukuran diperoleh, pada saat limit swich 1 off kondisi ini digunakan untuk memutar balik arah putaran motor. Motor akan berputar CW dan deteksi posisi kedalaman akan naik. Saat deteksi posisi kedalaman menyentuh limit switch 2 maka hal itu akan mengakibatkan motor akan berhenti berputar, hal

ini menunjukan bahwa pengukuran sudah selesai.

3.1.6. Mikrokontroler AT89S51 3.1.6.a. Rangkaian Reset

Rangkaian reset digunakan untuk mereset mikrokontroler pada saat catu daya dihidupkan seperti pada gambar 3.8.

(37)

Keadaan reset pada mikrokontroler diperoleh apabila pin reset diberi logika tinggi (biasanya dalam waktu beberapa milidetik). Waktu reset tersebut dapat dihitung dengan rumus T = RC. Pada perancangan ini waktu reset 100 ms dengan menggunakan kapasitor C = 10 µF, maka nilai resistansi dapat dihitung :

100 ms = 10 µF x R R = 100.10-3 / 10.10-6 R = 10 K.

Cara kerja rangkaian reset adalah sebagai berikut, bila tegangan catu dihidupkan arus akan mengalir melewati kapasitor sehingga akan menimbulkan beda tegangan pada resistor. Tegangan pada pin reset merupakan beda tegangan antara Vcc dengan kapasitor.

3.1.6.b. Rangkaian Osilator

Mikrokontroler mempunyai rangkaian osilator internal (on-chip oscillator) yang dapat digunakan sebagai sumber clock bagi CPU. Untuk dapat menggunakan rangkaian osilator dalam chip tersebut, harus ditambahkan sebuah kristal dan dua buah kapasitor pada pin XTAL1 dan pin XTAL2 (pin 19 dan pin 18 ) seperti pada gambar 3.9. kapasitor 30 pF sehingga frekuensi detak pada CPU adalah 12 MHz.

3.1.7.Driver Motor DC

Driver motor DC yang digunakan yaitu L293D. Port-port mikrokontroler

(38)

P2.1 berfungsi untuk mengirim sinyal ke pin input 2 L293D. Port P2.2 sebagai pengirim sinyal bagi enable 1 L293D. Hubungan L293D dengan mikrokontroler dapat dilihat pada gambar 3.10.

M

AT89S51 L293D

Gambar 3.10. Hubungan L293D dengan mikrokontroler AT89S51

Untuk menggerakan motor dc, pin enable L293D harus berlogika tinggi dengan demikian akan ada tegangan output jika ada input yang diberikan melalui pin L293D. Sebaliknya jika pin enable berlogika rendah maka tegangan output

akan nol meskipun ada input yang diberikan.

Dari gambar 3.11, untuk mengatur arah putaran motor dapat dilakukan dengan cara sebagai berikut:

1. Pin enable 1 dan input 1 berlogika tinggi,input 2 berlogika rendah, maka output 1 berlogika tinggi dan output 2 berlogika rendah. Dengan demikian motor dc akan berputar ccw.

2. Pin enable 1 dan input 2 berlogika tinggi,input 1 berlogika rendah, maka output 2 berlogika tinggi dan output 1 berlogika rendah. Dengan

demikian motor dc akan berputar cw.

3. Jika pin enable berlogika tinggi dan kedua input berlogika rendah, maka tegangan kedua outputnya nol, dan juga jika pin enable berlogika rendah, maka tegangan kedua outputnya nol meskipun ada kedua input berlogika tinggi.

P2.2 P2.1 P2.0

Out 2

EN1 IN2 IN1 Out 1

(39)

4. Jika pin enable berlogika tinggi dan kedua pin input berlogika tinggi, maka kedua outputnya berlogika rendah.

Hubungan logika dari rangkaian yang dibuat dapat dilihat pada tabel 3.1.

Tabel 3.1. Logika pada L293D

Enable 1 Input 1 Input 2 Output1 Output 2 Motor dc

H H H L L Diam

LED yang diberi pra-tegangan maju akan memancarkan cahaya, untuk rangkaian seperti ditunjukkan pada gambar 3.11.

Vd 5Volt

330 Ra

Gambar 3.11. Rangkaian indikator LED

Pada perancangan rangkaian ini, berdasarkan data sheet Vd = 1,7 Volt dan

d

I

= 10mA serta Vcc yang digunakan adalah 5 Volt, maka nilai Ra adalah:

Jadi resistor yang digunakan adalah 330 Ω sebagai hambatan penahan arus

yang melewati LED.

(40)

Untuk menampilkan datanya dengan metode scanning, yaitu pengiriman data keluaran dari mikrokontroler ke seven segment secara bergantian dan dengan cepat sehingga terlihat seakan-akan hidup secara bersamaan.

Transistor PNP A733 yang digunakan berfungsi sebagai saklar untuk menghubungkan antara seven segment dengan tegangan Vcc seperti terlihat pada gambar 3.12.

Gambar 3.12. Skema Dasar Konfigurasi Saklar Menggunakan Transistor

Agar transistor menjadi ON (kondisi jenuh) maka pada keluaran port P1.0 harus diberi logika 0 sehingga terdapat arus yang mengalir dari Vcc ke CA.

Transistor saat berada dalam kondisi saturasi seperti sebuah saklar yang tertutup dari terminal emiter ke kolektor dan apabila transistor dalam kondisi cut off maka transistor seperti sebuah saklar yang terbuka dari terminal emiter ke

kolektor. Resistor RB dan RE digunakan sebagai pembatas arus yang masuk ke

dalam transistor. Arus kolektor transistor adalah ICIEIB, karena nilai IB sangat kecil maka nilai ICIE. Dari data sheet transistor A733 dapat diperoleh besar arus penguatan dc (hfe) adalah 60, arus kolektor (IC) maksimal 100mA

(41)

20mA, maka ditentukan nilai IC saturasi 10mA yang disesuaikan dengan arus minimal LED.

Saat keluaran Port P1.0 bernilai 0, P1.0 = 0 maka transistor berada dalam keadaan aktif, dan diperoleh persamaan sebagai berikut:

Dari data sheet A733, VEB 0,7V, IC 10mA, VEC 0,18V , VLED 1,7V .

Besarnya nilai RE berdasarkan persamaan di atas adalah :

E

digunakan resistor yang mendekati harga tersebut yaitu resistor sebesar 330Ω. Saat transistor saturasi IB mencapai nilai jenuh sebesar :

mA

Maka besarnya nilai RB yang digunakan sebagai penahan muka arus yang masuk ke transistor melalui kaki basis adalah :

Dalam perhitungan di dapat nilai RB sebesar 18682,6Ω maka digunakan resistor yang mudah di dapat di pasaran, yaitu resistor sebesar 18KΩ.

(42)

3.1.8.b. Rangkaian penampil dengan seven segment

Rangkaian penampil yang digunakan adalah seven segment empat digit yang langsung dihubung dengan mikrokontroler AT89S51 pada port P0 sebagai saluran data. Dan port P1.0, P1.1 serta P1.2 digunakan sebagai saklar yang menghubungkan antara Vcc dan CA (Common Anoda) pada seven segment, seperti ditunjukkan pada gambar 3.13.

P0.0/AD0

Gambar 3.13. Rangkaian Penampil seven segment

3.2. PERANCANGAN PERANGKAT LUNAK 3.2.1. Algoritma Perangkat Lunak

(43)

Algorima ini diuraikan menjadi Program Utama dan subrutin-subrutin, seperti : subroutin program counter-up dan subroutine program counter-down.

3.2.2 Diagram Alir Program Utama

Diagram alir program utama ditunjukkan pada gambar 3.14.

Inisialisasi

Gambar 3.14. Diagram alir program utama

(44)

hingga mencapai posisi awal. Jika dari pengecekan beban sudah pada posisi awal maka putaran motor akan dimatikan. Selanjutnya program akan melakukan perintah untuk menghidupkan interupsi. Saat interupsi mulai dihidupkan lalu putaran motor akan berputar menggerakan beban ke bawah. Selama putaran motor berputar menggerakan beban ke bawah mikrokontroler juga akan memulai proses increment penghitungan pulsa, setelah itu akan di cek kembali apakah sensor jarak sudah pada posisi off atau belum, jika sensor jarak belum berada pada posisi off maka motor akan terus berputar dan proses perhitungan juga terus dijalankan. Jika sensor jarak sudah berada pada posisi off maka putaran motor akan dimatikan dan proses interupsi juga akan dimatikan. Untuk seterusnya hasil perhitungan akan di tampilkan ke seven segment lalu di transfer ke PC melalui port serial.

3.2.3 Diagram Alir subrutin increment cacah pulsa

Proses increment cacah pulsa pada gambar 3.15, nilai awal akan dimulai dengan nol untuk nilai satuan, puluhan dan dua digit dibelakang koma. Saat rotary encoder mulai berputar maka program mulai melakukan proses increment cacah pulsa hingga rotary encoder berhenti atau motor penggerak berhenti. Dalm program ini angka dua digit dibelakang koma diinisialkan sebagai A dan B, untuk A adalah sebagai satuan dan B sebagai puluhan.

(45)

START

A= 0 ?

Tambahkan 5 ke A

Tidak

Nolkan A

B= 9 ?

Nolkan B

Satuan = 9 ?

Nolkan satuan Increment

puluhan

Puluhan = 10 ?

Matikan motor

Tampilkan 7'S

RET

Tidak

Increment B

Increment satuan Tidak

Tidak Ya

Ya Ya Ya

Gambar 3.15. Diagram alir subrutin increment cacah pulsa

(46)

Pada bab ini akan dibahas tentang hasil akhir dari alat yang dibuat. Untuk mengetahui apakah alat yang sudah jadi sesuai dengan rancangan awal atau tidak. Untuk mengetahui tegangan masukan dan tegangan keluaran digunakan alat ukur multimeter digital, juga akan dibahas tentang cara kerja alat apakah sudah sesuai dengan rancangan yang dibuat.

4.1. Pengamatan Cara Kerja Alat

Pertama kali alat dihidupkan tampilan pengukur kedalaman akan menunjukkan angka 00.00, yang menandakan bahwa rotary encoder belum mulai berputar. Selanjutnya tombol start ditekan, yang menandakan bahwa alat siap digunakan. Dengan menekan tombol start akan memberi masukan pada pengendali motor, sehingga motor akan mulai berputar berlawanan arah jarum jam. Kemudian rotary encoder akan mulai berputar dan sensor optocoupler akan mulai mendeteksi celah-celah pada piringan rotary. Jika sensor optocoupler terhalang maka keluaran dari sensor berlogika rendah (0), sedangkan jika sensor tidak terhalang maka keluaran dari sensor tersebut berlogika tinggi (1). Dari hasil keluaran sensor yang berupa pulsa inilah yang akan digunakan oleh mikrokontroler untuk melakukan proses perhitungan sampai saat limit switch 1 pada kondisi off. Hasil dari proses perhitungan yang dilakukan oleh mikrokontroler akan ditampilkan oleh seven segment sebagai hasil pengukuran dan kondisi berganti untuk mengembalikan ke posisi awal ( memutar balik arah putaran motor ). Pada Gambar 4.1. dapat dilihat foto hasil akhir alat pengukur kedalaman sumur berbasis mikrokontroler AT89S51.

.

(47)

A F G B

H C

D I E J

Gambar 4.1. Foto alat secara keseluruhan

Keterangan gambar : A. Tombol start B. Seven segment

C. Piringan rotary encoder D. Sensor optocoupler E. Beban

F. Tombol ON/OFF G. Limit switch 1 H. Motor

I. Penggulung tali J. Limit switch 2

(48)

Gambar 4.2. Foto alat tampak depan

(49)

Gambar 4.3. menunjukkan bahwa alat berada pada tampilan maksimal, ini dapat dilihat dari hasil tampilan yang menunjukkan angka 99.95. Tampilan maksimal ini diperoleh dengan cara memutar piringan rotary encoder menggunakan tali yang ditarik.

4.2. Pengamatan pada sensor

Sensor ini menggunakan sensor optocoupler yang diletakan pada ujung piringan rotary.

Cara kerja dari sensor ini adalah pada saat phototransistor mendapat sinar dari LED inframerah dalam artian sensor tidak terhalang, maka phototransistor on. Sehingga masukan ke schemitt triger SN74LS14 akan berlogika tinggi (1).

Keluaran dari schmitt triger SN74LS14 akan berlogika rendah (0).

Pada saat sinar inframerah terhalang maka phototransistor off, sehingga keluaran dari sensor akan berlogika rendah (0) dan keluaran dari schmitt trigerr SN74LS14 akan berlogika tinggi (1).

Tegangan keluaran pada sensor phototransistor dapat dilihat pada tabel 4.1. berikut :

Tabel 4.1. Tegangan keluaran sensor

Kondisi sensor Tegangan masukan

schmitt triger SN74LS14

Tegangan keluaran

schmitt trigerSN74LS14

Tidak terhalang 4.8V 0.2V

Terhalang 0.42V 5V

Dari tabel 4.1 dapat dilihat tegangan keluaran pada sensor optocopler merupakan tegangan masukan pada schmitt triger SN74LS14. Pada saat kondisi tidak terhalang keluaran pada schmitt trigerr SN74LS14 sebesar 0,2V, tegangan keluaran ini sebagai logika ‘0’, dan pada saat kondisi terhalang tegangan keluarannya sebesar 5V, tegangan keluaran ini sebagai logika ‘1’ pada masukan mikrokontroler.

(50)

4.3. Pengamatan Pada Pengendali Motor DC

Pengendali motor dc mendapat masukan dari mikrokontroler melalui logika yang diberikan oleh input 1 dan input 2. Dari hasil pengamatan masukan yang diberikan oleh mikrokontroler ke pengendali motor ditunjukkan pada tabel 4.2 :

Tabel 4.2. Pengamatan tegangan pada pengendali motor dc

Kondisi Motor dc Enable Input 1 Input 2 Output1 Output2

Saat on Diam 5,01 5,01 5,01 0 0

Saat turun Putar kiri 5,01V 5,01V 0 5,01V 0

Saat naik Putar kanan 5,01V 0 5,01V 0 5,01V

Saat

menyen-tuh air Diam 0 0 0 0 0

Dari tabel 4.2 Tegangan keluaran pada mikrokontoler 5,01V dianggap sebagai logika tinggi (1) dan 0 dianggap sebagai logika rendah (0). Tegangan ini merupakan tegangan masukan pada rangkaian pengendali untuk menggerakkan motor.

4.4. Proses pencacahan

Proses pengukuran pada tahap pencacahan dilakukan untuk menentukan berapa jarak kedalaman sumur yang diukur. Kedalaman yang diperoleh dari pencacahan satu putaran penuh pada rotary encoder adalah 19,8 cm.

Hasil ini diperoleh dari persamaan sebagai berikut : 1pulsa = 4,95 cm

1putaran penuh = 4 pulsa Jadi jarak satu putaran = 4,95 cm x 4

= 19,8 cm

(51)

Gambar 4.4. Pulsa keluaran dari rangkaian sensor

Gambar 4.4. merupakan gambar bentuk pulsa keluaran yang dihasilkan oleh rangkaian sensor, dimana pada saat pulsa naik itu berarti sensor pada posisi terhalang dan pada saat pulsa turun sensor berada pada posisi tidak terhalang.

4.5 Perhitungan jumlah pulsa

Untuk mengetahui jumlah pulsa dari jarak yang diperoleh dapat dihitung dengan persamaan berikut :

∑ pulsa =

resolusi jarak

………..( persamaan 4.1 )

(52)

hingga mencapai warna hitam lagi atau dari celah putih hingga mencapai putih lagi. Untuk gambar satu pulsa dapat dilihat pada gambar 4.5.

v

t0 t

Gambar 4.5.a Satu pulsa dimulai celah hitam

v

5V

t0 t Gambar 4.5.b Satu pulsa dimulai celah putih

4.6. Proses Pengukuran Kedalaman 4.6.a. Pengukuran dengan beban

(53)

Tabel 4.3. Hasil pengukuran dengan beban

Kesalahan pengukuran ( galat / error ) diperoleh dari persamaan :

Galat =

4.6.b. Pengukuran dengan cara menarik tali

Proses pengukuran ini dilakukan dengan menarik tali secara manual untuk memperoleh kedalaman maksimal yang dapat dihasilkan oleh alat pengukur. Pada cara ini pengukuran dilakukan setiap kelipatan 5 meter, dari hasil pengukuran ini diperoleh data seperti pada tabel 4.4.

(54)

Tabel 4.4. Hasil pengukuran dengan menarik tali

NO Jarak sebenarnya (m )

Terukur oleh alat ( m )

Galat (%)

1 5 05.15 3.00

2 10 10.35 3.50

3 15 15.60 4.00

4 20 20.90 4.50

5 25 26.15 4.60

6 30 31.50 5.00

7 35 36.90 5.42

8 40 42.25 5.62

9 45 47.80 6.22

10 50 53.30 6.60

11 55 58.90 7.09

12 60 64.40 7.33

13 65 70.10 7.84

14 70 75.60 8.00

15 75 81.15 8.20

16 80 86.60 8.25

17 85 92.25 8.52

18 90 98.05 8.94

(55)

0 1 2 3 4 5 6 7 8 9 10

0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95

Jarak (m)

G

a

la

t

(%

)

Gambar 4.6. Grafik error pada pengukuran

Dari gambar 4.6. dapat diketehui bahwa error yang diperoleh dari hasil pengukuran selalu mengalami kenaikan sejalan dengan bertambahnya kedalaman sumur. Jumlah error maksimal yang diperoleh dari hasil pengukuran sebesar 8,94%. Error maksimal ini terjadi pada saat pengukuran mencapai jarak 90 m.

(56)

5.1 Kesimpulan

Berdasarkan dari pengamatan alat yang telah dilakukan, dapat diperoleh beberapa kesimpulan antara lain :

1. Semakin dalam jarak pengukuran maka error yang dihasilkan semakin besar.

2. Tampilan alat pengukur mulai dari 00.00 meter sampai 99.95 meter.

5.2 Saran

Hasil perancangan alat pengukur kedalaman sumur ini masih memiliki beberapa kelemahan. Dengan mengacu pada kekurangan hasil perancangan, maka disarankan:

1. Penambahan pembuatan mekanik untuk letak motor, penggulung tali, letak dan beban yang digunakan agar alat dapat berfungsi secara maksimal.

2. Peletakan sensor pada piringan rotary, limit switch agar lebih baik lagi sehingga alat dapat bekerja dengan baik.

3. Untuk pengembangan alat, sumber tegangan dapat menggunakan batere.

(57)

DAFTAR PUSTAKA

1. Budiharto, Widodo. Interfacing Komputer dan Mikrokontroler. Jakarta: PT Elexmedia Komputindo Kelompok Gramedia. 2004

2. Malvino, Albert Paul, Electronics Principles, The McGraw-Hill Companies, 1997

3. Putra, Afgianto Eko, Belajar Mikrokontroler AT89C51/52/55 Memori dan Aplikasi,Edisi 2. Penerbit Gava Media, Yogyakarta 2002.

(58)
(59)

Listing Program

;Tugas Akhir

;Pengukur Kedalaman Sumur ;Inisialisasi

satuan equ 30h ; alamat penyimpanan data satuan

Puluhan equ 31h ; alamat penyimpanan data puluhan

Ratusan equ 32h ; alamat penyimpanan data ratusan

Ribuan equ 33h ; alamat penyimpanan data ribuan

Data1 equ 34h

setb p1.0 ; set p1.0 logika tinggi

setb p1.1 ; set p1.1 logika tinggi

setb p1.2 ; set p1.2 logika tinggi

On:

acall Tampilan ; panggil subrutin tampilan

jb p1.2,On ; cek tombol start ditekan, jika tidak lompat ke on

mulai:

mov tcon,#00 ; reset tcon

mov th0,#00 ; isi th0 dengan 00H

mov Tl0,#00 ; isi tl0 dengan 00H

mov Jumlah,#00 ; isi jumlah dengan data 00

mov satuan,#00 ; isi satuan dengan data 00

mov Puluhan,#00 ; isi puluhan dengan data 00

mov Ratusan,#00 ; isi ratusan dengan data 00

mov Ribuan,#00 ; isi ribuan dengan data 00

clr p2.0 clr p2.1 clr p2.2

acall MotorTurun ; panggil subrutin motor turun

mov Tmod,#00011101b ; pindahkan Tmod dengan #1DH

setb tr0 ; hiduokan timer 0

(60)

clr tr0

acall Tunda ; panggil subrutin tunda

acall Tampilan ; panggil subrutin tampilan

acall MotorNaik ; panggil motor naik

naik:

acall Tampilan ; panggil subrutin tampilan

jb p1.1,naik ; lompat ke naik jika p1.1 logika tinggi

acall MotorHenti ajmp awal MotorTurun:

setb p2.0 ; enable dibuat high

setb p2.1 ; in 1 dibuat high

clr p2.2 ; in 2 dibuat low

ret MotorNaik:

setb p2.0 ; enable dibuat high

setb p2.2 ; in 2 dibuat high

mov Data1,Th0 ; isi data 1 dengan data Th0

mov Data2,Tl0 ; isi data 2 dengan data Tl0

mov Jumlah,#00 ; isi jumlah dengan data #00H

mov r2,Data1 ; pindahkan isi data 1 ke r2

mov r3,Data2 ; pindahkan isi data 2 ke r3

mov Jumlah,#00 ; isi jumlah dengan data #00H

mov r1,#00 ; isi r1 dengan data #00H

mov a,r2 ; isi accumulator dengan data r2

cjne a,#0,Tinggi ; bandingkan acc dengan #0, jika tidak sama loncat ke tinggi

(61)

acall Hitung1 ; panggil subrutin hitung 1

acall Tampil ; panggil subrutin tampil

ret Tinggi:

mov Simpan,r2 ; pindahkan data r2 ke alamat simpan

acall Hitung2 ; panggil subrutin hitung2

mov a,r3 ; pindahkan data r3 ke acc

mov r2,Simpan ; pindahkan data simpan ke r2

add a,r2 ; tambahkan data r2 dengan acc

acall Hitung1 ; panggil subrutin hitung1

acall Tampil ; panggil subrutin tampil

ret Hitung2:

cjne r1,#0ffh,Cek2 ; bandingkan r1 dengan #0FFH, jika tidak sama loncat ke cek2

mov r1,#00 ; jika sama isi r1 dengan data #00

djnz r2,Hitung2 ; cek r2, jika r2 tidak sama dengan 0 loncat ke hitung2

ret Cek2:

inc r1 ; naikan r1

mov r4,#00 ; isi r4 dengan #00H

inc satuan ; naikan alamat satuan

mov r4,satuan ; isi r4 dengan data satuan

cjne r4,#2,Hitung2 ; bandingkan r4 dengan data2, jika tidak sama loncat ke hitung2

mov satuan,#00 ; jika sama isi satuan dengan #00H

mov r4,#00 ; isi r4 dengan #00H

inc Puluhan ; naikan alamat puluhan

mov r4,Puluhan ; isi r4 dengan data puluhan

cjne r4,#10,Hitung2 ; bandingkan r4 dengan data10, jika tidak sama loncat ke hitung2

mov satuan,#00 ; jika sama isi satuan dengan #00H

mov Puluhan,#00 ; isi puluhan dengan #00H

mov r4,#00 ; isi r4 dengan #00H

inc Ratusan ; naikan alamat ratusan mov r4,Ratusan ; isi r4 dengan data ratusan

cjne r4,#10,Hitung2 ; bandingkan r4 dengan data10, jika tidak sama loncat hitung2

mov satuan,#00 ; jika sama isi satuan dengan #00H

mov Puluhan,#00 ; isi puluhan dengan #00H

mov Ratusan,#00 ; isi ratusan dengan #00H

mov r4,#00 ; isi r4 dengan #00H

inc Ribuan ; naikan alamat ribuan

mov r4,Ribuan ; isi r4 dengan data ribuan

cjne r4,#10,Hitung2 ; bandingkan r4 dengan data10, jika tidak sama loncat hitung2

(62)

Cek1:

inc Jumlah ; naikan alamat jumlah

mov r4,#00 ; isi r4 dengan data 0

inc satuan ; naikan alamat satuan

mov r4,satuan ; isi r4 dengan alamat satuan

cjne r4,#2,Hitung1 ; bandingkan r4 dengan data2, jika tidak sama loncat ke hitung1

mov satuan,#00 ; isi satuan dengan #00H

mov r4,#00 ; isi r4 dengan data #00H

inc Puluhan ; naiakan alamat puluhan

mov r4,Puluhan ; isi r4 dengan alamat puluhan

cjne r4,#10,Hitung1; bandingkan r4 dengan #10H, jika tidak sama loncat ke hitung1

mov satuan,#00 ; isi satuan dengan #00H

mov Puluhan,#00 ; isi puluhan dengan data #00H

mov r4,#00 ; isi r4 dengan data #00H

inc Ratusan ; naikan alamat ratusan

mov r4,Ratusan ; isi r4 dengan alamat ratusan

cjne r4,#10,Hitung1; bandingkan r4 dengan #10H, jika tidak sama loncat ke hitung1

mov satuan,#00 ; isi satuan dengan #00H

mov Puluhan,#00 ; isi puluhan dengan #00H

mov Ratusan,#00 ; isi ratusan dengan #00H

mov r4,#00 ; isi r4 dengan #00h

inc Ribuan ; naikan alamat ribuan

mov r4,Ribuan ; isi r4 dengan alamat ribuan

cjne r4,#10,Hitung1; bandingkan r4 dengan #10H, jika tidak sama loncat ke hitung1

ret Tampil:

mov SimpanPort,p2 ; pindahkan dat port2 ke simpan port

mov r6,#7fh ; isi r6 dengan #7FH

mov r1,satuan ; isi r1 dengan data satuan

mov r2,Puluhan ; isi r2 dengan data puluhan

mov r3,Ratusan ; isi r3 dengan data ratusan

mov r4,Ribuan ; isi r4 dengan data ribuan

mov dptr,#Angka5 ; isi dptr dengan data angka5

cjne r1,#0,satu ; bandingkan r1 dengan 0, jika tidak sama loncat ke satu

acall 7s1 ; panggil 7s1

acall 7s2 ; panggil 7s2

sjmp dua ; lompat ke dua

satu:

(63)

acall 7s1 ; panggil 7s1

djnz r1,satu ; decrement r1, jika r1 tidak sama dengan nol loncat ke satu

acall 7s2 ; panggil 7s2

dua:

mov dptr,#Angka ; isi dptr dengan data angka

cjne r2,#0,dua1 ; bandingkan r2 dengan 0, jika tidak sama loncat ke dua1

acall 7s1 ; panggil 7s1

acall 7s2 ; panggil 7s2

sjmp tiga ; lompat ke tiga

dua1:

inc dptr ; naikan dptr

acall 7s1 ; panggil 7s1

djnz r2,dua1 ; decrement r2, jika tidak sama dengan 0, loncat ke dua1

acall 7s2 ; panggil 7s2

tiga:

mov dptr,#AngkaK ; isi dptr dengan data angkaK

cjne r3,#0,tiga1 ; bandingkan r3 dengan 0, jika tidak sama dengan 0 loncat ke tiga1

acall 7s1 ; panggil 7s1

acall 7s2 ; panggil 7s2

sjmp empat ; lompat ke empat tiga1:

inc dptr ; naikan dptr

acall 7s1 ; panggil 7s1

djnz r3,tiga1 ; decrement r3, jika tidak sama dengan 0 loncat ke tiga1

acall 7s2 ; panggil 7s2

empat:

mov dptr,#Angka ; isi dptr dengan data angka

cjne r4,#0,empat1 ; bandingkan r4 dengan 0, jika tidak sama dengan 0 loncat ke empat1

acall 7s1 ; panggil 7s1

acall 7s2 ; panggil 7s2

sjmp SlsKonv ; lompat ke Siskonv empat1:

inc dptr ; naikan dptr

acall 7s1 ; panggil 7s1

djnz r4,empat1 ; decrement r4, jika tidak sama dengan 0 loncat ke empat1

acall 7s2 ; panggil 7s2

SlsKonv:

mov p2,SimpanPort ; kirim data simpan port ke port2 mov satuan,#00 ; isi satuan dengan #00

mov Puluhan,#00 ; isi puluhan dengan #00

mov Ratusan,#00 ; isi ratusan dengan #00 mov Ribuan,#00 ; isi ribuan dengan #00

(64)

orl a,#0fh ; or-kan acc dengan #oFFH

rr a ; geser bit acc ke kanan

mov r6,a ; pindahkan data acc ke r6

mov Putar,#200 ; isi putar dengan data #200

djnz Putar,$ ; decrement putar sebanyak 200x

mov p0,#0ffh ; kirim data #0FFH ke port0

ret 7s1:

clr a ; bersihkan acc

movc a,@a+dptr ; jumlahkan isi acc dengan dptr

ret Subrutin delay Tunda:

mov r7,#10 ; isi r7 dengan dat #10

Tunda1:

mov Th1,#high -50000 ; isi th1 dengan high(50000)

mov Tl1,#low -50000 ; isi tl1 dengan low (50000)

setb tr1 ; hidupkan timer 1

Tunda2:

jnb tf1,$ ; tunggu hingga tf1=0

clr tf1 ; matikan tf1

clr tr1 ; matikan tr1

djnz r7,Tunda1 ; kurangi isi r7 dan lompat ke tunda1 jika tidak0

ret Angka:

db 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H AngkaK:

db 40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H, 00H, 10H Angka5:

(65)

Gambar Rangkaian Alat Pengukur Kedalaman Sumur Berbasis

(66)

(m)

1 45 00.45 0

2 45 00.45 0

3 45 00.45 0

4 45 00.45 0

5 45 00.45 0

Tabel hasil pengukuran kedalaman 70 cm

No Jarak sebenarnya (cm)

Terukur oleh Program

(m)

Galat (%)

1 70 00.70 0

2 70 00.70 0

3 70 00.70 0

4 70 00.70 0

5 70 00.70 0

Tabel hasil pengukuran kedalaman 1.10 m

No Jarak sebenarnya (cm)

Terukur oleh Program

(m)

Galat (%)

1 110 01.10 0

2 110 01.10 0

3 110 01.10 0

4 110 01.10 0

(67)

Tabel hasil pengukuran kedalaman 1.5 m

Tabel hasil pengukuran kedalaman 2.98 m

No Jarak sebenarnya

Tabel 4.8. Hasil pengukuran kedalaman 4.27 m

(68)
(69)
(70)
(71)
(72)
(73)
(74)
(75)
(76)
(77)
(78)
(79)
(80)
(81)
(82)
(83)
(84)
(85)
(86)
(87)
(88)
(89)
(90)
(91)
(92)
(93)
(94)
(95)
(96)
(97)
(98)
(99)
(100)
(101)
(102)
(103)
(104)
(105)
(106)
(107)
(108)
(109)

Gambar

Gambar 4.1      Foto alat secara keseluruhan.......................................................
Gambar 2.1 Piringan Rotary encoder
Gambar 2.3.a Phototransistor    Gambar 2.3.b Sensor Rotary encoder
Gambar 2.4. Transistor Penguat
+7

Referensi

Dokumen terkait

Kesimpulan dari penelitian ini adalah ekspresi protein P13K dan P53 terhadap prediksi respon radioterapi diperoleh nilai IRS P13K pada respon radioterapi baik lebih

3 Wawancara dengan waka kesiswaan di MAN Klaten tanggal 6 Desember 2013.. Tujuan Penelitian dan Manfaat Penelitian 1. Untuk mengetahui peran wakil kepala madrasah bidang

Umbilical cord blood concentrations of labetalol hydrochloride administrated to patients with pregnancy-induced hypertension, and subsequent neonatal findings,Hypertension Research

Key words: alternating sign matrices; Young tableaux; staircases; Schubert polynomials; integrable systems.. 2000 Mathematics Subject Classification:

Perbedaan penelitian ini dengan penelitian sebelumnya yang dilakukan oleh Novita, Nawawi, dan Hakiem (2014) yang berjudul “ Pengaruh pembiayaan murabahah terhadap perkembangan UMKM

Pada web ini bahwa setiap user atau pemakai web ini jika telah men-downloads suatu materi fisika yang disampaikan diweb ini, maka ia bisa mengikuti ujian (test) yang hanya bisa

salah satu syarat untuk menyelesaikan Program Sarjana Strata-1 (S-1), Program Studi Teknologi Pangan, Fakultas Teknologi Pertanian, Universitas Katolik Widya

‘Jika seseorang perempuan yang berkahwin dengan seseorang lelaki melahirkan seorang anak lebih daripada enam bulan qamariah dari tarikh perkahwinannya itu atau