• Tidak ada hasil yang ditemukan

Pengaturan Volume Air Menggunakan Water Flow Sensor Dalam Bahasa C Berbasis Mikrokontroler Atmega8535

N/A
N/A
Protected

Academic year: 2016

Membagikan "Pengaturan Volume Air Menggunakan Water Flow Sensor Dalam Bahasa C Berbasis Mikrokontroler Atmega8535"

Copied!
76
0
0

Teks penuh

(1)

PENGATURAN VOLUME AIR MENGGUNAKAN WATER

FLOW SENSOR DALAM BAHASA C BERBASIS

MIKROKONTROLER ATMEGA8535

TUGAS AKHIR

DEAR PUTRASITO P

092408002

PROGRAM STUDI D3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

PENGATURAN VOLUME AIR MENGGUNAKAN WATER

FLOW SENSOR DALAM BAHASA C BERBASIS

MIKROKONTROLER ATMEGA8535

TUGAS AKHIR

Diajukan untuk melengkapi Tugas dan memenuhi syarat mencapai gelar Ahli Madya

DEAR PUTRASITO P

092408002

PROGRAM STUDI D3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

(3)

PERSETUJUAN

Judul : PENGATURAN VOLUME AIR MENGGUNAKAN

WATER FLOW SENSOR DALAM BAHASA C BERBASIS MIKROKONTROLER ATMEGA8535

Kategori : TUGAS AKHIR

Nama : DEAR PUTRASITO P

Nim : 092408002

Program Studi : DIPLOMA III (D3 FISIKA) Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, 28 Juli 2012

Komisi Pembimbing :

Diketahui/Disetujui oleh

Program Studi Fisika Instrumentasi

Ketua, Pembimbing,

(4)

PERNYATAAN

PENGATURAN VOLUME AIR MENGGUNAKAN WATER FLOW SENSOR DALAM BAHASA C BERBASIS MIKROKONTROLER

ATMEGA8535

TUGAS AKHIR

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

Medan, 28 Juli 2012

(5)

PENGHARGAAN

Puji dan Syukur Penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha Penyayang dengan limpah karunia-NYA, sehingga penulis dapat menyelesaikan Laporan Tugas Akhir dalam waktu yang telah ditetapkan.

(6)

ABSTRAK

(7)

DAFTAR ISI

DAFTAR TABEL………viii

DAFTAR GAMBAR………ix

2.1.1 Spesifikasi sensor Flow ... 7

2.2 Mikrokontroler Atmega8535………..…8

2.2.1 Fitur Mikrokontroler ATMega8535……….9

2.2.2 Pin-pin Mikrokontroler Atmega8535 ... 10

2.2.3 Peta memori Atmega8535 ... 11

2.3 Liquid Crystal Display (LCD) 2x16………..…..15

2.4 Bahasa Pemograman ATmega8535... 18

2.5 Dasar Pemograman Atmega8535 dengan bahasa C ... 19

(8)

2.5.2 Pengenalan pada Bahasa C ... 19

2.5.9 Operator Penugasan dan Operator Mejemuk .. ………..27

2.5.10 Operator Penambahan dan pengurangan...28

2.5.11 Pernyataan If dan If bersarang……….………..29

2.5.12 Pernyataan switch………...31

2.5.13 Pernyataan While………33

2.5.14 Pernyataan Do.. while……….34

2.5.15 Pernyataan For………35

2.5.16 Software ATmega 8535 editor………36

BAB III PERANCANGAN DAN SISTEM KERJA RANGKAIAN 3.1 Diagram Blok ... 37

3.2 Rangkaian Mikrokontroler ATMega8535 ... 38

3.3 Rancangan Catu Daya ... 39

3.4 Rancangan Flow Sensor ... 40

3.5 Rangkaian LCD ... 41

3.6 Rangkaian Relay ... 42

3.7 Rangkaian Keypad…...43

BAB IV PENGUJIAN ALAT DAN PROGRAM 4.1 Pengujian Rangkaian Mikrokontroller ATMega8535 ... 45

(9)

4.3 Pengujian Rangkaian Flow sensor ... 47

4.4 Pengujian Rangkaian LCD ... 48

4.5 Pengujian Rangkaian Relay...49

4.6 Pengujian Rangkaian Keypad………...50

4.7 Diagram Alir (Flowchart) ... 53

4.8 Program ... 55

BAB V PENUTUP 5.1 Kesimpulan ... 61

5.2 Saran ... 62

(10)

DAFTAR GAMBAR

Halaman Gambar 2.1 Fisik dan skematik instalasi water flow sensor6

Gambar 2.2 Mechanic Dimensi Water Flow Sensor G 1/26

Gambar 2.3 Konfigurasi Pin AtMega8535 10

Gambar 2.4 Peta Memori Program 12

Gambar 2.5 Peta Memori Data 13

Gambar 2.6 EEPROM Data Memori 13

Gambar 2.7 Status Register AtMega8535 14

Gambar 2.8 Fisik LCD 2 x 16 16

Gambar 2.9 Tampilan Software Codevision AVR 36

Gambar 3.1 Diagram Blok Rangkaian 37

Gambar 3.2 Rangkaian minimum mikrokontroller ATMega8535 38

Gambar 3.3 Skematik Rangkaian Catu Daya 39

Gambar 3.4 Fisik dan skematik Water flow sensor G1/240 Gambar 3.5 skematik Rangkaian LCD41

Gambar 3.6 Skematik Rangkaian Relay 42

Gambar 3.7 Rangkaian Keypad 44

Gambar 4.1 Rangkaian pengujian atmega8535 45

Gambar 4.2 Pengujian Rangkaian Catu Daya 46

Gambar 4.3 rangkaian Pengujian rangkaian LCD 48 Gambar 4.4 Rangkaian Pengujian Rangkaian Relay 49

Gambar 4.5 Rangkaian Penguji Keypad 50

(11)

DAFTAR TABEL

Halaman

Tabel 2.1 Komponen Sensor 7

Tabel 2.2 Pemodifikasi 21

Tabel 2.3 Operator Aritmatika 23

Tabel 2.4 Operator Pembanding 24

Tabel 2.5 Operator Logika 25

Tabel 2.6 Operator Badwise 26

Tabel 2.7 Operator Penugasan 27

Tabel 2.8 Operator Majemuk 28

Tabel 2.9 Operator Penambahan dan Pengurangan 28 Tabel 3.1 Pin Water flow sensor G1/2 41 Tabel 4.1Perbandingan out put sensor dengan gelas ukur 48

Tabel 4.2 Penekanan Tombol 1 51

(12)

ABSTRAK

(13)

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Berbagai jenis teknologi telah banyak diciptakan oleh manusia untuk dapatmempermudahmanusia dalam melakukan pekerjaannya. Sebagai salah satu teknologi yangberkembang ialah teknologi di bidang pengukuran suatu aliran fluida dan pengendali volume air. Aplikasi pengendali volume 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 berikiutnya, pada pengisian minuman botol dan masih banyak lagi aplikasi lainnya.

(14)

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

Alat ini bekerja secara otomatis dengan merespon aliran air yang dideteksi oleh water flow sensor G1/2. 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 air hanya cukup menekan keypad sesuai volume air yang kita inginkan dengan satuan milli liter (ml), dan batas maksimum 5 liter.

1.2. Rumusan Masalah

Laporan Tugas Akhir ini membahas tentang perangkat keras yang meliputi perakitan aplikasi water flow sensor G1/2 sebagai pengendali volume air secara otomatis, yang terdiri dari water flow sensor G1/2 sebagai pengendali volume level air, Mikrokontroler ATMega8 sebagai pusat kendalinya beserta software pemrogramann dasar dari mokrokontroller, LCD sebagaitampilannya.

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. 2. Pengembangan kreatifitas mahasiswa dalam bidang ilmu

(15)

3. Perancangan rangkaian Aplikasi water flow sensor G1/2 sebagai pengendali volume air secara otomatis pada tangki berbasis Mikrokontroller ATMega8535 menggunakan Bahasa C

1.4. Batasan Masalah

Mengacu pada hal diatas Penulis Merancang Aplikasi water flow sensor G1/2 sebagai pengendali volume level air secara otomatis pada tangkiberbasis mikrokontroler ATMega8535, dengan batasan-batasan sebagaiberikut :

1. Pembahasan mikrokontroler Atmega8535.

2. Sensor yang digunakan adalah water flow sensor G1/2 sebagai sensor pengendali volume air dan sekaligus sebagai pengukuran kecepatan aliran fluida.

3. Pembahasan hanya meliputi rangkaian Mikrokontroler ATMega8535, water flow sensor G1/2, analisa pengukuran beserta program dasarnya.

(16)

1.5. Sistematika Penulisan

BAB I : PENDAHULUAN

Dalam hal ini berisikan mengenai latar belakang,rumusanmasalah,tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II : LANDASAN TEORI

Dalam bab ini dijelaskan tentang teori pendukung yang digunakanuntukpembahasan dan cara kerja dari rangkaian teori pendukung ituantara lain tentang Mikrokontroler Atmega8535, water flow sensor G1/2, bahasaprogram yang dipergunakan, serta cara kerja dari mikrokontrolerAtmega8535 dan komponen pendukung.

BAB III : RANCANGAN SISTEM

Pada bab ini akan dibahas perancangan dari alat , yaitu blok darirangkaian, skematik dari masing-masing rangkaian dan diagram alirdari program yang diisikan ke Mikrokontroler ATMega 8535.

BAB IV : PENGUJIAN RANGKAIAN

(17)

rangkaian serta di isikan program ke mikrokontrolerATMega8535.

BAB V : KESIMPULAN DAN SARAN

(18)

BAB II

LANDASAN TEORI

2.1 Water Flow Sensor G1/2

Water Flow sensor terdiri dari tubuh katup plastik, rotor air, dan sensor hall efek. Ketika air mengalir melalui, gulungan rotor-rotor. Kecepatan perubahan dengan tingkat yang berbeda aliran. Sesuai sensor hall efek output sinyal pulsa. Kelebihan sensor ini adalah hanya membutuhkan 1 sinyal (SIG) selain jalur 5V dc dan Ground. Perhatikan gambar di bawah ini.

(19)

Gambar 2.2 Mechanic Dimensi Water Flow sensor G1/2

No. Name Quantity/

kuantitas Material

Note/ catatan

1 Valve body 1 PA66+33%glass fiber

2 Stainless steel bead 1 Stainless steel SUS304

3 Axis 1 Stainless steel SUS304

4 Impeller 1 POM

5 Ring magnet 1 Ferrite

6 Middle ring 1 PA66+33%glass fiber

7 O-seal ring 1 Rubber

8 Electronic seal ring 1 Rubber

9 Cover 1 PA66+33%glass fiber

10 Screw 4 Stainless steel SUS304 3.0*11

11 Cable 1 1007 24AWG

Tabel 2.1 Komponen Sensor

(20)

a. Bekerja padategangan5V DC-24VDC b. Arus Maksimum saat ini15 mA(DC5V) c. Berat sensor43 g

d. Tingkat Aliranrentang 0,5~ 60L / menit e. SuhuPengoperasian 0°C~ 80°

f. Operasikelembaban35%~ 90% RH g. Operasitekanan bawah1.75Mpa h. Store temperature -25°C~+80° i. Store humidity 25%~90%RH

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.

(21)

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.

(22)

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.3 Konfigurasi pin Atmega8535

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

(23)

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.

(24)

2.2.3.Peta Memori ATMega8535

ATMega8535 memiliki dua jenis memori yaituProgram Memory dan Data Memoryditambah satu fitur tambahan yaitu EEPROMMemory untuk penyimpan data.

a. Program Memori

ATMEGA 8535 memiliki On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memory 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.

(25)

b. Data Memory

Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535. Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register File dan I/O Memory 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.5 Peta Memori Data

c. EEPROM Data Memory

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

(26)

Gambar 2.6 EEPROM Data Memory

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.7 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

(27)

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 OverflowFlag V.

Bit 3 –V : Two’s Complement Overflow Flag

Digunakan dalam operasi aritmatika

Bit 2 – N : Negative Flag

Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.

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.3Liquid Crystal Display (LCD) 2x16

(28)

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)

Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data.

D0 – D7 (Pin 7 – Pin 14)

Merupakan Data Bus 1 -7

Anoda ( Pin 15)

Merupakan masukan tegangan positif backlight

(29)

Merupakan masukan tegangan negatif backlight

Gambar 2.8 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.

(30)

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

PemrogramanmikrokontrolerATmega8535dapatmenggunakanlowlevelL anguage(assembly)danhighlevellanguage(C,Basic,Pascal,JAVA,dll)tergantungco

mpiler yangdigunakan(WidodoBudiharto,2006).Bahasa

AssemblermikrokontrolerAVR memilikikesamaaninstruksi,sehingga jikapemrogramansatujenismikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontrolerjenismikrokontrolerAVR.Namunbahasaassembler relatiflebih sulit dipelajari dari padabahasa C.

(31)

serta lebih mudah untuk menangani project yang besar. Bahasa C memiliki

keuntungan- keuntungan yang dimiliki bahasa

assembler(bahasamesin),hampirsemuaoperasi 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.

(32)

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:

(33)

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.

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

Tabel 2.2 Pemodifikasi

(34)

#include <mega.8535> 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

(35)

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

komentar dengan tanda ― */ ―.

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 .h disebut 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>

(36)

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:

Operator Keterangan

+ Operator untuk penjumlahan - Operator untuk pengurangan * Operator untuk perkalian / Operator untuk pembagian % Operator untuk sisa bagi

Tabel 2. 3 Operator Aritmatika

Contoh penggunaan operator aritmatika dapat dilihat di bawah ini,

#include < mega8535.h>

(37)

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:

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

Tabel 2. 4 Operator Pembanding

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:

Operator Keterangan && Logika AND | | Logika OR

! Logika NOT

Tabel 2. 5 Operator Logika

(38)
(39)

2.5.8 Operator Bitwise

Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator bitwise dapat dilihat pada tabel di bawah ini:

Operator Keterangan

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

Tabel 2.6 Operator Bitwise

Contoh program:

(40)

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:

Operator Keterangan

= Memberikan nilai variabel += Menambahkan nilai variabel - = Mengurangi nilai variabel *= Mengalikan nilai variabel

/= Membagi nilai variable %= Memperoleh sisa bagi

Tabel 2.7 Operator Penugasan

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:

Operator Contoh Arti

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

(41)

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:

Operator Keterangan

++ Penambahan 1 pada variable

-- Pengurangan

Tabel 2. 9 Operator Penambahan dan Pengurangan

Contoh:

a = 1;

b = 2;

a ++;

b --;

Penjelasan:

(42)

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;

...; }

(43)

3. If di dalam if

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; }

(44)

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)

{

case nilai_1 : pernyataa_1;break; case nilai_2 : pernyataan_2;break;

case niai_3 : pernyataan_3;break;

Defaut : pernyataan_default;break; }

(45)

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.

2.5.13 Pernyatan While

(46)

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++;

}

(47)

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 :

do {

// 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.6.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)

(48)

// sebuah pernyataan atau blok pernyataan

}

Nilai_awal adaah 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).

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

(49)

Instruksi‐instruksi yang merupakan bahasa C tersebut dituliskan pada sebuah editor, yaitu Code Vision AVR.

Gambar 2.9 Tampilan software codevision AVR

BAB III

PERANCANGAN DAN SISTEM KERJA RANGKAIAN

(50)

Water flow sensor

Keypad

AT

Me

g

a

8

LCD

Driver Relay Pompa

Gambar 3.1 Diagram Blok Rangkaian

3.2 Rangkaian Mikrokontroler ATMega8535

(51)

dengan yang dikehendaki. Rangkaian mikrokontroler ditunjukkan pada gambar berikut ini.

Gambar 3.2. Rangkaian Minimum Mikrokontroler ATMega 8535

3.3 Rangkaian Catu Daya

(52)

seluruh rangkaian, sedangkan keluaran 12 Volt digunakan untuk mensuplai tegangan pada motor stepper saja. Berikut ini adalah skema rangkaian catu daya yang dibuat:

Gambar 3.3 Skematik Rangkaian Catu Daya

Transformator yang digunakan adalah transformator CT Stepdown yang akan menurunkan tegangan 220 Volt AC menjadi 12 Volt AC. Kemudian, tegangan 12 Volt AC ini disearahkan oleh 2 buah dioda 1N5392 sehingga menjadi

12 Volt DC. Kemudian tegangan ini diratakan menggunakan kapasitor 2200 μF.

Tegangan yang sudah diratakan ini kemudian di regulasi oleh LM7805. Hal ini bertujuan agar tegangan yang dihasilkan oleh catu daya ini tetap pada 5 Volt walaupun terjadi perubahan tegangan pada bagian input tegangan dari catu daya. Transistor PNP TIP32 berfungsi untuk membantu mensuplai arus apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tidak panas ketika rangkaian butuh arus yang cukup besar.

(53)

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 dihasilkan oleh rotor. Berikut ini adalah bentuk fisik dan gambar skematik rangkaian flow sensor.

a. Fisik Water flow sensor G1/2 b. skematik rangkaian flow sensor

Gambar 3.4 Fisik dan skematik Water flow sensor G1/2

Warna pin Fungsi

Pin 1 (merah) Vcc (+5 V DC) Pin 2 (kuning) Output pulsa

(54)

Table 3.1 Pin Water flow sensor G1/2

3.5 Rangkaian LCD

Gambar 3.5 skematik Rangkaian LCD

LCD digunakan untuk menampilkan hasil pengolahan data pada mikrokontroler dalam bentuk tulisan. Pada alat ini, mode pemrograman LCD yang digunakan adalah mode pemrograman 4 bit. Dengan demikian, pin data LCD yang dihubungkan ke mikrokontroler hanya pin D4, D5, D6, dan D7. Sedangkan untuk jalur kontrolnya, pin LCD yang dihubungkan adalah pin RS dan E. LCD pada alat ini hanya digunakan sebagai penampil, sehingga pin R/W-nya dihubungkan ke ground.

(55)

Gambar 3.6 Skematik Rangkaian Relay

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

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.

(56)

aktif, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 12 volt, keadaan ini menyebabkan tidak aktif

Kumparan 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.

3.7 Perancangan rangkaian keypad

(57)

Tbl 1 Tbl 2 Tbl 3 Tbl A

Ke

PB

M

ikro

ko

n

tro

le

r

AT

Me

g

a

8

5

3

5

Gambar 3.7 Rangkaian keypad

(58)

BAB IV

PENGUJIAN ALAT DAN PROGRAM

4.1 Pengujian Rangkaian ATMega8535

Untuk menguji rangkaian ATMega8535 ini, maka dibutuhkan rangkaian sebagai berikut ini:

(59)

Kemudian, setelah rangkaian dirakit, kedalam mikrokontroler dimasukkan program berikut ini:

void setup() { pinMode(13, OUTPUT); }

void loop() {

digitalWrite(13, HIGH); // menyalakan LED delay(1000); // delay selama 1 detik digitalWrite(13, LOW); // mematikan LED delay(1000); // delay selama 1 detik }

Ketika program dieksekusi, maka LED pada pin 19 mikrokontroler akan berkedip. Jika LED sudah berkedip, maka dapat dikatakan mikrokontroler dalam keadaan baik.

4.2 Pengujian Rangkaian Catu Daya

Adapun cara untuk menguji rangkaian catu daya adalah dengan mengukur tegangan output yang dihasilkan oleh catu daya tersebut. Berikut ini adalah letak titik pengukuran (test point) yang dipakai untuk menguji rangkaian catu daya tersebut:

Gambar 4.2 Letak Titik Test Point

(60)

Volt. Dengan demikian, dapat disimpulkan bahwa rangkaian ini sudah dapat beroperasi dengan baik.

4.3 Pengujian Water Flow Sensor

Flow Sensor diuji dengan cara menghubungkannya ke mikrokontroler. Sehingga dapat diketahui apakah sensor tersebut dapat berfungsi dengan baik atau tidak. Kemudian, pada mikrokontroler diisikan program berikut ini:

#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

volatile int NbTopsFan; int Calc;

pinMode(hallsensor, INPUT); attachInterrupt(0, rpm, RISING);

(61)

Jika sensor dapat bekerja dengan baik, maka hasil perhitungan aliran cairan akan ditampilkan pada layar LCD.

Out put sensor (ml) Metode gelas ukur (ml)

0250 ml 250 ml

0500 ml 500 ml

1000 ml 1000 ml

Tabel 4.1 Perbandingan out put sensor dengan gelas ukur dalam satuan

milli liter (ml)

4.4 Pengujian Rangkaian LCD

Pengujian rangkaian LCD dilakukan dengan cara menghubungkan LCD ke mikrokontroler seperti gambar berikut ini:

(62)

Agar rangkaian tersebut dapat dioperasikan, maka dimasukkanlah program berikut ini ke dalam mikrokontroler:

#include <mega8535.h>

// LCD module initialization lcd_init(16, 2);

lcd_gotoxy(0,0);

lcd_putsf("My project");

while (1) {

// Place your code here };

}

Ketika program dieksekusi oleh mikrokontroler, maka pada display LCD

akan muncul tulisan ―hello, world‖ pada layar LCD.

4.5 Pengujian Rangkaian Relay

Gambar 4.4 Rangkaian Pengujian Rangkaian Relay

(63)

kumparan relay. Ketika pin JP1 berlogika 0 (0 Volt), maka transistor dalam keadaan tidak aktif, dan kumparan relay tidak dialiri arus listrik. Hal ini akan menyebabkan kontak K1 tidak terhubung.

4.6 Pengujian Rangkaian Keypad

Pengujian rangkaian tombol ini dapat dilakukan dengan menghubungkan rangkaian ini dengan mikrokontroler Atmega8535, kemudian memberikan program sederhana untuk mengetahui baik/tidaknya rangkaian ini. Rangkaian dihubungkan ke port 2. Untuk Mengecek penekanan pada 4 tombol yang paling atas, maka data awal yang dimasukkan ke port 2 adalah FEH. Dengan demikian maka pin P2.0 akan mendapat logika low (0), dan yang lainnya mendapat logika high (1), seperti berikut,

Tbl 1 Tbl 2 Tbl 3 Tbl A

Gambar 4.5 rangkaian pengujian keypad

(64)

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

1 1 1 0 1 1 1 0

Tabel 4.2 Penekanan Tombol 1

Data pada port 2 akan berubah menjadi EEH. Data inilah sebagai indikasi adanya penekanan pada tombol 1.

Jika terjadi penekanan pada Tbl 2, maka P2.0 akan terhubung ke P2.5 yang menyebabkan P2.5 juga akan mendapatkan logika low (0). Seperti berikut,

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

1 1 0 1 1 1 1 0

Tabel 4.3 Penekanan Tombol 2

Data pada port 2 akan berubah menjadi DEH. Data inilah sebagai indikasi adanya penekanan pada tombol 2. Demikian seterusnya untuk tombol-tombil yang lain.

Program yang diisikan pada mikrokontroler untuk menguji rangkaian keypad adalah sebagai berikut:

Tombol1:

Mov P0,#0FEH

Mov a,P0

Cjne a,#0EEH,Tombol2

Setb P3.7

(65)

Tombol2:

Cjne a,#0DEH,Tombol1

Clr P3.7

Sjmp Tombol1

Program diatas akan menunggu penekanan pada tombol 1 dan tombol 2, jika tombol 1 ditekan, maka program akan menyalakan LED yang ada pada P3.7. Jika tombol 2 ditekan, maka program akan mematikan LED yang ada pada P3.7.

(66)

4.7 Flow Chart

START

Baca keypad

Keypad D ditekan

ISI = 0

Pompa nyala

Baca nilai flow sensor

Isi = isi + nilai flow sensor

Nilai keypad >= isi ?

Pompa Mati

END

Tidak Ya

Ya

Tidak

(67)

Penjelasan Flowchart :

- Pertama-tama di awali dengan start dan mikrokontroler menginisialisasi port-port yang akandigunakan untuk keperluan pembacaan sensor dan port untuk menampilkanke LCD.

- Setelah selesai inisilisasi maka mikrokontroler membaca keypad. - Jika di baca kita tekan D sebagai enter.

- Jika tidak di tekan maka mikro akan kembali membaca keypad, jika Ya maka isi dan pompa nyala.

- Jika pompa nyala maka mikrokontroler membaca nilai out put sensor. - Apa bila dalam proses isi maka nilai isi keypad di tambahkan dengan nilai

(68)

4.8 Program secara Keseluruhan

/***************************************************** This program was produced by the

CodeWizardAVR V1.25.8 Standard Automatic Program Generator

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

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x15 ;PORTC #endasm

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

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void) {

// Place your code here frekuensi++;

}

(69)

{

// Reinitialize Timer 1 value TCNT1H=0xD5D0 >> 8;

TCNT1L=0xD5D0 & 0xff; pulsa=frekuensi;

frekuensi=0; }

// Declare your global variables here

int indktor, temp, a, b, c, d, indka, dtot, isi; if (PINB.5==0) {temp=2; indktor=0;}

if (PINB.6==0) {temp=3; indktor=0;}

if (PINB.4==0) {temp=4; indktor=0;} if (PINB.5==0) {temp=5; indktor=0;} if (PINB.6==0) {temp=6; indktor=0;} PORTB.0=1; if (PINB.5==0) {temp=8; indktor=0;} if (PINB.6==0) {temp=9; indktor=0;} PORTB.0=1;

PORTB.1=1; PORTB.2=1; PORTB.3=0; delay_ms(2);

if (PINB.5==0) {temp=0; indktor=0;} PORTB.3=1;

(70)

}

void main(void) {

// Declare your local variables here

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

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTA=0x00; DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out

// State7=P State6=P State5=P State4=P State3=1 State2=1 State1=1 State0=1

PORTB=0xFF; DDRB=0x0F;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00; DDRC=0x00;

// Port D initialization

// Func7=Out Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=0 State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00; DDRD=0x80;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh

// OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;

(71)

// Clock source: System Clock // Clock value: 10,800 kHz // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh

// OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

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

// INT0 Mode: Falling Edge // INT1: Off

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x04;

// Analog Comparator initialization // Analog Comparator: Off

(72)

ACSR=0x80; SFIOR=0x00;

// LCD module initialization lcd_init(16);

(73)
(74)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari evaluasi hasil kerja alat dapat diambil beberapa kesimpulan dalam tugas akhir ini.

1. Water flow sensor yang digunakan berfungsi sebagai indilator pengukuran volume air.

2. Penggunaan Mikrokontroller ATMega8535 dapat mengontrol volume air yang diukur oleh water flow sensor.

(75)

5.2 Saran

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

1. Agar dilakukan peningkatan kemampuan pada alat ini, sehingga semakin cerdas dengan mengkombenasikan dengan komponen lain, sehingga sistem kerjanya akan lebih baik lagi.

2. Untuk dimasa yang akan datang, agar alat ini dapat di tingkatkan dan dikembangkan dengan tampilan LCD yang lebih canggih.

(76)

DAFTAR PUSTAKA

Agfianto, Belajar Mikrokontroler Teori dan Aplikasi, Edisi Kedua, Penerbit: Gava Media, Yogyakarta, 2004

Ardi Winoto, Mikrokontroler AVR – Atmega8/32/16/8535 dan pemrogramanya

Dengan bahasa C pada WinAVR, Informatika, Bandung, 2008.

Agfianto, Teknik Antarmuka Komputer: Konsep dan Aplikasi, Edisi Pertama, Penerbit: Graha Ilmu, Yogyakarta, 2002

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

Haryanto, Pemrogaman Bahasa C Untuk Mikrokontroler ATMega8, Jakarta: Penerbit. PT. Elex Media Komputindo, 2005

http://www.atmel.com

Gambar

Gambar 2.2 Mechanic Dimensi Water Flow sensor G1/2
Gambar 2.3 Konfigurasi pin Atmega8535
Gambar 2.5 Peta Memori Data
Gambar 2.6 EEPROM Data Memory
+7

Referensi

Dokumen terkait

Adapun ibrah yang dapat diambil dari penerapan perkembangan Islam suku Samin Blora di desa Samin Kudus di antaranya adalah dapat lebih memahami kearifan lokal dan tetap

• Hukum acara pidana dilihat dari proses perkara pidana atau Hukum Acara Pidana dalam arti sempit yaitu memuat aturan tentang penyelenggaraan segala upaya

This makes it impossible to use fes:Function in conjunction with that operations, and does not harmonize with other operations such as BinarySpatialOpType where fes:expression

Pada hari ini Senin tanggal Dua puluh tujuh bulan Agustus tahun Dua Ribu Dua Belas (27-08-2012) dimulai pukul Sepuluh Waktu Indonesia Barat (10.00 WIB) dan selesai pukul Dua belas

akan ditunjuk untuk melaksanakan pekerjaan Jasa Penyelenggaraan Assessment Center Bagi. Para Pejabat Eselon II dan III di

Jakarta, 9 Agustus 2012 tanggal 9 Agustus 2012, dengan ini kami umumkan Pemenang dan Calon Pemenang Cadangan 1 Jasa Lainnya untuk kegiatan tersebut di atas, sebagai berikut:.

Ruang Rapat Panitia Pengadaan Barang dan Jasa Ditjen Pengelolaan Utang di Gedung Frans Seda Lantai I Jl Dr Wahidin Raya No.1 Jakarta Pusat, telah dilaksanakan

Jumlah Penyedia yang telah mendaftar untuk mengikuti Pelelangan Umum Dengan. Pascakualifikasi Pekerjaan Pengadaan Belanja Modal Peralatan dan Mesin pada