Rangkaian dan Pengujian Sistem Kontrol Aliran Air Dengan Mikrokontroler Atmega8535 Dan Pemograman C

(1)

RANGKAIAN DAN PENGUJIAN SISTEM KONTROL

ALIRAN AIR DENGAN MIKROKONTROLER

ATMEGA8535 DAN PEMROGRAMAN C

TUGAS AKHIR

MARINA ROSADI HARAHAP 122408051

PROGRAM STUDI D3 FISIKA DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(2)

RANGKAIAN DAN PENGUJIAN SISTEM KONTROL

ALIRAN AIR DENGAN MIKROKONTROLER

ATMEGA8535DAN PEMROGRAMAN C

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai ahlimadya

MARINA ROSADI HARAHAP 122408051

PROGRAM STUDI D3 FISIKA DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(3)

PERSETUJUAN

Judul : Rangkaian dan Pengujian Sistem Kontrol Aliran Air Dengan Mikrokontroler

Atmega8535 Dan Pemograman C

Kategori : Tugas Akhir

Nama / Nim : Marina Rosadi Harahap Nomor Induk Mahasiswa : 122408051

Program Studi : Fisika D-III Departemen : Fisika

Fakultas : Matematika Dan Ilmu Pengetahuan Alam (Fmipa) Universitas Sumatera Utara

Diluluskan Di Medan, 28 Juli 2015

Disetujui Oleh

Prodi D-3 Fisika FMIPA USU

Ketua, Pembimbing,

Dr. Susilawati, M.Si Dr. Kerista Tarigan, M.Eng.Sc NIP 197412072000122001 NIP196002031980032001


(4)

PERNYATAAN

Rangkaian Dan Pengujian Sistem Kontrol Aliran Air

Dengan Mikrokontroler Atmega8535 Dan Pemrograman C

TUGAS AKHIR

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

Medan,28Juli 2015

NIM. 122408051


(5)

PENGHARGAAN

Puji syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa, berkatrahmat dan karuniaNya penulis dapat menyelesaikan laporan proyek ini.

Tugas Akhir ini berjudul RANGKAIAN DAN PENGUJIAN SISTEM KONTROL ALIRAN AIR DENGAN MIKROKONTROLER ATMEGA8535 DAN PEMROGRAMAN C, meskipun dalam proses penulisan banyak menemui hambatan dan rintangan namun dengan usaha maksimal yang dilakukan penulis serta bantuan dari berbagai pihak, akhirnya laporan tugas akhir ini dapat selesai. Atas bantuan dan motivasi yang diberikan, maka penulis mengucapkan banyak terimakasih kepada :

1 Bapak Prof. Dr. Sutarman, M.Sc selaku dekan FMIPA USU.

2 Bapak Drs. Marhaposan Situmorangselaku ketua departemen Fisika FMIPA USU.

3 Ibu Dr. Susilawati, S.Si M.si selaku ketua program studi D3 Fisika FMIPA USU.

4 Bapak Dr. Ferdinan Sinuhaji, MS selaku sekertaris program studi D3 Fisika FMIPA USU.

5 Bapak Dr. Kerista Tarigan, M.Eng.Sc selaku dosen pembimbing tugas akhir saya yang telah meluangkan waktu , tenaga dan pikiran untuk membimbing dan mengarahkan penulis dalam menyelesaikan tugas akhir ini.

6 Seluruh dosen yang telah memberikan ilmu pengetahuan selama perkuliahan, yang membuka cakrawala berfikir serta pegawai tata usaha yang ikut mensukseskan proses belajar mengajar.


(6)

7 Teristimewa penulis mengucapkan terimakasih yang sedalam-dalamnya kepada kedua orangtua saya yang telah begitu sabar, memberikan motivasi dalam segala hal, mendoakan saya disetiap saat, dan telah memberikan kepercayaan kepada saya dalam menyelesaikan perkuliahan saya sehingga saya mampu menyelesaikan perkuliahan dan tugas akhir ini dengan baik. 8 Seluruh keluarga besar saya yang selalu memberikan dukungan moral, doa

dan motivasi sehingga saya dapat menyelesaikan perkuliahan dan tugas akhir ini.

9 Kepada teman satu bimbingan Bapak Dr. Kerista Tarigan, M.Eng.Scyang telah sama-sama berjuang, saling membantu, dan bekerjasama dalam bimbingan dan menulis tugas akhir ini.

10 Kepada semua rekan-rekan di D-3 Fisika 2012 yang tak tersebutkan satu persatu, terimakasih atas kerja samanya selama ospek, acara-acara yang digelar bersama dan perkuliahan serta ngelab bersama (Kompak kita dek?). 11 Kepada Abangda FATHURRAHMAN, saya juga mengucapkan banyak

terimakasih atas bantuannya, sehingga saya dapat menyelesaikan tugas akhir ini dengan baik.

Tugas Akhir ini penulis dedikasikan untuk mereka sebagai ungkapan penghargaan atas keikhlasan, kesabaran, dan kasih sayang yang tak terhingga. Hanya Tuhan Yang Maha Esa yang dapat membalas semua jasa dan kebaikan yang penulis terima dari berbagai pihak yang telah membantu dalam penyelesaian laporan proyek ini.

Penulis menyadari dalam penyusunan tugas akhir ini masih terdapat kekurangan dan masih jauh dari kesempurnaan. Oleh karena itu, penulis sangat


(7)

terbuka terhadap saran maupun kritikan dalam sebuah diskusi yang membangun dari pembaca.

Akhir kata penulis mengharapkan semoga tugas akhir ini dapat bermanfaat bagi pembaca.


(8)

SISTEM KONTROL ALIRAN AIR DENGAN MIKROKONTROLER ATMEGA8535

DAN PEMROGRAMAN C

ABSTRAK

Sistem Kontrol Aliran Air Menggunakan Flow Sensor Berbasis Mikrokontroler ATMega8535ini memiliki fungsi untuk mengontrol aliran suatu fluida pada penampungan air atau tangki. Adapun topik bahasan yang dipilih dalam Laporan Tugas Akhir ini adalah mengenai rangkaian mikrokontroler dan pemrograman bahasa C yang input kendalinya berasal dari water flow sensor YF-S201 dan display ditampilkan pada LCD. Rangkaian ini terbagi menjadi dua, yakni perangkat keras dan perangkat lunak. Perangkat keras ini terdiri dari mikrokontroller dan water flow sensor YF-S201. Sedangkan perangkat lunak yang digunakan untuk pemrograman pada mikrokontroler agar dapat mengaktifkan dan mengendalikan sensor flow, yaitu dengan menggunakan bahasa pemrograman bahasa C. Sehinga program-program tersebut dapat mengontrol perangkat keras yang ada pada sistem pengendali aliran air, yang mana program-program itu di simpan sebagai pusat kendali pada mikrokontroller. Adapun untuk pemograman menampilkan volume level air pada LCD menggunakan program bahasa C. Dari pengujian dan analisa yang penulis lakukan pada alat ini, dapat diketahui bahwa Sistem Kontrol Aliran Air ini dapat bekerja sesuai dengan perintah program yang tersimpan pada mikrokontroller.

Kata kunci : water flow sensor YF-S201, mikrokontroler ATMega8535 dan Hall Effect


(9)

DAFTAR ISI

Persetujuan ... i

Pernyataan ... ii

Penghargaan ... iii

Abstrak ... vi

Daftar isi ... vii

Daftar Tabel ... ix

Daftar Gambar ... x

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah ... 1

1.2. Rumusan Masalah ... 2

1.3. Tujuan Penelitian ... 2

1.4. Batasan Masalah ... 3

1.5. Sistematika Penelitian ... 3

BAB 2 LANDASAN TEORI 2.1. Water Flow Sensor YF-S201 ... 5

2.1.1. Spesifikasi Sensor Flow ... 5

2.2. Mikrokontroler ATMega8535 ... 7

2.2.1. Fitur Mikrokontroler ATMega8535 ... 7

2.2.2. Pin-pin Pada Mikrokontroler ATMega8535 ... 8

2.2.3. Peta Memori ATMega8535 ... 10

2.3. Liquid Crystal Display (LCD) 2x16 ... 13

2.4. Bahasa Pemrograman ATMega8535 ... 15

2.5. Bahasa Pemrograman ATMega dengan Bahasa C ... 16

2.5.1. Pendahuluan ... 16

2.5.2. Pengenalan Bahasa C ... 17

2.5.3. Tipe Data ... 18

2.5.4. Header ... 20

2.5.5. Operator Aritmatika ... 20

2.5.6. Operator Pembanding ... 21

2.5.7. Operator Logika ... 22

2.5.8. Operator Bitwase... 23

2.5.9. Operator Penugasan dan Operator Majemuk ... 25

2.5.10.Operator Penambahan dan Pengurangan ... 26

2.5.11.Pernyataan IF dan IF Bersarang ... 27

2.5.12.Pernyataan Switch ... 28

2.5.13.Pernyataan While ... 30

2.5.14.Pernyataan Do ... 30

2.5.15.Pernyataan For ... 31

2.5.16.Software ATMega Editor ... 32

2.6. Debit Air ... 33


(10)

BAB 3 PERANCANGAN DAN PEMBUATAN

3.1. Diagram Blok Rangkaian ... 34

3.1.1. Fungsi Tiap Blok ... 34

3.2. Prinsip Kerja Dari Rangkaian ……… 35

3.3. Rangkaian Power Supplay Adaptor (PSA) ... 36

3.4. Rangkaian Mikrokontroler ATMega8535 ...37

3.5. Perancangan Rangkaian LCD (Liquid Crystal Display) ...38

3.6. Perancangan Sensor water Flow ...39

3.7. Perancangan Relay dan Pompa ...40

3.8. Flowchart Sistem ...42

BAB 4 HASIL DAN PEMBAHASAN 4.1. Pengujian Rangkaian Power Supplay ... 43

4.2. Pengujian Rangkaian Mikrokontroler ATMega 8535 ... 43

4.3. Interfacing LCD 2x16 ... 44

4.4. Pengujian Rangkaian Sensor Water Flow ... 46

4.5. Pengujian Rangkaian Relay dan Pompa Air ... 48

4.6. Program Lengkap ... 49

4.7. Pengujian Alat ... 60

4.8. Analisis Data Pengukuran Laju Aliran Air (Debit) ... 60

BAB 5 KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 65

5.2. Saran ... 65


(11)

DAFTAR TABEL

Tabel 2.1. Pemodifikasi ... 18

Tabel 2.2. Operator Aritmatika ... 21

Tabel 2.3. Operator Pembanding ... 22

Tabel 2.4. Operator Logika ... 22

Tabel 2.5. Operator Bitwase ... 24

Tabel 2.6. Operator Penugasan ... 25

Tabel 2.7. Operator Majemuk ... 26

Tabel 2.8. Operator Pengurangan dan Penambahan ... 26

Tabel 4.1. Tabel Pengujian Pulsa Water Flow Sensor ... 47

Table 4.2 Pengukuran Waktu Aliran Air ... 61


(12)

DAFTAR GAMBAR

Gambar 2.1. Water Flow Sensor YF-S201 ... 5

Gambar 2.2. Konfigurasi Pin ATMega8535 ... 8

Gambar 2.3.Peta Memori Program ... 10

Gambar 2.4. Peta Memori Data ... 11

Gambar 2.5. EEPROM Data Memori ... 11

Gambar 2.6. Status Register ATMega8535 ... 12

Gambar 2.7. Fisik LCD 2x16 ... 14

Gambar 2.8. Tampilan Software Codevision AVR ... 32

Gambar 3.1. Diagram Blok Sistem ... 34

Gambar 3.2. Rangkaian Power Supplay Adaptor (PSA) ... 36

Gambar 3.3. Rangkaian Sistem Minimum Mikrokontroler ATMega8535 ... 37

Gambar 3.4. Rangkaian LCD ... 39

Gambar 3.5. Rangkaian Water Flow Sensor ... 39

Gambar 3.6. Relay dan Pompa ... 40

Gambar 3.7. Flowchart Sistem ... 42

Gambar 4.1. Informasi Signature Mikrokontroler ... 44

Gambar 4.2 Grafik Pulsa Sensor Terhadap Volume Air ... 48

Gambar 4.3 Grafik Pengukuran Debit Dalam 1 Liter ... 62

Gambar 4.4 Grafik Pengukuran Debit Dalam 2 Liter ... 63


(13)

SISTEM KONTROL ALIRAN AIR DENGAN MIKROKONTROLER ATMEGA8535

DAN PEMROGRAMAN C

ABSTRAK

Sistem Kontrol Aliran Air Menggunakan Flow Sensor Berbasis Mikrokontroler ATMega8535ini memiliki fungsi untuk mengontrol aliran suatu fluida pada penampungan air atau tangki. Adapun topik bahasan yang dipilih dalam Laporan Tugas Akhir ini adalah mengenai rangkaian mikrokontroler dan pemrograman bahasa C yang input kendalinya berasal dari water flow sensor YF-S201 dan display ditampilkan pada LCD. Rangkaian ini terbagi menjadi dua, yakni perangkat keras dan perangkat lunak. Perangkat keras ini terdiri dari mikrokontroller dan water flow sensor YF-S201. Sedangkan perangkat lunak yang digunakan untuk pemrograman pada mikrokontroler agar dapat mengaktifkan dan mengendalikan sensor flow, yaitu dengan menggunakan bahasa pemrograman bahasa C. Sehinga program-program tersebut dapat mengontrol perangkat keras yang ada pada sistem pengendali aliran air, yang mana program-program itu di simpan sebagai pusat kendali pada mikrokontroller. Adapun untuk pemograman menampilkan volume level air pada LCD menggunakan program bahasa C. Dari pengujian dan analisa yang penulis lakukan pada alat ini, dapat diketahui bahwa Sistem Kontrol Aliran Air ini dapat bekerja sesuai dengan perintah program yang tersimpan pada mikrokontroller.

Kata kunci : water flow sensor YF-S201, mikrokontroler ATMega8535 dan Hall Effect


(14)

BAB 1 PENDAHULUAN

1.1. Latar Belakang Masalah

Berbagai jenis teknologi telah banyak diciptakan oleh manusia untuk dapat mempermudahmanusia dalam melakukan pekerjaannya.Sebagai salah satu teknologi yangberkembang ialah teknologi di bidang pengukuran suatu aliran fluida.Aplikasi pengendali aliran air ini sangatbanyak diperlukan dalam hal-hal tertentu. Contohnya, pada suatu aliran instalasi air dari PDAM ke rumah warga, pada pomb bensin untuk mengetahui banyak bensin yang di gunakan, pada pabrik kertas juga kita bisa menemukan alat seperti ini untuk pengukuran aliran bubur pulp pada pipa yang disalurkan pada tangki berikutnya, pada pengisian minuman botol dan masih banyak lagi aplikasi lainnya.

Berangkat dari hal tersebut penulis ingin membuat alat ukur aliran suatu fluida dan pengendali aliran air dengan menggunakan water flow sensor YF-S201 sebagai sensor yang mendeteksi kecepatan aliran fluida dan di ubah menjadi pengendali aliran air, mikrokontroller ATMega8535 sebagai pusat kontrol sensor, LCD sebagai display dari output sensor, PSA,Trafo, Relay, pompa air.

Hasilmenunjukkkan Mikrokontroler ATMega8535 mempunyai input sensor flow (sensor aliran), dan sensor ini akan mendeteksi kecepatan aliran suatu fluida yang di konfrensikan menjadi volume air dan menampilkannyapada LCD. Alat ini menggunakan sebuah pompa air yang berfungsi untuk sebagai aliran zat cair atau


(15)

sebagai aliran fluida yang akan di deteksi sensor sekaligus dalam mengontrol aliran air yang di kendalikan oleh mikrokontroller.

Alat ini bekerja secara otomatis dengan merespon aliran air yang dideteksi oleh water flow sensor YF-S201. Mikrokontroler ATmega8535

kemudianmemproses output sensor yang berbentuk frekuensi signal analog (atau berbentuk pulsa) dan mengubah signal tersebut ke digital atau sering disebut analog to digital. Setelah output sensor diproses oleh mikrokontroller kemudian ditampilkanpadaLCD. Dengan demikian kita dapat menggunakan alat ini dengan mudah untuk mengendalikan aliran air hanya cukup menekan keypad sesuai volume air yang kita inginkan dengan satuan liter (l), dan batas maksimum 3 liter.

1.2. Rumusan Masalah

Laporan Tugas Akhirini membahas tentang perangkat lunak yang meliputiperakitan water flow sensor YF-S201 sebagai sitem kontrol aliran air secara otomatis, yang terdiri dari water flow sensor YF-S201 sebagai pengendali volume level air, Mikrokontroler ATMega8535 sebagai pusat kendalinya beserta software pemrograman dasar dari mokrokontroller, LCD sebagaitampilannya, Pompa air sebagai aliran fluida, dan PSA.

1.3. Tujuan Penulisan

Adapun tujuan penulisan laporan Tugas Akhir ini adalah untuk:

1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma Tiga(D-III) Fisika Instrumentasi FMIPA Universitas Sumatera Utara.


(16)

2. Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasipengontrolan danelektronika sebagai bidang diketahui.

3. Membuat rangkaian Sistem Kontrol Aliran Air Dengan Mikrokontroler ATMega8535 dan Pemograman C.

1.4. Batasan Masalah

Mengacu pada hal diatas Penulis Pengujian rangkaian Sistem Kontrol Aliran Air Dengan Mikrokontroler Atmega8535 Dan Pemograman C, dengan batasan-batasan sebagaiberikut :

1. Pembahasan mikrokontroler ATMega8535.

2. Sensor yang digunakan adalah waterflow sensor YF-S201 sebagai sensor pengendali volume air dan sekaligus sebagai pengukuran kecepatan aliran fluida.

3. Pembahasan hanya meliputi rangkaian Mikrokontroler ATMega8535, water flow sensor YF-S201, rangkaian pendukung, analisa pengukuran beserta program dasarnya.

1.5. Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman, maka penulis membuat sistematika penulisan laporan ini sebagai berikut :

BAB 1 PENDAHULUAN

Meliputi latar belakang masalah, rumusan masalah, tujuan penulisan, batasan masalah, dan sistematika penulisan.


(17)

BAB 2 LANDASAN TEORI

Dalam bab ini akan dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja rangkaian. BAB 3 PERANCANGAN DAN PEMBUATAN

Meliputi tentang perancangan rangkaian dan program yang digunakan.

BAB 4 HASIL DAN PEMBAHASAN

Meliputi pengujian alat dan analisanya. BAB 5 KESIMPULAN DAN SARAN

Mengenai kesimpulan yang didapat setelah membuat tugas akhir ini dan saran yang diberikan demi pengembangan tugas akhir ini di masa mendatang.


(18)

BAB 2

LANDASAN TEORI

Dari Rangkaian dan Pengujian Sistem Kontrol Aliran Air dengan Mikrokontroler ATMega8535 dan Pemrograman C, ada beberapa bagian yang perlu kita ketahui yaitu :

2.1. Water Flow Sensor YF-S201

Sensor aliran air ini terbuat dari plastik dimana didalamnya terdapat rotor dan sensor hall effect. Saat air mengalir melewati rotor, rotor akan berputar. Kecepatan putaran ini akan sesuai dengan besarnya aliran air. Sensor berbasis L/hour), dapat digunakan dalam pengendalian aliran air pada sistem distribusi air, sistem pendinginan berbasis air, dan aplikasi lainnya yang membutuhkan pengecekan terhadap debit air yang dialirkan.

Gambar 2.1.Water Flow Sensor YF-S201

2.1.1. Spesifikasi Sensor Flow


(19)

c. Tekanan hidrostatik / Hydrostatic Pressure: ≤ 1,75 MPa d. Catu daya antara 4,5 Volt hingga 18 Volt DC

e. Arus: 15 mA (pada Vcc = 5V)

f. Kapasitas beban: kurang dari 10 mA (pada Vcc = 5V) g. Maksimum suhu air (water temperature usage): 80°C

h. Rentang Kelembaban saat beroperasi: 35% - 90% RH (no frost) i. Duty Cycle: 50%±10%

j. Periode signal (output rise / fall time): 0.04µs / 0.18µs k. Diameter penampang sambungan: 0,5 inch (1,25 cm) l. Amplitudo: Low ≤ 0,5V, High ≥ 4,6 Volt

m. Kekuatan elektrik (electric strength): 1250 V / menit n. Hambatan insulasi: ≥ 100 MΩ

o. Material: PVC

Prinsip kerja sensor ini adalah dengan memanfaatkan fenomena Efek Hall. Efek Hall ini didasarkan pada efek medan magnetik terhadap partikel bermuatan yang bergerak. Ketika ada arus listrik yang mengalir pada divais Efek Hall yang ditempatkan dalam medan magnet yang arahnya tegak lurus arus listrik, pergerakan pembawa muatan akan berbelok ke salah satu sisi dan menghasilkan medan listrik. Medan listrik terus membesar hingga gaya Lorentz yang bekerja pada partikel menjadi nol. Perbedaan potensial antara kedua sisi divais tersebut disebut potensial Hall. Potensial Hall ini sebanding dengan medan magnet dan arus listrik yang melalui divais.


(20)

2.2 Mikrokontroller ATMega8535

Mikrokontroler adalah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus.Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika.

Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam pengontrolan robot.Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah mikrokontroler AVR (Alf and Vegard’s Risc processor) ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction Set Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx.Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.

2.2.1. Fitur mikrokontroler ATMega8535

1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D. 2. ADC internal sebanyak 8 saluran.

3. Tiga buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register.

5. SRAM sebesar 512 byte.

6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 7. Port antarmuka SPI


(21)

8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 9. Antarmuka komparator analog.

10. Port USART untuk komunikasi serial.

11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.

12. Dan lain-lainnya

2.2.2. Pin-pin pada Mikrokontroler ATMega8535

Gambar 2.2.Konfigurasi pin ATMega8535

Konfigurasi pin ATMega8535 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada gambar 2.2. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin ATMega8535 sebagai berikut:


(22)

1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merukan pin Ground.

3. Port A (PortA0…PortA7) merupakan pin input/output dua arah dan pin masukan ADC.

4. Port B (PortB0…PortB7) merupakan pin input/output dua arah dan dan pin fungsi khusus, Timer/counter, komparator analog, dan SPI

5. Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin fungsi khusus yaitu, TWI, komparator analog, dan Timer oscilat

6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin fungsi khusus,yaitu,komparator analog, interupsi external, komunikasi serial.

7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.

9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREFF merupakan pin masukan tegangan referensi ADC.

Kapabiltas detail dari ATMega 8535 adalah sebagai berikut :

1. Sistem mikroprosesor 8 bit bebrbasis RISC dengan kecepatan maksimal 16 MHz.

2. Kapabiltas memori flash 8 Kb, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.

4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.


(23)

2.2.3. Peta Memori ATMega8535

ATMega8535 memiliki dua jenis memori yaituProgram Memori dan Data Memori ditambah satu fitur tambahan yaitu EEPROM Memori untuk penyimpan data.

a. Program Memori

ATMega8535 memiliki On-Chip In-System Reprogrammable Flash Memoriuntuk menyimpan program.Untuk alasan keamanan, program memori dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash Section.Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan.

Application Flash Section digunakan untuk menyimpan program aplikasi yang dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat deprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program pada Application Flash Section juga sudah aman.


(24)

b. Data Memori

Gambar berikut menunjukkan peta memori SRAMpada ATMEGA 8535. Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register File dan I/O Memori sementara 512 likasi address lainnya digunakan untuk internal data SRAM. Register file terdiri dari 32 general purpose working register, I/O register terdiri dari 64 register.

Gambar 2.4.Peta Memori Data

c. EEPROM Data Memori

ATMega8535 memiliki EEPROM 8 bit sebesar 512 byte untuk menyimpan data. Lokasinya terpisah dengan sistem address register, data register dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM dimulai dari $000 sampai $1FF.


(25)

d. Status Register (SREG)

Status register adalah register berisi status yang dihasilkan pada setiap operasi yangdilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPUmikrokontroler.

Gambar 2.6.Status Register ATMega 8535

Bit 7 – I : Global Interrupt Enable

Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit ini akanclear ketika ada interrupt yang dipicu dari hardware, setelah program interrupt dieksekusi,maka bit ini harus di set kembali dengan instruksi SEI.

Bit 6 – T : Bit Copy Storage

Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalamoperasi bit.

Bit 5 – H: Half Carry Flag Bit 4 – S : Sign Bit

Bit S merupakan hasil exlusive or dari Negative Flag N dan Two‘s Complement Over flow Flag V.

Bit 3 – V : Two’s Complement Overflow Flag Digunakan dalam operasi aritmatika

Bit 2 – N : Negative Flag


(26)

Bit 1 – Z : Zero Flag

Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set. Bit 0 – C : Carry Flag

Jika suatu operasi menghasilkan Carry, maka bit ini akan set.

2.3. Liquid Crystal Display (LCD) 2x16

Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan menggunakan mikrokontroler.LCD (Liquid Crystal Display) dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. Pada praktek proyek ini, LCD yang digunakan adalah LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor.Adapunkonfigurasidandeskripsidaripin-pin LCDantaralain: VCC (Pin 1)

Merupakan sumber tegangan +5V. GND 0V (Pin 2)

Merupakan sambungan ground. VEE (Pin 3)

Merupakan input tegangan Kontras LCD. RS Register Select (Pin 4)

Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data. R/W (Pin 5)

Merupakan read select, 1 = read, 0 = write. Enable Clock LCD (Pin 6)


(27)

D0 – D7 (Pin 7 – Pin 14) Merupakan Data Bus 1 -7 Anoda ( Pin 15)

Merupakan masukan tegangan positif backlight Katoda (Pin 16)

Merupakan masukan tegangan negatif backlight

Gambar 2.7.Fisik LCD2x16 Setiap memori mempunyai fungsi-fungsi tersendiri: a. DDRAM

DDRAM merupakan memori tempat karakter yang ditampilkan. Contohnya karakter ‗A‘ atau 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD.

b. CGRAM

CGRAM merupakan memori untuk menggambarkan pola seluruh karakter dan bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang.


(28)

c. CGROM

CGROM adalah memori untuk menggambarkan pola sebuah karakter dan pola tersebut ditentukan secara permanen dari HD44780 sehingga arah yang melalui transistor.

1. Tipe: UJT, BJT, JFET, MOSFET, IGBT, HBT, MISFET, VMOSFET,MESFET, HEMT, SCR serta pengembangan dari transistor yaitu IC.

2. Polaritas : NPN atau N-Channel, PNP atau P-channel

3. Maximum kapasitas daya : Low Power, Medium Power, High Power

4. Maksimum frekwensi kerja : low, medium, atau high frequency, RF transistor,Microwave, dan lain-lain.

5. Aplikasi : Amplifier, Saklar, General purpose, Audio, Tegangan Tinggi, dan lain-lain.

2.4 Bahasa Pemograman ATMega8535

PemrogramanmikrokontrolerATMega8535dapatmenggunakanlowlevelLanguage( assembly)danhighlevellanguage(C,Basic,Pascal,JAVA,dll)tergantungcompileryan gdigunakan (WidodoBudiharto,2006). Bahasa AssemblermikrokontrolerAVR memilikikesamaaninstruksi,sehingga jikapemrogramansatujenismikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontrolerjenismikrokontrolerAVR.Namunbahasaassembler relatif lebih sulit dipelajari dari padabahasa C.

Untukpembuatansuatuproyekyangbesar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki


(29)

keunggulan dibanding bahasa assembleryaitu independentterhadap hardware serta lebih mudah untuk menangani project yang besar.Bahasa C memiliki keuntungan-keuntungan yang dimiliki bahasa assembler(bahasamesin), hampir semuaoperasi yang dapat dilakukan oleh bahasa mesin,dapat dilakukan dengan bahasa C dengan penyusunanprogram yanglebihsederhanadanmudah.BahasaCterletakdiantara bahasa pemrograman tingkat tinggi dan assembly(AgusBejo,2007).

2.5 Dasar Pemrograman ATMega8535 dengan Bahasa C

2.5.1 Pendahuluan

Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia).Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform.Karena itu, amat mudah untuk membuat program pada berbagai mesin.Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.

Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.


(30)

2.5.2 Pengenal Pada Bahasa C

Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus. Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini: 1. Karakter pertama tidak menggunakan angka;

2. Karakter kedua berupa huruf, angka, garis bawah,; 3. Tidak menggunakan spasi;

4. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda; 5. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator

dari bahasa C.

Contoh menggunakan pengenal yang diperbolehkan: 1. Nama

2. _nama 3. Nama2

4. Nama_pengenal

Contoh penggunaan pengenal yang tidak diperbolehkan: 1. 2nama

2. Nama+2


(31)

2.5.3 Tipe Data

Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif sedangkan signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan data bernilai positif. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini.

Tabel 2.1.Pemodifikasi

Pemodifikasi Tipe Persamaan Jangkauan Nilai

Signed char Char -128 s/d 127

Signed int Int -32.768 s/d 32.767

Signed short int Short, signed short -32.768 s/d 32.767

Signed long int Long, long int, signed long

-2.147.483.648 s/d 2.147.483.647

Unsigned char Tidak ada 0 s/d 255

Unsigned int Unsigned 0 s/d 65.535

Unsigned short int Unsigned short 0 s/d 65.535 Unsigned long

int

Unsigned long 0 s/d 4.294.967.295

Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil program,

#include <mega.8535> #include <delay.h> Void main (void) {


(32)

unsigned d, e; a = 50;

b = 40; d = 50; e = 40;

PORTC = 0x00;

DDRC = 0Xff; //set PORTC sebagai output PORTB = 0x00;

DDRB = 0Xff; // set PORTB sebagai output While(1)

{

PORTB = a – b; PORTC = d – e; delay_ms(100);

}

}

Program di atas akan memberikan data di PORTB = 10 (desimal) sedangkan PORTC = -10 (desimal) karena PORT mikrokontroler tidak dapat mengeluarkan nilai negatif maka PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut disimpan dalam memori.

Pada program di atas terdapat tulisan //set PORTB sebagai output yang berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program. Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu

dengan mengawali komentar dengan tanda ― // ― ( untuk komentar yang hanya

satu baris ) dan mengawali komentar dengan tanda ― /* ― dan mengakhiri


(33)

Contoh:

// ini adalah komentar /* ini adalah komentar Yang lebih panjang Dan lebih panjang lagi */

2.5.4 Header

Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file yang ber akhiran .hdisebut file header.

File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan ( pada software Code Vision AVR ) contohnya di bawah ini:

#include <mega8535.h> #include<delay.h> #include <stdio. h>

2.5.5 Operator Aritmatika

Operator aritmatika digunakan untuk melakukan proses perhitungan matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di bawah ini:


(34)

Tabel 2.2.Operator Aritmatika

Operator Keterangan

+ Operator untuk penjumlahan - Operator untuk pengurangan * Operator untuk perkalian

/ Operator untuk pembagian % Operator untuk sisa bagi

Contoh penggunaan operator aritmatika dapat dilihat di bawah ini,

#include < mega8535.h> #include <delay.h> void main (void) {

unsigned char a, b; a = 0x03;

b = 0x05;

DDRC 0XFF; // PORTC digunakan sebagai output while (1)

{

PORTC = (a * b); delay_ms(500); }

}

2.5.6 Operator Pembanding

Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah. Operator pembanding dapat kita lihat pada tabel di bawah ini:


(35)

Tabel 2.3.Operator Pembanding

Operator Contoh Keterangan

= = x = = y Benar jika kedua data bernilai sama

!= x != y

Bernilai benar jika kedua data tidak sama

> x > y

Bernilai benar jika nilai x lebih besar dari pada y

< x < y Bernilai jika x lebih kecil dari y

>= x >= y

Bernilai jika x lebih besar atau sama dengan y

<= x <= y

Bernilai benar jika x lebih kecil atau sama dengan y

2.5.7 Operator Logika

Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih. Operator logika dapat dilihat pada tabel di bawah ini:

Tabel 2.4.Operator Logika Operator Keterangan

&& Logika AND

| | Logika OR


(36)

Contoh program:

#include < mega8535.h> #include <delay.h> void main (void) {

DDRC = 0XFF; // sebagai output DDRA = 0X00; // sebagai input while (1)

{

If ( PINA.0 == 1 )|| (PINA.1 == 1 ){ PORTC = 0XFF;

delay_ms(500); PORTC = 0X00; Delay_ms(500); }

else{

PORTC = 0x00; delay_ms(500); }

} }

Penjelasan program:

Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan logika 0x00.

2.5.8 Operator Bitwise


(37)

atau salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator bitwise dapat dilihat pada tabel di bawah ini:

Tabel 2.5.Operator Bitwise Operator Keterangan

& Operasi AND level bit | Operasi OR level bit ^ Operasi XOR level bit ~ Operator NOT level bit >> Operator geser kanan << Operator geser kiri

Contoh program:

#include <mega8535.h> #include <delay.h> void main (void) {

unsigned char a,b,c;

DDRC = 0xff; //portc sebagai output while (1)

{

a = 0x12; b = 0x34; c = a & b; PORTC = c; delay_ms(500); };


(38)

Penjelasan program: a = 0x12 = 0001 0010 b = 0x32 = 0011 0000 --- a& b = 0x10 = 0001 0000

2.5.9 Operator Penugasan dan Operator Majemuk

Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah variabel. Operator penguasa dapat kita lihat pada tabel di bawah ini:

Tabel 2.6.Operator Penugasan

Operator Keterangan

= Memberikan nilai variabel += Menambahkan nilai variabel - = Mengurangi nilai variabel *= Mengalikan nilai variabel /= Membagi nilai variable %= Memperoleh sisa bagi

Contoh:

a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2 b *= 4; artinya nilai variabel b berubah menjadi b = b * 4

selain operator penugasan di atas juga ada operator penugasan yang berkaitan dengan operator bitwise seperti pada tabel di bawah ini:


(39)

Tabel 2.7.Operator Majemuk

Operator Contoh Arti

&= x &= 1 Variabel x di AND kan dengan 1 |= x |= 1 Variabel x di OR kan dengan 1

~= x ~= 1 x = ~ (1) ; x = 0xFE

^= x ^= 1 Variabel x di XOR kan dengan 1 <<= x <<= 1 Variabel x digeser kiri 1 kali >>= x >>= 1 Variabel x digeser kanan 1 kali

2.5.10 Operator Penambahan dan Pengurangan

Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:

Tabel 2.8Operator Penambahan dan Pengurangan

Operator Keterangan

++ Penambahan 1 pada variable

-- Pengurangan

Contoh: a = 1; b = 2; a ++; b --;


(40)

Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan operator B— akan mengubah variabel b dari 2 menjadi 1.

2.5.11 Pernyataan If dan If Bersarang

Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar maka akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan ( sesuai dengan arah programnya).

Bentuk pernyataan IF adalah sebagai berikut: 1. Bentuk sederhana

if (kondisi){ Pernyataan_1; Pernyataan_2; ...; }

2. Pernyataan else

if (kondisi) {

Pernyataan_1; ...; }

else {

Pernyataan_2; ...; }


(41)

Pernyataan ini sering disebut nested if atau if bersarang. Salah satu bentuknya adalah sebagai berikut:

if (kondisi1) Pernyataan_1; else if (kondisi2) pernyataan_2; else if (kondisi3) pernyataan_3; else

pernyataan; contoh program: if ( PINA.0 = =1) {

PORTC = 0xff; }

else {

PORTC = 0x00; }

Penjelasan program:

Jika PINA.0 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff, jika yang pernyataan yang lain maka PORTC akan mengeluarkan logika 0x00.

2.5.12 Pernyataan Switch

Pernyataan switch digunakan untuk melakukan pengambilan keputusan terhadap banyak kemungkinana. Bentuk pernyataan switch adalah sebagai berikut:

Switch (ekspresi) {

casenilai_1 : pernyataa_1;break; casenilai_2 : pernyataan_2;break;


(42)

caseniai_3 : pernyataan_3;break; …

Defaut :pernyataan_default;break; }

Pada pernyataanswitch,masing-masing pernyataan (pernyataan_1 sampai dengan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak perlu berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3 dan seterusnya. Pernyataan_default bersifat opsional, artinya boeh dikerjakan apabila nilai ekspresi tidak ada yang sama satupun dengan salah satu nilai_1, nilai_2, nilai_3 dan seterusnya. Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini digunakan untuk keuar dari pernyataan swich.

Contoh :

Switch (PINA) {

case 0xFE : PORT=0x00;break; case 0xFD : PORT=0xFF;break; }

Pernyataan di atas berarti membaca port A, kemudian datanya (PINA) akan dicocokan dengan nilai case. Jika PINA bernilai 0xFE maka data 0x00 akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian program keluar dari pernyataan switch.


(43)

2.5.13 Pernyatan While

Pernyataan while digunakan untuk menguangi sebuah pernyataan atau blok kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :

while(kondisi) {

// sebuah pernyataan atau blok pernyataan }

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bias dihilangkan.

Contoh :

unsigned char a=0;

…..

while (a<10) {

PORT=a; a++; }

Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a mencapai 10 maka pengulangan selesai.

2.5.14 Pernyataan Do..While

Pernyataan do…while hamper sama dengan pernyataan while, yaitu pernyataan yang digunakan untuk menguangi sebuah pernyataan atau blok pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :


(44)

// sebuah pernyataan atau b;ok pernyataan } while (kondisi).

Yang membedakan antara pernyataan while dengan do..while adalah bahwa pada pernyataan while pengetesan kondisi dilakukan terlebih dahulu, jika kondisi terpenuhi maka barulah blok pernyataan dikerjakan. Sebaliknya pada pernyataan do…while blok pernyataan dikerjakan terebih dahulu setelah itu baru diakukan pengetesan kondisi, jika kondisi terpenuhi maka dilakukan pengulangan pernyataan atau blok pernyataan lagi. Sehingga dengan demikian pada pernyataaan do..while blop pernyataan pasti akan dikerjakan minimal satu kali sedangkan pada pernyataan whilebok pernyataan beum tentu dikerjakan.

2.5.15 Pernyataan For

Pernyataan for juga digunakan untuk melakukan pengulangan sebuah pernyataan atau blok pernyataan, tetapi berapa kali jumah pengulangannya dapat ditentukan secara lebih spesifik. Bentuk pernyataan for adalah sebagai berikut :

for(nilai_awal ; kondisi ; perubahan)

{

// sebuah pernyataan atau blok pernyataan }

Nilai_awaladaah nilai inisial awa sebuah variabel yang didefenisikan terebih dahuu untuk menentukan niai variabel pertama kai sebelum penguangan.

Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan, jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan diulang terus sampai pernyataan kondisi tidak terpenuhi (salah).


(45)

Perubahan adalah pernyataan yang digunakan untuk melakukan perubahan niai variabel baik naik maupun turun setiap kali pengulangan dilakukan.

Contoh :

unsigned int a; for( a=1, a<10, a++) {

PORT=a; }

Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke port C. selanjutnya data a dinaikkan (a++) jika kondisi a<10 masih terpenuhi maka data a akan terus dikeluarkan ke port

2.5.16 Software ATMega8535 Editor

Instruksiinstruksi yang merupakan bahasa C tersebut dituliskan pada sebuah editor, yaitu Code Vision AVR.


(46)

2.6 Debit Air

Debit air adalah banyaknya volume zat cair yang mengalir pada tiap satu satuan

waktu, biasanya dinyatakan dalam satuan liter/detik atau dalam satuan meter kubik (m3) per detik melalui suatu penampang air, sungai, saluran, pipa atau kran.

2.6.1 Teknik Pengukuran Debit

Pengukuran merupakan salah satu hal yang sangat penting dalam suatu sistem pengolahan air. Beberapa metode yang digunakan untuk mengetahui debit air pada saluran terbuka, diantaranya:

1. Dilution

2. Timed Gravimetric 3. Weir atau flume 4. Area velocity

Pengukuran debit air ditujukan untuk mengetahui kecepatan air pada satuan waktu. Untuk mengetahui debit air maka harus mengetahui satuan ukuran volume dan satuan ukuran waktu terlebih dahulu, karena debit air berkaitan dengan satuan volume dan satuan waktu.

Untuk menentukan debit air menggunakan persamaan:

Q =

t v

……….. (2.1

)

Dimana :


(47)

T : Waktu (s)

BAB 3

PERANCANGAN DAN PEMBUATAN

Rangkaian dan Pengujian Sistem Control Aliran Air dengan Mikrokontroler ATMega8535 Dan Pemrograman C ini memiliki beberapa rangkaian-rangkaian dan perancangannya serta sistem flowchartnya, diantaranya :

3.1. Diagram Blok Rangkaian

Mikrokontroler Suplay

Sensor water Flow

Pompa air Display

Driver Relay

Tombol Reset Tombol

1 Liter

Tombol 2 Liter

Tombol 3 Liter

Tabung Air

Gambar 3.1.Diagram Blok Sistem 3.1.1. Fungsi Tiap Blok

1. Blok mikrokontroller : Mengkonversi data dari sensor ke LCD. 2. Blok Sensor Water flow : Sebagai Sensor untuk memberikan pulsa ke


(48)

Mikrokontroler.

3. Blok Pompa air : Sebagai Pompa, untuk mengalirkan air ke Sensor.

4. Blok Display : Sebagai output tampilan dari Sensor. 5. Blok power supply : Sebagai penyedia tegangan ke sistem dan

Sensor.

6. Blok Relay : Sebagai saklar untuk menghidupkan dan mematikan pompa apabila inputan = output kecepatan kendaraan melebihi batas. 7. Blok tombol set1 : Sebagai inputan 1 aliran yang akan di

Pompa.

8. Blok tombol set2 :sebagai inputan 2 aliran yang akan di Pompa.

9. Blok tombol set3 :sebagai inputan 3 aliran yang akan di Pompa.

10.Blok Reset :untuk memberi nilai awal pada nilai liter.

3.2. Prinsip Kerja dari Rangkaian

Air dipompa melewati sensor aliran maka sensor akan mengeluarkan pulsa dari aliran dan pulsa yang dihasilkan dari sensor water flow diproses oleh

mikrokontroler dengan komunikasi counter dengan 514 counter = 1 liter. Setiap pulsa high memberikan 1 counter data dari sensor dikalibrasi dan ditampilkan pada LCD sesuai yang telah di set.


(49)

3.3. Rangkaian Power Supplay Adaptor ( PSA )

Rangkaian ini berfungsi untuk memberikan supply tegangan ke seluruh rangkaian yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh rangkaian, sedangkan keluaran 12 volt digunakan untuk mensuplay tegangan ke relay. Rangkaian power supplay ditunjukkan pada gambar 3.2 berikut ini :

Gambar 3.2.Rangkaian Power Supplay Adaptor (PSA)

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan

diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya.LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak


(50)

akan panas ketika rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda penyearah.

3.4. Rangkaian Mikrokontroller ATMega8535

Rangkaian sistem minimum mikrokontroler ATMega8535 dapat dilihat pada gambar 3.3 di bawah ini :

Gambar 3.3. Rangkaian sistem minimum mikrokontroler ATMega8535 Dari gambar 3.3, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada.Komponen utama dari rangkaian ini adalah IC Mikrokontroler ATMega8535.Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.

Pin 12 dan 13 dihubungkan ke XTAL 8 MHz dan dua buah kapasitor 30 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler ATMega8535 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset


(51)

(aktif rendah). Pulsa transisi dari tinggi ke rendah akan me-reset mikrokontroler ini.

Untuk men-download file heksadesimal ke mikrokontroler, Mosi, Miso, Sck, Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke Jack 10 Pin header sebagai konektor yang akan dihubungkan ke ISP Programmer. Dari ISP Programmer inilah dihubungkan ke komputer melalui port paralel.

Kaki Mosi, Miso, Sck, Reset, Vcc dan Gnd pada mikrokontroler terletak pada kaki 6, 7, 8, 9, 10 dan 11. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer, maka pemograman mikrokontroler tidak dapat dilakukan karena mikrokontroler tidak akan bisa merespon.

3.5. Perancangan Rangkaian LCD (Liquid Crystal Display)

Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 16x2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler dapat memberi data langsung ke LCD, pada LCD Hitachi - M1632 sudah terdapat driver untuk mengubah data ASCII output mikrokontroler menjadi tampilan karakter.

Pemasangan potensio sebesar 5 KΩ untuk mengatur kontras karakter yang

tampil.Gambar 3.4 berikut merupakan gambar rangkaian LCD yang dihubungkan ke mikrokontroler.


(52)

Gambar 3.4.Rangkaian LCD

Dari gambar 3.4, rangkaian ini terhubung ke PC.0... PC.6, yang merupakan pin I/O dua arah dan pin fungsi khusus, yaitu sebagai komunikan two slave dan SPI mempunyai fungsi khusus sebagai pengiriman data secara serial. Sehingga nilai yang akan tampil pada LCD display akan dapat dikendalikan oleh Mikrokontroller ATMega8535.

3.6. Perancangan sensor Water Flow


(53)

Pada rangkaian ini sensor terhubung ke PORTB.1, yaitu sebagai counter, sensor water flow akan menghasilakan pulsa apabila di aliri cairan, setiap pulsa yang masuk ke mikrokontroler akan dip proses dan di kalibrasi.

Water flow sensor ini terdiri atas katup plastik, rotor air, dan sebuah sensor hall-effect.Prinsip kerja sensor ini adalah dengan memanfaatkan fenomena efek Hall. Efek Hall ini didasarkan pada efek medan magnetik terhadap partikel bermuatan yang bergerak. Ketika ada arus listrik yang mengalir pada divais efek Hall yang ditempatkan dalam medan magnet yang arahnya tegak lurus arus listrik, pergerakan pembawa muatan akan berbelok ke salah satu sisi dan menghasilkan medan listrik. Medan listrik terus membesar hingga gaya Lorentz yang bekerja pada partikel menjadi nol. Perbedaan potensial antara kedua sisi divais tersebut disebut potensial Hall. Potensial Hall ini sebanding dengan medan magnet dan arus listrik yang melalui divais.

3.7. Perancangan Relay dan Pompa

Gambar 3.6.Relay dan Pompa

Komponen utama dari rangkaian ini adalah relay. Relay ini memisahkan tegangan rendah dari rangkaian dengan tegangan tinggi dari beban yang dihubungkan dengan sumber tegangan 12 volt DC


(54)

Relay merupakan salah satu komponen elektronik yang terdiri dari lempengan logam sebagai saklar dan kumparan yang berfungsi untuk menghasilkan medan magnet. Pada rangkaian ini digunakan relay 12 volt, ini berarti jika positif relay (kaki 1) dihubungkan ke sumber tegangan 12 volt dan negative relay (kaki 2) dihubungkan ke ground, maka kumparan akan menghasilkan medan magnet, dimana medan magnet ini akan menarik logam yang mengakibatkan saklar terhubung.

Pada rangkaian ini untuk mengaktifkan atau menon-aktifkan relay digunakan transistor type PNP. Dari gambar dapat dilihat bahwa negative relay dihubungkan ke kolektor akan terhubung ke emitor dimana emitor langsung terrhubung ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini akan mwngakibatkan relay aktif. Sebaliknya jika transistor tidakaktif, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 9 volt, keadaan ini menyebabkan tidak aktifKumparan pada relay akan menghasilkam tegangan singkat yang besar ketika relay dinon-aktifkan dan ini dapat merusak transistor yang ada pada rangkaian ini. Untuk mencegah kerusakan pada transistor tersebut sebuah dioda harus dihubungkan ke relay tersebut .Dioda dihubungkan secara terbalik sehingga secara normal dioda ini tidak menghantarkan. Penghantaran hanya terjadi ketika relay dinonaktifkan, pada saat ini arus akan terus mengalir melalui kumparan dan arus ini akan dialirkan ke dioda. Tanpa adanya dioda arus sesaat yang besar itu akan mengalir ke transistor, yang mengakibatkan kerusakan pada transistor.


(55)

3.8. Flowchart Sistem

Start

Selesai Inisialising

Apakah input = output? Pilih tombol inputan

liter Tampil LCD

Pompa aktif

Konversi Pulsa menjadi liter

Hitung Pulsa ke liter

tidak

Pompa mati Menerima aliran ke

sensor


(56)

BAB 4

HASIL DAN PEMBAHASAN

Berikut ada beberapa Pengujian Rangkaian serta Program Lengkap dari Rangkaian dan Pengujian Sistem Kontrol Aliran Air dengan Mikrokontroler ATMega8535 dan Pemograman C, diantaranya adalah :

4.1. Pengujian Rangkaian Power Supply

Pengujian rangkaian power supply ini bertujuan untuk mengetahui tegangan yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan keluaran dari power supply menggunakan multimeter digital. Setelah dilakukan pengukuran maka diperoleh besarnya tegangan keluaran sebesar 5 volt.Dengan begitu dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak. Jika diukur, hasil dari keluaran tegangan tidak murni sebesar +9 Volt dan +12 Volt, tetapi +8.97Volt dan +12.03 Volt. Hasil tersebut dikarenakan beberapa faktor, diantaranya kualitas dari tiap-tiap komponen yang digunakan nilainya tidak murni.Selain itu, tegangan jala-jala listrik yang digunakan tidak stabil.

4.2. Pengujian Rangkaian Mikrokontroler ATMega8535

Karena pemrograman menggunakan mode ISP (In System Programming) mikrokontroler harus dapat diprogram langsung pada papan rangkaian dan rangkaian mikrokontroler harus dapat dikenali oleh program downloader. Pada pengujian ini berhasil dilakukan dengan dikenalinya jenis mikrokontroler oleh program downloader yaitu ATMega8535.


(57)

Gambar 4.1.Informasi Signature Mikrokontroler

ATMega menggunakan kristal dengan frekuensi 8 MHz, apabila Chip Signature sudah dikenali dengan baik dan dalam waktu singkat, bisa dikatakan rangkaian mikrokontroler bekerja dengan baik dengan mode ISP-nya.

4.3. Interfacing LCD 2x16

Bagian ini hanya terdiri dari sebuah LCD dot matriks 2 x 16 karakter yang berfungsi sebagai tampilan hasil pengukuran dan tampilan dari beberapa keterangan. LCD dihubungkan langsung ke Port D dari mikrokontroler yang berfungsi mengirimkan data hasil pengolahan untuk ditampilkan dalam bentuk alfabet dan numerik pada LCD.Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set ( high ) pada dua jalur kontrol yang lain RS dan RW. Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data


(58)

akandituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ( 0 )

Berdasarkan keterangan di atas maka kita sudah dapat membuat progam untuk menampilkan karaker pada display LCD. Adapun program yang diisikan ke mikrokontroller untuk menampilkan karakter pada display LCD adalah sebagai berikut:

#include <mega8535.h> #include <stdio.h> #include <delay.h> #include <alcd.h> void main(void) {

PORTA=0xff; DDRA=0x0F; PORTB = 0X03; DDRB = 0X8F; PORTD.7 = 1; DDRD.7 = 0; lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Tes LCD"); }


(59)

diaktifkan, maka pada LCD akan menampilkan status sensor dan pemberitahuan apabila menerima sms .

4.4. Pengujian Rangkaian Sensor Water Flow

Pengujian rangkaian water flow sensor ini yaitu sensor akan menghasilkan pulsa setiap aliran yang di lewati sensor. Setip pulsa akan di kalibrasi dengan dalam satuan liter, setelah diuji pada sensor saya ini untuk mendapatkan pulsa dalam 1 liter, yaitu sensor menghasilkan pulsa sebanyak 514 pulsa, untuk mengkalibrasi dalam satuan liter, setiap pulsa di bagi dengan 514, maka akan dapat satuan liter.

Tabel 4.1. Tabel Pengujian Pulsa Water Flow Sensor

No Pulsa Liter

1 514 1

2 1028 2

3 1542 3

4 2056 4

5 2570 5

Water flow sensor ini terdiri atas katup plastik, rotor air, dan sebuah sensor hall-effect. Ketika air mengalir melalui pipa dalam sensor ini, maka akan mengenai rotor, dan membuatnya berputar. Kecepatan putar rotor akan berubah ketika kecepatan aliran air berubah pula. Output dari sensor hall-effect akan sebanding dengan pulsa yang digenerate rotor. Pulsa ini akan di hubungkan ke counter pada


(60)

mikrokontroler dengan 514 counter = 1 liter. Untuk mendapatkan perliter, setiap counter di bagi dengan 514.

Gambar 4.2. Grafik Pulsa Sensor Terhadap Volume Air

Dari grafik perbandingan antara pulsa terhadap volume air, dapat disimpulkan bahwa pulsa keluaran dari sensor berbanding lurus terhadap volume air. Dengan katalain semakin besar pulsa yang dihasilkan, semakin besar juga volume air yang dialirkan. Demikian juga terhadap volume airnya. Semakin banyak volume airnya, maka semakin besar juga pulsa yang dihasilkan oleh sensornya.

4.5. Pengujian Rangkaian Relay dan Pompa Air

Pada pengujian rangkaian relay, yaitu dengan memberi tegangan pada basis transistor, yang di gunakan pada driver relay. Transistor pada rangkaian ini di gunakan sebagai swiching, artinya apabila basis di beri tegangan maka colektor akan terhubung ke emitter, dan relay aktif. Berikut adalah program untuk

0 500 1000 1500 2000 2500 3000

1 2 3 4 5

P

u

ls

a

Volume (liter)


(61)

pengujian relay. Yaitu memberikan tegangan pada basis transistor dengan mikrokontroler.

#include <mega8535.h> #include <delay.h> void main(void) {

DDRA=0x01; PORTA=0x01; DDRB=0x00; PORTB=0x00; DDRC=0x00; PORTC=0x00; DDRD=0x00; PORTD=0x00; while (1) {

PORTB.0=1;

delay_ms(1000); PORTB.0=0;

delay_ms(1000); }

}

Setelah Program di atas di download ke mikrokontroler, secara otomatis relay akan mengalami kondisi terbuka dan tertutup selama 1 detik.


(62)

4.6 Program Lengkap

Berikut adalah program yang bekerja dalam rangkaian yang dibuat. Apabila program dibawah di download ke mikrokontroler, maka rangkaian yang dibuat dapat bekerja dengan baik.

/****************************************************** *

This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator

© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version :

Date : 05/07/2015 Author :

Company : Comments:

Chip type : ATmega8535 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 128

******************************************************* /

#include <mega8535.h> #include <stdio.h>


(63)

#include <stdlib.h> #define reset PIND.7 #define t1 PIND.4 #define t2 PIND.5 #define t3 PIND.6 #define pump PORTD.3

// Alphanumeric LCD functions #include <alcd.h>

unsigned char temp[8];

int data,set1=0, set2=0, set3=0, state=0, loop, waktu; float liter=0;

char buff[8];

// Declare your global variables here

void main(void) {

// Declare your local variables here

// Input/Output Ports initialization // Port A initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=In Bit1=In Bit0=In

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (1<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=0 Bit2=P Bit1=P Bit0=P

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (1<<PORTA2) | (1<<PORTA1) | (1<<PORTA0);


(64)

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port C initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (1<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTC=(1<<PORTC7) | (1<<PORTC6) | (1<<PORTC5) | (1<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// Port D initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (1<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(1<<PORTD7) | (1<<PORTD6) | (1<<PORTD5) |

(1<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);


(65)

// Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: T1 pin Falling Edge // Mode: Normal top=0xFFFF

// OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off

TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);

TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (1<<CS11) | (0<<CS10);

TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;


(66)

// Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF

// OC2 output: Disconnected ASSR=0<<AS2;

TCCR2=(0<<WGM20) | (0<<COM21) | (0<<COM20) | (0<<WGM21) | (0<<CS22) | (0<<CS21) | (0<<CS20);

TCNT2=0x00; OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off

MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

MCUCSR=(0<<ISC2);

// USART initialization // USART disabled

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

// Analog Comparator initialization // Analog Comparator: Off

// The Analog Comparator's positive input is // connected to the AIN0 pin


(67)

// connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME);

// ADC initialization // ADC disabled

ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

// SPI initialization // SPI disabled

SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

// TWI initialization // TWI disabled

TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

// Alphanumeric LCD initialization // Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTC Bit 0 // RD - PORTC Bit 1 // EN - PORTC Bit 2 // D4 - PORTC Bit 3 // D5 - PORTC Bit 4 // D6 - PORTC Bit 5 // D7 - PORTC Bit 6 // Characters/line: 16 lcd_init(16);


(68)

while (1) {

if

(reset==0){pump=0;state=0;set1=0;data=0,liter=0; loop=0;}

while (state==0) {

lcd_gotoxy(0,0);

lcd_putsf("Pilih Pengisian"); delay_ms(50);

if (t1==0){set1=1;state=1;} if (t2==0){set2=1;state=1;} if (t3==0){set3=1;state=1;} lcd_clear(); }

while (set1==1) {

data=TCNT1;

liter=data*0.0019455;//0.0019455=1/514; ftoa(liter,2,temp);

if (liter>=1) {

pump=0; liter=1; }

else {

pump=1; loop++;


(69)

lcd_gotoxy(0,0);

lcd_putsf("waktu :"); lcd_gotoxy(13,0); lcd_putsf("ms"); lcd_gotoxy(8,0); lcd_puts(buff); delay_ms(50);

} ftoa(liter,2,temp); lcd_gotoxy(8,1);

lcd_puts(temp); lcd_gotoxy(13,1); lcd_putsf("L"); lcd_gotoxy(0,1);

lcd_putsf("Volume:"); if

(reset==0){pump=0;state=0;set1=0;data=0,liter=0;TCNT1=0 ; loop=0;}

}

while (set2==1) {

data=TCNT1;

liter=data*0.0019455;//0.0019455=1/514; ftoa(liter,2,temp);

if (liter>=2) {

pump=0; liter=2; }

else {


(70)

loop++;

waktu=loop*0.05464*100; itoa(waktu,buff);

lcd_gotoxy(0,0);

lcd_putsf("waktu :"); lcd_gotoxy(13,0); lcd_putsf("ms"); lcd_gotoxy(8,0); lcd_puts(buff); delay_ms(50);

} ftoa(liter,2,temp); lcd_gotoxy(8,1);

lcd_puts(temp); lcd_gotoxy(13,1); lcd_putsf("L"); lcd_gotoxy(0,1);

lcd_putsf("Volume:"); if

(reset==0){pump=0;state=0;set2=0;data=0,liter=0;TCNT1=0 ;loop=0;}

}

while (set3==1) {

data=TCNT1;

liter=data*0.0019455;//0.0019455=1/514; ftoa(liter,2,temp);

if (liter>=3) {

pump=0; liter=3;


(71)

else {

pump=1; loop++;

waktu=loop*0.05464*100; itoa(waktu,buff);

lcd_gotoxy(0,0);

lcd_putsf("waktu :"); lcd_gotoxy(13,0); lcd_putsf("ms"); lcd_gotoxy(8,0); lcd_puts(buff); delay_ms(50);

} ftoa(liter,3,temp); lcd_gotoxy(8,1);

lcd_puts(temp); lcd_gotoxy(13,1); lcd_putsf("L"); lcd_gotoxy(0,1);

lcd_putsf("Volume:"); if

(reset==0){pump=0;state=0;set3=0;data=0,liter=0;TCNT1=0 ;loop=0;}

}

} }


(72)

4.7. Pengujian Alat

Pengujian ini dilakukan untuk mengukur unjuk kerja sistem dalam pengukuran laju aliran fluida. Pengujian dilakukan dengan mengalirkan air melalui water flow sensor YF-S201 dan selanjutnya ditampung dengan gelas ukur. Dengan asumsi bahwa laju aliran air oleh pompa dianggap konstan, maka referensi pengukuran laju aliran adalah volume air terukur pada gelas ukur dibagi dengan waktu yang diperlukan.Ketidak-pastian pengukuran volumetrik dan pengukuran waktu dianggap tidak signifikan dibanding ketidak-pastian alat ukur yang dibuat sehingga dapat diabaikan. Kedua asumsi ini diambil karenaterkadang terjadi eror pada chip mikrokontroler, sehingga dalam pembacaan program yangdimasukkan terjadi kesalahan. Namun hingga Tugas Akhir ini diselesaikan, perangkat ini belum dapat diselesaikan dengan baik.

4.8. Analisis Data Pengukuran Laju Aliran Air (Debit)

Debit air adalah kecepatan aliran zat cair per satuan waktu. Untuk dapat menemukan debit air maka kita harus mengetahui satuan ukuran volume dan satuan ukuran waktu terlebih dahulu, karena debit air berkaintan erat dengan satuan volume dan satuan waktu.


(73)

Tabel 4.2. Pengukuran Waktu Aliran Air Volume (liter) Waktu (s) Debit (liter/waktu) 1

22 0,045

21 0,047

20 0,050

2

44 0,045

42 0,047

40 0,050

3

66 0,045

63 0,047

60 0,050

Dari Table 4.2. dapat ditentukan debit dari tiap pengukuran dan debit rata-rata antara lain :

1. Untuk volume 1 liter

 Pengukuran Pertama 1 v = s liter 22 1

= 0,045 l/ s  Pengukuran Kedua

2 v = s liter 21 1

= 0,047 l/ s  Pengukuran Ketiga

3 v = s liter 20 1


(74)

Gambar 4.3. Grafik Pengukuran Debit Dalam 1 Liter

2. Untuk volume 2 liter

 Pengukuran Pertama 4

v =

s liter

44 2

= 0,045 l/ s  Pengukuran Kedua

5 v = s liter 42 2

= 0,047 l/ s  Pengukuran Ketiga

6 v = s liter 40 2

= 0,050 l/ s

19 19,5 20 20,5 21 21,5 22 22,5

0,045 0,047 0,050

w a kt u ( se ko n ) Debit (l/s)


(75)

Gambar 4.4. Grafik Pengukuran Debit Dalam 2 Liter

3. Untuk volume 3 liter

 Pengukuran Pertama 7

v =

s liter

66 3

= 0,045 l/ s  Pengukuran Kedua

8 v = s liter 63 3

= 0,047 l/ s  Pengukuran Ketiga

9 v = s liter 60 3

= 0,050 l/ s

38 39 40 41 42 43 44 45

0,045 0,047 0,050

W a kt u ( se ko n )

Debit (l/s)


(76)

Gambar 4.5. Grafik Pengukuran Debit Dalam 3 Liter

Debit rata – rata dari pengukuran antara lain :

rata

Vrata− =

9 9 8 7 6 5 4 3 2

1 v v v v v v v v

v + + + + + + + +

= 9 050 , 0 047 , 0 045 , 0 050 , 0 047 , 0 045 , 0 050 , 0 047 , 0 045 ,

0 + + + + + + + +

= 0,0473 l / s

57 58 59 60 61 62 63 64 65 66 67

0,045 0,047 0,050

W a kt u ( se ko n ) Debit (l/s)


(77)

Tabel 4.3. Pengukuran Laju Air

Volume (Liter) Waktu (s) Debit (Liter/Waktu)

1

22 0,045

21 0,047

20 0,050

2

44 0,045

42 0,047

40 0,050

3

66 0,045

63 0,047

60 0,050


(78)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari evaluasi hasil kerja alat dapat diambil beberapa kesimpulan dalam tugas proyek ini :

1. Water flow yang digunakan adalah tipe YF-S201 berfungsi sebagai sensor hall effectuntuk pengukuran aliran air.

2. Mikrokontroller ATMega8535 untuk memproses data dari Water Flow sensor YF-S201dan ditampilkan ke Display LCD.

3. Hasil sensor menghasilkan debit air rata-rata 0,0473 liter/detik

5.2. Saran

Setelah melakukan penulisan ini diperoleh beberapa hal yang dapat dijadikan saran untuk dapat dilakukan perancangan lebih lanjut, yaitu :

1. Diperlukan rancangan yang lebih teliti lagi pada alat agar rangkaian ini dapat bekerja lebih sempurna.

2. Agar debit air lebih maksimum maka diperlukan untuk mengubah sistem deteksi pada water flow sensor.


(79)

DAFTAR PUSTAKA

Bejo, Agus. C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega8 dan ATMega8535, Yogyakarta : Graha Ilmu, 2008

Daryanto, Drs. 2008. Pengetahuan Teknik Elektronika. Jakarta : Bumi aksara Setiawan,Afrie.2006. 20 aplikasi mikrokontroller ATMEGA8535 &

ATMEGA 16 menggunakan BASCOM -AVR .Yogyakarta: ANDI FlowmeterTutorial, http://www.omega.com/techref/pdf/FlowMeterTutorial.pdf Heryanto, M.Ary dan Wisnu Adi.2008.Pemrograman Untuk Mikrokontroler ATMEGA 8535.Yogyakarta: ANDI.

Lingga, W. 2006.Belajar sendiri Pemrograman AVR ATMega8535. Yogyakarta: Andi Offset.

William.D.Cooper. Terjemahan Pakpahan.Teknik Instrumentasi dan Elektronika.Erlangga. Jakarta. 1996

di akses bulan Mei 2015

diakses bulan Juni 2015


(1)

Gambar 4.3. Grafik Pengukuran Debit Dalam 1 Liter

2. Untuk volume 2 liter

 Pengukuran Pertama 4

v =

s liter 44 2

= 0,045 l/ s

 Pengukuran Kedua 5

v =

s liter 42 2

= 0,047 l/ s

 Pengukuran Ketiga 6

v =

s liter 40 2

= 0,050 l/ s 19

19,5 20 20,5 21 21,5 22 22,5

0,045 0,047 0,050

w

a

kt

u

(

se

ko

n

)

Debit (l/s)


(2)

62

Gambar 4.4. Grafik Pengukuran Debit Dalam 2 Liter

3. Untuk volume 3 liter

 Pengukuran Pertama

7

v =

s liter 66 3

= 0,045 l/ s

 Pengukuran Kedua

8

v =

s liter 63 3

= 0,047 l/ s

 Pengukuran Ketiga

9

v =

s liter 60 3

= 0,050 l/ s 38

39 40 41 42 43 44 45

0,045 0,047 0,050

W

a

kt

u

(

se

ko

n

)

Debit (l/s)


(3)

Gambar 4.5. Grafik Pengukuran Debit Dalam 3 Liter

Debit rata – rata dari pengukuran antara lain : rata

Vrata− =

9 9 8 7 6 5 4 3 2

1 v v v v v v v v

v + + + + + + + +

= 9 050 , 0 047 , 0 045 , 0 050 , 0 047 , 0 045 , 0 050 , 0 047 , 0 045 ,

0 + + + + + + + +

= 0,0473 l / s 57 58 59 60 61 62 63 64 65 66 67

0,045 0,047 0,050

W a kt u ( se ko n ) Debit (l/s)


(4)

64 Tabel 4.3. Pengukuran Laju Air

Volume (Liter) Waktu (s) Debit (Liter/Waktu)

1

22 0,045

21 0,047

20 0,050

2

44 0,045

42 0,047

40 0,050

3

66 0,045

63 0,047

60 0,050


(5)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari evaluasi hasil kerja alat dapat diambil beberapa kesimpulan dalam tugas proyek ini :

1. Water flow yang digunakan adalah tipe YF-S201 berfungsi sebagai sensor hall effectuntuk pengukuran aliran air.

2. Mikrokontroller ATMega8535 untuk memproses data dari Water Flow sensor YF-S201dan ditampilkan ke Display LCD.

3. Hasil sensor menghasilkan debit air rata-rata 0,0473 liter/detik

5.2. Saran

Setelah melakukan penulisan ini diperoleh beberapa hal yang dapat dijadikan saran untuk dapat dilakukan perancangan lebih lanjut, yaitu :

1. Diperlukan rancangan yang lebih teliti lagi pada alat agar rangkaian ini dapat bekerja lebih sempurna.


(6)

66

DAFTAR PUSTAKA

Bejo, Agus. C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega8 dan ATMega8535, Yogyakarta : Graha Ilmu, 2008

Daryanto, Drs. 2008. Pengetahuan Teknik Elektronika. Jakarta : Bumi aksara Setiawan,Afrie.2006. 20 aplikasi mikrokontroller ATMEGA8535 &

ATMEGA 16 menggunakan BASCOM -AVR .Yogyakarta: ANDI FlowmeterTutorial, http://www.omega.com/techref/pdf/FlowMeterTutorial.pdf Heryanto, M.Ary dan Wisnu Adi.2008.Pemrograman Untuk Mikrokontroler ATMEGA 8535.Yogyakarta: ANDI.

Lingga, W. 2006.Belajar sendiri Pemrograman AVR ATMega8535. Yogyakarta: Andi Offset.

William.D.Cooper. Terjemahan Pakpahan.Teknik Instrumentasi dan Elektronika.Erlangga. Jakarta. 1996

di akses bulan Mei 2015

diakses bulan Juni 2015