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
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
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
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
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
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
terbuka terhadap saran maupun kritikan dalam sebuah diskusi yang membangun
dari pembaca.
Akhir kata penulis mengharapkan semoga tugas akhir ini dapat bermanfaat
bagi pembaca.
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.
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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.
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.
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.
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
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)
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
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
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
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
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)
{
unsigned d, e;
DDRC = 0Xff; //set PORTC sebagai output
PORTB = 0x00;
DDRB = 0Xff; // set PORTB sebagai output
While(1)
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
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
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.
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
Contoh program:
#include < mega8535.h>
#include <delay.h>
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
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);
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
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 --;
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
Pernyataan ini sering disebut nested if atau if bersarang. Salah satu bentuknya
adalah sebagai berikut:
if (kondisi1)
contoh program:
if ( PINA.0 = =1)
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;
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
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.
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 :
// 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
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
Instruksi‐instruksi yang merupakan bahasa C tersebut dituliskan pada sebuah
editor, yaitu Code Vision AVR.
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 :
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
Gambar 3.1.Diagram Blok Sistem
3.1.1. Fungsi Tiap Blok
1. Blok mikrokontroller : Mengkonversi data dari sensor ke LCD.
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
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
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
(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
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
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
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,
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
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
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/
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");
}
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
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
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
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
AVR Core Clock frequency: 8.000000 MHz
#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);
// 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) |
// 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;
// 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 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:
// Characters/line: 16
while (1)
liter=data*0.0019455;//0.0019455=1/514;
lcd_gotoxy(0,0);
liter=data*0.0019455;//0.0019455=1/514;
loop++;
liter=data*0.0019455;//0.0019455=1/514;
ftoa(liter,2,temp);
if (liter>=3)
{
pump=0;
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.
Tabel 4.2. Pengukuran Waktu Aliran Air
Dari Table 4.2. dapat ditentukan debit dari tiap pengukuran dan debit rata-rata
antara lain :
1. Untuk volume 1 liter
Pengukuran Pertama
1
Pengukuran Kedua
2
Pengukuran Ketiga
Gambar 4.3. Grafik Pengukuran Debit Dalam 1 Liter
2. Untuk volume 2 liter
Pengukuran Pertama
4
Pengukuran Kedua
5
Pengukuran Ketiga
6
Gambar 4.4. Grafik Pengukuran Debit Dalam 2 Liter
3. Untuk volume 3 liter
Pengukuran Pertama
7
Pengukuran Kedua
8
Pengukuran Ketiga
9
Gambar 4.5. Grafik Pengukuran Debit Dalam 3 Liter
Debit rata – rata dari pengukuran antara lain :
rata
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