SISTEM KONTROL ALAT UKUR FLUIDA MENGGUNAKAN WATER FLOW SENSOR YF-S201
TUGAS AKHIR
ROIS ALGHAFAR SITANGGANG 132411023
PROGRAM STUDI D-3 METROLOGI DAN INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN
2016
SISTEM KONTROL ALAT UKUR FLUIDA MENGGUNAKAN WATER FLOW SENSOR YF-S201
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
ROIS ALGHAFAR SITANGGANG 132411023
PROGRAM STUDI D-3 METROLOGI DAN INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN
2016
PERSETUJUAN
Judul : Sistem Kontrol Alat Ukur Fluida Menggunakan Water Flow Sensor Yf-S201
Kategori : Tugas Akhir
Nama : Rois Alghafar Sitanggang
Nomor Induk Mahasiswa : 132411023
Program Studi : D3 Metrologi Dan Instrumenntasi
Departemen : Fisika
Fakultas : Matematika Dan Ilmu Pengetahuan Alam Universitas Sumatera Utara
Medan, 25 Juli 2016
Mengetahui Menyetujui
Ketua Program Studi Dosen Pembimbing
D3 Metrologi Dan Instrumentasi Tugas Akhir
Dr. Diana A. Barus, M.Sc Junedi Ginting, S.Si., M.Si NIP. 19660729 199203 2 002 NIP. 197306222003121001
PERNYATAAN
SISTEM KONTROL ALAT UKUR FLUIDA MENGGUNAKAN WATER FLOW SENSOR YF-S201
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri.Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2016
Rois Alghafar Sitanggang 132411023
PENGHARGAAN
Alhamdulillahirobbil’alamin, segala puji dan syukur bagi Allah Subhanahuwata’ala yang telah melimpahkan barokah, rahmat, hidayah-Nya dan menganugerahkan kemudahan serta kelancaran sehingga penulis dapat menyelesaikan penulisan Tugas Akhir ini sesuai waktu yang telah di tetapkan yang merupakan salah satu syarat dalam mencapai gelar Ahli Madya pada Program Studi D3 Metrologi dan Instrumentasi. Tak lupa pula sholawat dan salam semoga senantiasa tercurahkan kepada Rasulullah Sallallahu’alaihiwassalam sang pembawa petunjuk dan selalu menjadi inspirasi dan tauladan bagi penulis.
Demi kelancaran dalam penyelesaian laporan Tugas Akhir ini tidak lepas dari bantuan berbagai pihak terutama kepada Ayahanda Kasiruddin Sitanggang dan Ibunda Renni Wati, yang telah memberikan bantuan moril maupun materil, semangat dan do’a yang begitu besar kepada penulis.
Terima kasih penulis sampaikan kepada Bapak Junedi Ginting, M.Si selaku pembimbing 1 dan Dr. Diana A Barus, M.Sc selaku Ketua Program Study D3 Metrologi & Instrumentasi FMIPA USU yang sekaligus pembimbing 2 saya, Dekan dan Wakil Dekan FMIPA USU, seluruh Staff dan Dosen D3 Metrologi &
Instrumentasi FMIPA USU, Pegawai D3 Metrologi & Intrumentasi FMIPA USU dan seluruh teman teman D3 Metrologi & Intrumentasi angkatan 2013 yang telah membantu penulis menyelesaikan Tugas Akhir.
ABSTRAK
Telah dibuat alat ukur dan pengontrol debit air berbasis mikrokontroller ATMega16. Alat ini dibuat untuk mengukur dan mengontrol aliran air pada suatu penampungan cairan supaya mempermudah pekerjaan dalam bidang industri serta mengetahui nilai kebenaran cairan yang di kontrol.Dalam penggunaan dan pemanfaatan sistem Instrumentasi ini pekerjaan manusia akan terselesaikan dengan waktu yang cepat, tepat dan akurat.
ABSTRACK
Has made a measuring instrument and birth-control discharge of water based mikrokontroller atmega16 .This instrument is made to measure and control the flow of water in a shelter ease a liquid so that the work in the field of industrial and knowing the value of the truth of a liquid in control .In the use and utilization of instrumentation system this work will be intractable human with time fast , proper and accurate .
DAFTAR ISI
Persetujuan ... i
Pernyataan ... ii
Penghargaan ... iii
Abstrak ... iv
Abstrack ... v
Daftar Isi ... vi
Daftar Tabel ... viii
Daftar Gambar ... ix
Daftar Lampiran ... x
BAB 1. PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan Penulisan ... 2
1.4 Batasan Masalah ... 2
1.5 Sistematika Penulisan ... 3
BAB 2. LANDASAN TEORI 2.1 Water Flow Sensor Yf-S201 ... 4
2.2 Mikrokontroller ATMega16 ... 6
2.2.1 Konfigurasi Pin ATMega16 ... 7
2.2.2 Port Sebagai Input/output Digital ... 8
2.2.3 Peta Memori ... 9
2.2.4 Pulse Width Modulation (PWM) ... 10
2.3 Relay ... 12
2.4 Key Pad 3x4 ... 13
2.5 LCD 16X2 ... 14
2.6 IC Regulator 7805... 15
BAB 3 PERANCANGAN DAN PEMBUATAN 3.1 Perancangan Blok Diagram ... 16
3.2 Flow Chart Sistem ... 17
3.31 Perancangan Rangkaian Minimum Sistem ... 18
3.3.1 Rangkaian Mikrokontroller ATMega16 ... 18
3.3.2 Rangkaian LCD (Liquid Crystal Display) ... 18
3.3.3 Rangkaian Relay ... 19
3.3.4 Rangkaian Water Flow Sensor... 20
3.3.5 Rangkaian Kypad 3x4 ... 21
3.4 Rangkaian Keseluruhan Sistem ... 22
3.5 Pemrograman Sistem ... 23
BAB 4 HASIL DAN PEMBAHASAN 4.1 Hasil ... 33
4.2 Pembahasan ... 33
BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 34
5.2 Saran ... 34
Daftar Pustaka ... 35
DAFTAR TABEL
3.1 Tombol Key Pad Perancangan ... 21 4.1 Tabel Hasil Pengujian ... 33
DAFTAR GAMBAR
2.1 Water Flow Sensor Yf-S201 ... 5
2.2 ATMega16 ... 6
2.3 Port Input/Output Digital ... 9
2.4 Peta Memori ... 10
2.5 Key Pad 3x4 ... 13
2.5 LCD 16x2 ... 14
3.1 Diagram Blok ... 16
3.2 Rangkaian Minimum ATMega16 ... 18
3.3 Rangkaian LCD ... 19
3.4 Rangkaian Relay ... 20
3.5 Rangkaian Water Flow Sensor ... 20
3.6 Rangkaian Key Pad ... 21
3.7 Rangkaian Keseluruhan ... 22
LAMPIRAN
BAB 1 PENDAHULUAN 1.1 Latar Belakang
Berbagai jenis teknologi telah banyak diciptakan oleh manusia untuk mempermudah pekerjaan yang dilakukan.Salah satu teknologi yang berkembang ialah teknologi di bidang pengukuran suatu aliran fluida.Aplikasi pengendali aliran air ini sangat banyak dibutuhkan dalam hal hal tertentu.Contohnya, pada pompa bensin bbm untuk mengBetahui banyak bensin yang di gunakan, pengisian minuman botol dipabrik, pada instalasi saluran pipa air dari PDAM ke rumah warga dan masih banyak 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 ATMega16 sebagai pusat kontrol sensor, LCD sebagai display dari output sensor, relay, pompa air. Hasilmenunjukkkan Mikrokontroler ATMega16 mempunyai input sensor flow (sensor aliran), dan sensor ini akan mendeteksi kecepatan aliran suatu fluida yang di konfrensikan menjadi volume air dan menampilkannyapada LCD. Alat ini menggunakan sebuah pompa air yang berfungsi untuk sebagai aliran zat cair atau 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 ATmega16 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 milli liter (ml), dan batas maksimum 5000 milli 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 ATMega16 sebagai pusat kendalinya beserta software pemrograman dasar dari mokrokontroller, LCD sebagaitampilannya, Pompa air sebagai aliran fluida, dan PSA.
1.3. Tujuan Penulisan
Adapun tujuan penulisan laporan Tugas Akhir ini adalah untuk:
1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma Tiga(D-III) Metrologi & Intrumentasi FMIPA Universitas Sumatera Utara.
2. Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasipengontrolan danelektronika sebagai bidang diketahui.
3. Membuat rangkaian Sistem Kontrol Aliran Air Dengan Mikrokontroler ATMega16.
1.4. Batasan Masalah
Mengacu pada hal diatas Penulis Pengujian rangkaian Sistem Kontrol Aliran Air Dengan Mikrokontroler Atmega16 Dan Pemograman C, dengan batasan- batasan sebagaiberikut :
1. Pembahasan mikrokontroler ATMega16.
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 ATMega16, water flow sensor YF-S201, rangkaian pendukung, analisa pengukuranbeserta program dasarnya.
1.5. Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman, maka penulis membuat sistematika penulisan laporan ini sebagai berikut :
BAB 1 PENDAHULUAN
Meliputi latar belakang masalah, rumusan masalah, tujuan penulisan, batasan masalah, dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Dalam bab ini akan dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja rangkaian.
BAB 3 PERANCANGAN DAN PEMBUATAN
Meliputi tentang perancangan rangkaian dan program yang digunakan.
BAB 4 HASIL DAN PEMBAHASAN
Meliputi pengujian alat dan analisanya.
BAB 5 KESIMPULAN DAN SARAN
Mengenai kesimpulan yang didapat setelah membuat tugas akhir ini dan saran yang diberikan demi pengembangan tugas akhir ini di masa mendatang.
BAB 2
LANDASAN TEORI 2.1 Water Flow Sensor Yf-S201
Sensor aliran air ini terbuat dari palstik dimana didalamnya terdapat rotor dan sensor hall effect.Saat mengalir melewati rotor, rotor akan berputar.
Kecepatan putaran ini akan sesuai dengan besarnya aliran air. Sensor berbasis hall effectini dapat digunakan untuk mendeteksi aliran air hingga 30 liter/menit (1.800 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.
Prinsip kerja sensor ini adalah dengan memanfaatkan fenomena hall effect..hall effect ini didasarkan pada efek medan magnetik terhadap partikel bermuatanyang bergerak. Ketika ada arus listrik yang mengalir pada divais hall effectyang 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.
Ketika mengukur aliran bahan yangmempunyai tekanan, aliran volumetrik tidak terlalu berarti, kecuali kepadatan adalah konstan. Ketika kecepatan (volumetric aliran) dari cairan mampat diukur,factor gelembung udara akan menyebabkan kesalahan, karena itu, udara dan gasharus dipindahkan sebelum mencapai fluida meter, Tidak semua fluida yang berpindah dinamakan fluida bergerak.Yangdimaksud fluida bergerak adalah jika fluida tersebut bergerak lurus terhadapsekitar.Aliran fluida dikatakan aliran garis lurus apabila aliran fluida yangmengalir mengikuti suatu garis (lurus melengkung) yang jelas ujung pangkalnya.Aliran garis lurus juga disebut aliran berlapis atau aliran laminar (laminar flow).
Gambar 2.1 water flow sensor Yf-S201 Fitur:
• Debit air yang dapat diukur: 1 - 30 Ltr / menit
• Maksimum tekanan air: 2 MPa
• Tekanan hidrostatik / Hydrostatic Pressure: ≤ 1,75 MPa
• Catu daya antara 4,5 Volt hingga 18 Volt DC
• Arus: 15 mA (pada Vcc = 5V)
• Kapasitas beban: kurang dari 10 mA (pada Vcc = 5V)
• Maksimum suhu air (water temperature usage): 80°C
• Rentang Kelembaban saat beroperasi: 35% - 90% RH (no frost)
• Duty Cycle: 50%±10%
• Periode signal (output rise / fall time): 0.04µs / 0.18µs
• Diameter penampang sambungan: 0,5 inch (1,25 cm)
• Amplitudo: Low ≤ 0,5V, High ≥ 4,6 Volt
• Kekuatan elektrik (electric strength): 1250 V / menit
• Hambatan insulasi: ≥ 100 MΩ
• Material: PVC
• Tipe sensor hall effect
• Akurasi ±10%
• Berat sensor 43g
2.2 Mikrokontroller8 ATMega16
Microcontrollermerupakan suatu sistem komputer yang seluruh atau sebagian besar elemennya dikemas dalam satu chip IC,sehingga sering juga disebut dengan single chip microcomputer.Microcontroller biasa dikelompokkan dalam satu keluarga, masing-masing microcontroller mempunyai spesifikasi tersendiri namun masih kompatibel daam pemrogramannya.
ATMega16 merupakan mikrokontroler CMOS 8-bit buatan Atmel keluarga AVR. AVR mempunyai 32 register general-purpose, timer/counter dengan metode compare, interrupt eksternal dan internal, serial UART, progammable Watchdog Timer, ADC dan PWM internal.AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga Attiny, keluarga AT902xx, keluarga Atmega, dan keluarga AT86RFxx.Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya.Silahkan buka www.atmel.com untuk informasi lebih lanjut tentang berbagai variasi AVR.Untuk mikrokontroler AVR yang berukuran lebih kecil, silahkan mencoba Atmega8, Attiny2313 dengan ukuran Flash Memory 2KB dengan dua input analog.Mikrokontroler pada dasarnya diprogram dengan bahasa assembler.tetapi saat ini mikrokontroler dapat diprogram dengan menggunakan bahasa tingkat tinggi sepert BASIC, PASCAL atau C.
Gambar 2.2 ATMega 16
Didalam mikrokontroler Atmega16 terdiri dari:
• Saluran I/O ada 32 buah, yaitu Port A, Port B, Port C, dan Port D.
• ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.
• Tiga buah Timer/Counter dengan kemampuan perbandingan.
• CPU yang terdiri dari 32 register.
• 131 intruksi andal yang umumnya hanya membutuhkan 1 siklus clock.
• Watchdog Timer dengan oscilator internal.
• Dua buah Timer/Counter 8 bit.
• Satu buah Timer /Counter 16 bit.
• Tagangan operasi 2.7 V - 5.5 V pada Atmega16.
• Internal SRAM sebesar 1KB.
• Memory Flash sebesar 16KB dengan kemampuan Read While Write.
• Unit interupsi internal dan eksternal.
• Port antarmuka SPI.
• EEPROM sebesar 512 byte dapat diprogram saat operasi.
• Antar muka komparator analog.
• 4 channel PWM.
• 32x8 general purpose register.
• Hampir mencapai 16 MIPS pada Kristal 16 MHz.
• Port USART programmable untuk komunikasi serial.
2.2.1 Konfigurasi Pin ATmega16
Atmega 16 memepunyai kaki standart 40 pin PID yang mempunyai fungsi sendiri-sendiri.
1. VCC merupakan pin masukan positif catudaya. Setiap peralatan elektronika digital tentunya butuh sumber catu daya yang umumnya sebesar 5 V, itulah sebabnya di PCB kit rangkaian mikrokontroler selalu dipasang IC regulator 7805.
2. GND sebagai PIN ground.
3. Port A (PA0 ... PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin masukan ADC.
4. Port B (PB0 ... PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter, Komparator Analog, dan SPI.
5. Port C (PC0 ... PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Oscilator.
6. Port D (PD0 ... PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal, dan komunikasi serial.
7. Reset merupakan pin yang digunakan untuk me-reset mikrokontroler ke kondisi semula.
8. XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal. Suatu mikrokontroler membutuhkan sumber detak (clock) agar dapat mengeksekusi intruksi yang ada di memori. Semakin tinggi nilai kristalnya, maka semakin cepat pula mikrokontroler tersebut dalam mengeksekusi program.
9. AVCC sebagai pin masukan tegangan untuk ADC.
10. AREF sebagai pin masukan tegangan referensi.
2.2.2 Port Sebagai Input/Output Digital
ATMega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf
‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.
Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin.
Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output.
Pin port adalah tri-state setelah kondisi reset.
Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi
sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0).
Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Untuk lebih jelasnya, dapat dilihat pada gambar berikut.
Gambar 2.3 Port Input/Output Digital 2.2.3 Peta Memori
AVR ATMega16 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 1kb SRAM internal.
Register keperluan umum menempati space data pada alamat terbawah, yaitu
$00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk
mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi – fungsi I/O, dan sebagainya.
Alamat memori berikutnya yang digunakan untuk SRAM 1kb, yaitu pada lokasi
$60 sampai dengan $45F.Konfigurasi memori data ditunjukan pada gambar berikut.
Gamabar 2.4 Peta Memori
Mikrokontroler disini digunakan sebagai komunikasi antara komputer dengan Plant, dimana digunakan komunikasi serial RS232 sebagai komunikasi antara Mikrokontroler dengan Komputer.
2.2.4 Pulse Width Modulation (PWM)
PWM atau modulasi lebar pulsa adalah salah satu keunggulan dari Timer/Counter yang terdapat pada ATMega16.Ketiga jenis Timer/Counter pada ATMega32 dapat menghasilkan pulsa PWM.Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur.Pulsa PWM berfungsi mengatur kecepatan motor DC, mengatur gelap terang LED dan lain sebagainya.
Untuk memahami penggunaan PWM, disini digunakan Timer/Counter 1 sebagai PWM. PWM adalah Timer Mode Output Compare yang canggih.Mode PWM timer juga dapat mencacah turun yang berlawanan dengan mode Timer lainya yang hanya mencacah naik. Pada mode PWM tersebut,
Timer mencacahnaik hingga mencapai nilai TOP, yaitu 0xFF untuk PWM 8 bit.
Timer/Counter 1 memiliki PWM 9 bit dan PWM 10 bit, selain PWM 8 bit.
Pemilihan Timer Mode PWM diseting melalui bit WGM01 dan bit WGM00 pada register TCCR0. Tabel Konfigurasi Bit WGM01 dan WGM00 dapat dilihat pada tabel berikut.
Sebagai penggunaan mode PWM Timer / Counter 0, keluaran sinyal PWM terletak pada pin OC0 sehingga pada contoh ini LED diletakkan pada pin OC0.
Ketika nilai TCNT0 sama dengan nilai pada OCR0, maka output pada OC0 akan berlogika nol atau berlogika satu, tergantung pada pemilihan mode PWM. Anda dapat memilih mode normal atau mode inverted PWM. Pemilihan mode PWM diseting melalui bit COM01 dan bit COM00 pada register TCCR0 yang konfigurasinya seperti tabel berikut.
Tabel Konfigurasi Bit COM01 dan COM00 Compare Output Mode Phase Correct PWM
Dari tabel diatas dapat diketahui saat COM00 clear dan COM01 set, pin OC0 clear saat timer mencacah diatas Compare Match dan pin OC0 set saat timer mencacah dibawah Compare Match atau non-inverting PWM. Kebalikannya, saat
COM00 set dan COM01 juga set, maka pin OC0 set saat timer mencacah diatas Compare Match dan pin OC0 clear saat mencacah dibawah Compare Match atau disebut juga inverting PWM.
2.3 Relay
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi.
Relay terdiri dari 4 komponen dasar yaitu : 1. Electromagnet (Coil)
2. Armature
3. Switch Contact Point (Saklar) 4. Spring
Beberapa fungsi Relay yang telah umum diaplikasikan kedalam peralatan Elektronika diantaranya adalah :
• Relay digunakan untuk menjalankan Fungsi Logika (Logic Function)
• Relay digunakan untuk memberikan Fungsi penundaan waktu (Time Delay Function)
• Relay digunakan untuk mengendalikan Sirkuit Tegangan tinggi dengan bantuan dari Signal Tegangan rendah.
• Ada juga Relay yang berfungsi untuk melindungi Motor ataupun komponen lainnya dari kelebihan Tegangan ataupun hubung singkat (Short).
2.4 Key Pad 3x4
Keypad merupakan komponen elektronik yang digunakan sebagai masukan, disususun dari beberapa tombol/switch dengan teknik matrix.keypad merupakan tombol-tombol yang dirangkai menjadi sebuah paket dengan teknik menghubungkan satu tombol dengan tombol yang la15in dengan teknik matrix.
Teknik matrix adalah bisa dikatakan array, memiiki kolom dan baris lebih dari satu.
Penyusun tombol pada keypad dapat dibuat dari bermacam-macam bahan/komponen, seperti switch metal, switch karbon, dan resistif/kapasitif (touch panel). Penggunaan bahan tersebut disesuaikan dengan kebutuhan akan sensifitas, aksi penekanan, dan kebutuhan akan suatu tombol khusus.
Gambar 2.5 Key Pad 3x4
2.5 LCD 16X2
LCD 16×2 adalah salah satu penampil yang sangat populer digunakan sebagai interface antara mikrokontroler dengan user nya. Dengan penampil LCD 16×2 ini user dapat melihat/memantau keadaan sensor ataupun keadaan jalanya program. Penampil LCD 16×2 ini bisa di hubungkan dengan mikrokontroler apa saja. Salah satunya dari keluarga AVR ATMega baik ATMega32,ATMega16 ataupun ATMega8535 dan ATMega 8.
Gambar 2.6 LCD 16x2
Berikut ini adalah skematik diagram / rangkaian LCD 16×2 :
dari gambar tersebut dapat dilihat bahwa LCD 16×2 mempunya 16 pin. sedangkan pengkabelanya adalah sebagai berikut :
1. Kaki 1 dan 16 terhubung dengan Ground (GND) 2. Kaki 2 dan 15 terhubung dengan VCC (+5V)
3. Kaki 3 dari LCD 16×2 adalah pin yang digunakan untuk mengatur kontras kecerahan LCD. Jadi kita bisa memasangkan sebuah trimpot 103 untuk mengatur kecerahanya.Pemasanganya seperti terlihat pada rangkaian tersebut. Karena LCD akan berubah kecerahanya jika tegangan pada pin 3 ini di turunkan atau dinaikan.
4. Pin 4 (RS) dihubungkan dengan pin mikrokontroler 5. Pin 5 (RW) dihubungkan dengan GND
6. Pin 6 (E) dihubungkan dengan pin mikrokontroler
7. Sedangkan pin 11 hingga 14 dihubungkan dengan pin mikrokontroler sebagai jalur datanya.
2.6 IC Regulator 7805
Regulator ini menghasilkan tegangan output stabil 5 Volt dengan syarat tegangan input yang diberikan minimal 7-8 Volt (lebih besar dari tegangan output) sedangkan batas maksimal tegangan input yang diperbolehkan dapat dilihat pada datasheet IC 78XX karena jika tidak maka tegangan output yang dihasilkan tidak akan stabil atau kurang dari 5 Volt.
BAB 3
PERANCANGAN DAN PEMBUATAN 3.1 Perancangan Blok Diagram
Diagram merupakan pernyataan hubungan yang berurutan dari suatu atau lebih komponen yang memiliki kesatuan kerja tersendiri, dan setiap blok komponen mempengaruhi komponen yang lainnya. Diagram blok merupakan salah satu cara yang paling sederhana untuk menjelaskan cara kerja dari suatu sistem. Dengan diagram blok kita dapat menganalisa cara kerja rangkaian dan merancang hardware yang akan dibuat secara umum.
Adapun diagram blok dari sistem yang dirancang,seperti berikut:
ATMEGA16 KEYPAD
FLOWMETER RELAY POMPA AIR
LCD
Gambar 3.1 Diagram Blok Fungsi Tiap Blok:
1. Blok keypad : Sebagai input data
2. Flow meter : Untuk menghitung aliran air yang lewat
3. Blok mikrokontroller : Mengolah data dari sensor flow meter dan keypad 4. Blok LCD : Penampil data hasil akhir
5. Relay : Sebagai saklar
6. Pompa Air : Sebagai pemompa air dari wadah
Dari diagram blok di atas menggambarkan bahwa sistem yang penulis rancang akan mengkontrol cairan dengan menggunakan sensor flow meter untuk mengkontrol cairan. Ketika sensor telah mendapatkan jarak yaitu dengan menerjemahkan sifat fisis jarak menjadi sinyal listrik yaitu perubahan tegangan output sensor, maka kemudian output ini dibaca oleh ADC internal dari mikrokontroler ATMega 16. Nilai ketebalan yang sedang di pantau oleh sensor akan ditampilkan ke display LCD (Liquid Crystal Display).
3.2 Flow Chart Sistem
START
INIT
Baca Keypad
Tampilkan ke LCD
Proses pengisian
END
\\\\
3.3 Perancangan Rangkaian Minimum Sistem 3.3.1 RangkaianMikrokontroller ATMega 16
Minimum sistem merupakan bagian utama dari pembuatan alat ini supaya berfungsi dengan baik. Pada pin 12 dan 13 adalah pin Kristal eksternal yang harus dirangkai dengan Kristal sebagai sumber clockATMega16. Pada pin 9 adalah pin RESET yang harus dirangkai dengan rangkaian reset, yang berfungsi sebagai pe- resetprogram apabila terjadi error saat program berjalan.
Gambar 3.2 Rangkaian minimum ATMega 16 3.3.2 RangkaianLCD (Liquid Crystal Display)
Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 16 x 2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler dapat member data langsung ke LCD, pada LCD Hitachi - M1632 sudah terdapat driver untuk mengubah data ASCII output mikrokontroler menjadi tampilan karakter.
Pemasangan potensio sebesar 5 KΩ untuk mengatur kontras karakter yang tampil.Gambar 3.4 berikut merupakan gambar rangkaian LCD yang dihubungkan ke mikrokontroler.
Gambar 3.3 Rangkaian LCD
3.3.3 Rangkaian Relay
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.
Gambar 3.4 Rangkaian Relay 3.3.4 Rangkaian Water Flow Sensor
Water flow sensor yang digunakan adalah Yf-S201, sensor bekerja dengan sistem hall effect. Sensor hall effect akan mengeluarkan output pulsa sesuai dengan besarnya aliran air. Pulsa pulsa tersebut akan di olah oleh mikrokontroller berupa counter volume air yang melewati sensor. Rangkaian bekerja pada rangkaian 5 volt sampai 24 volt DC. Arus maksimum pada tegangan 5volt DC adalah sebesar 15 mA.
Gambar 3.5 Rangkaian Water Flow Sensor
3.3.5 Rangkaian Keypad 3x4
Gambar 3.6 menunjukkan rangkaian ATMega16 ke keypad. Baris A, B, C dan D sebagai input ke mikrokontroller pada portd D0 sampai D3. Kolom 1, 2, 3 dan 4 sebagai output dari mikrokontroller port D4 sampai D7.
Gambar 3.6 Rangkaian keypad Tabel 3.1 Tombol Keypad Perancangan
NO Tombol Tombol Pilihan Keterangan
1 Angka 0 sampai 9 Untuk input angka
2 Khusus
* Untuk menjalankan perintah
# Untuk membatalkan perintah
Mode khusus merupakan mode utama yang disedia kan untuk melanjutkan atau membatalkan perintah yang telah di input, dimana tombol (*) untuk
melanjutkan perintah dan tombol (#) untuk membatalkan perintal, sedangkan mode angka digunakan untuk menginput data.
3.4 Rangkaian Keseluruhan Sistem
Rangkaian sistem elektronik atau perangkat keras dalam sistem pengukur debit air ini meliputi rangkaian keypad, display LCD, sensor dan relay yang dirangkai secara utuh dan saling terhubung ke mikrokontroller.
3.7 Rangkaian Keseluruhan Sitem
Dari gambar diatas penulis menjelaskan bahwa rangkaian yang dibuat menggunakan mikrokontroller ATMega16, water flow sensor YF-S201, keypad 4x3 dan LCD. ATMega16 sebagai papan board yang merupakan pemograman dari alat ini, water flow sensor YF-S201 sebagai sensor yang dapat menjadi pengirim sinyal dan penerima sinyal, keypad berfungsi sebagai tempat menginput data, Liquid Crystal Display (LCD) berfungsi menampilkan data yang dikirim mikrokontroller ATMega16
3.5 Pemograman Sistem
Bahasa Pemrograman (programming language) adalah sebuah instruksi standar untuk memerintah komputer agar mempunyai fungsi tertentu. Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.
Fungsi bahasa pemrograman yaitu memerintah komputer untuk mengolah data sesuai dengan alur berpikir yang kita inginkan. Keluaran dari bahasa pemrograman tersebut berupa program/aplikasi.
Bahasa pemograman yang penulis gunakan disini adalah bahasa pemograman Basic Compiler.Bahasa pemograman ini merupakan suatu program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin.Compiler menggabungkan keseluruhan bahasa program, mengumpulkannya dan kemudian menyusunnya kembali.
Compiler memerlukan waktu untuk membuat suatu program dapat di eksekusi oleh computer, program yang dieksekusi oleh compiler adalah dapat berjalan lebih cepat disbanding program yang diperoduksi oleh interpreter, disamping itu juga bersifat independen.Contoh program yang menggunakan compiler adalah Visual Basic, Visual Delvi, dan Pascal.
Tahap Kompilasi:
1. Pertama source code (program yang ditulis) dibaca kememori computer).
2. Source code tersebut diubah menjadi objek code (bahasa Assembly).
3. Objek code di hubungkan dengan liberary yang dibutuhkan untuk membentuk file yang bisa dieksekusi.
Berikut adalah program yang penulis input:
' =============================
' 1 liter = 380 data ' 100 ml = 38 data ' 10 ml = 3.8 data '
' =============================
$large
$regfile = "m16def.dat"
$crystal = 12000000 ' used crystal frequency
$baud = 9600 ' use baud rate
$hwstack = 32
$swstack = 16
$framesize = 32
' INIT LCD 16X2
Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
Config Lcd = 16 * 2 Cursor Off
Declare Function Cek_tombol() As Byte
'INIT KEYPAD 4x3
Config Kbd = Portb , Debounce = 100 , Rows = 3
Config Int0 = Rising On Int0 Int0_int
'init Timer 1 ke 1 detik
Config Timer1 = Timer , Prescale = 256 Enable Timer1
On Timer1 Int_timer1 Enable Interrupts Timer1 = &HFB8D Enable Int0
Declare Sub Blinkled(byval Lama As Integer)
Led Alias Portd.7 Pump Alias Portc.7
Config Led = Output Config Pump = Output
Dim Nil As Byte
Dim Dt_flow As Integer
Dim Tekan As String * 1 Dim Press As String * 10
Dim I As Integer
Dim Filter As String * 10
Dim Proses As Byte Dim Cek As Byte
Dim Cek_sensor As Bit Dim Volset As Integer Dim Dataset As Integer Dim Dataset_l As Long
Filter = "0123456789"
Cls
Lcd " DEBIT AIR "
Led = 1 Wait 1 Cls
Lcd " ROIS ALGHAFAR "
Lowerline
Lcd " 132411023 "
Wait 1 Cls
Lcd "Input debit air:"
Led = 0 Proses = 0 Cek_sensor = 1
Do
Select Case Proses Case 0:
Proses = 5
' Cek keypad Case 5:
Cek = Cek_tombol() If Cek <> 255 Then
If Len(press) < 5 Then
I = Instr(filter , Tekan) If I > 0 Then
Press = Press + Tekan Proses = 10
End If End If
' jika tekan * maka menuju ke case 20 If Tekan = "*" Then
Proses = 20
' jika tekan # maka menuju ke case 10 Elseif Tekan = "#" Then
Press = ""
Proses = 10 End If
End If
' Hapus data Case 10:
Cls
Lcd "Tekan :" ; Press Waitms 200
Proses = 15
Case 15:
If Cek_tombol() = 255 Then Proses = 0
'Cek data valid dan kalibrasi data sensor ke mililiter Case 20:
Volset = Val(press)
If Volset < 100 Then Volset = 100 ' batasan minimum
If Volset > 10000 Then Volset = 10000 ' batasan maximum
Dataset_l = Volset / 100
Dataset_l = Dataset * 38 ' kalibrasi
Dataset = Dataset_l Cls
Lcd "Pesan:" ; Volset ; "ml"
Lowerline
Lcd "Data:" ; Dataset Wait 5
Cls
Proses = 50 Dt_flow = 0 Cek_sensor = 1
'Aktifkan pompa Case 50:
Pump = 1 Proses = 55
Case 55:
' tunggu hingga perhitungan sensor selesai maka matikan pompa
If Dt_flow > Dataset Then Cek_sensor = 0
Pump = 0 Proses = 60 End If
' tampilkan ke lcd hasil perhitungan Locate 2 , 1
Lcd " "
Locate 2 , 1 Lcd Dt_flow
' pengisian selesai Case 60:
Cls
Lcd "Pesan:" ; Volset ; "lm"
Lowerline
Lcd "Selesai, tekan #"
Wait 1 Proses = 70
'tunggu hingga pencet # Case 70:
If Cek_tombol() = 14 Then Proses = 75
Cls
Lcd "Input debit air:"
Wait 1 Dt_flow = 0 End If
' kembali ke awal Case 75:
If Cek_tombol() = 255 Then Proses = 0
' TESTING Case 100:
Cek = Cek_tombol() If Cek <> 255 Then If Tekan = "1" Then Pump = 1
Elseif Tekan = "2" Then Pump = 0
Elseif Tekan = "3" Then Dt_flow = 0
Elseif Tekan = "4" Then Cek_sensor = 0 Elseif Tekan = "5" Then Cek_sensor = 1 End If
Proses = 120 End If
Case 120:
Proses = 100 Waitms 200
End Select
Waitms 10 Loop
' sub program pengolahan penekanan keypad Function Cek_tombol() As Byte
Local X As Byte
Cek_tombol = Getkbd() Tekan = ""
If Cek_tombol <= 15 Then
Cek_tombol = Lookup(cek_tombol , Dtkeypad) Select Case Cek_tombol
Case 1 : Tekan = "1"
Case 2 : Tekan = "2"
Case 3 : Tekan = "3"
Case 4 : Tekan = "4"
Case 5 : Tekan = "5"
Case 6 : Tekan = "6"
Case 7 : Tekan = "7"
Case 8 : Tekan = "8"
Case 9 : Tekan = "9"
Case 10 : Tekan = "A"
Case 11 : Tekan = "B"
Case 12 : Tekan = "C"
Case 13 : Tekan = "D"
Case 14 : Tekan = "*"
Case 15 : Tekan = "#"
Case 0 : Tekan = "0"
End Select Else
Cek_tombol = 255 End If
End Function
End
Int0_int: ' interups 0 aktif
If Cek_sensor = 1 Then Dt_flow = Dt_flow + 1 ' reset nilai i
Return
Int_timer1: ' jika timer 1 aktif
Timer1 = &HB71A Return
' Data keypad Dtkeypad:
Data 13 , 15 , 0 , 14 , 12 , 9 , 8 , 7 , 11 , 6 , 5 , 4 , 10 , 3 , 2 , 1
BAB 4
HASIL DAN PEMBAHASAN 4.1 Hasil
Pengujian dilakukan untuk mengambil data volume keluaran air dari alat yang kemudian diukur dengan alat ukur standar, ini dilakukan untuk melihat tingkat akurasi alat.
Berikut tabel hasil pengujian yang dilakukan:
No Input (ml) Output (ml) Kesalahan (ml)
1 1000 995 -5
2 900 890 -10
3 800 795 -5
4.1 Tabel hasil pengujian 4.2 Pembahasan
1. 𝑜𝑢𝑡𝑝𝑢𝑡−𝑖𝑛𝑝𝑢𝑡
𝑖𝑛𝑝𝑢𝑡 𝑥 100% = 995−1000
1000 𝑥 100% = 5%
2. 𝑜𝑢𝑡𝑝𝑢𝑡−𝑖𝑛𝑝𝑢𝑡
𝑖𝑛𝑝𝑢𝑡 𝑥 100% = 890−900
900 𝑥 100% = 10%
3. 𝑜𝑢𝑡𝑝𝑢𝑡−𝑖𝑛𝑝𝑢𝑡
𝑖𝑛𝑝𝑢𝑡 𝑥 100% = 795−800
800 𝑥 100% = 5 %
% Ralat = 5%+10%+5%
3 = 6.66%
Dari data diatas bisa disimpulkan bahwa alat tersebut memiliki tingkat akurasi yang cukup baik.
BAB 5
KESIMPULAN DAN SARAN 5.1 Kesimpulan
Dari hasil perancangan dan pengujian pada alat pengukur debit air berbasis mikrokontroller dapat diambil kesimpulan
1. Sistem pengukur debit air yang dirancang telah bekerja dengan baik 2. Alat ini memiliki tingkat kesalahan mencapai 10%
3. Kesalahan pengukuran dapat diakibatkan oleh pengaruh hembusan angin pada rotor yang mempengaruhi sensitivitas putaran baling baling
4. penggunaanMikrokontroller ATMega8535 dapat mengontrol volume air yang diukur oleh water flow sensor.
5.2 Saran
1. Agar debit air lebih maksimum maka diperlukan untuk mengubah sistem deteksi pada water flow sensor
2. Untuk dimasa yang akan datang, agar dapat mengaplikasikan alat ini dengan perkembangan instrumentasi di pabrik atau pun di kehidupan sehari-hari yang lebih maju.
LAMPIRAN
Features
2. High-performance, Low-power AVR® 8-bit Microcontroller 3. Advanced RISC Architecture
– 131 Powerful Instructions – Most Single-clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 16 MIPS Throughput at 16 MHz
– On-chip 2-cycle Multiplier
4. Nonvolatile Program and Data Memories
– 16K Bytes of In-System Self-Programmable Flash
Endurance: 10,000 Write/Erase Cycles
– Optional Boot Code Section with Independent Lock Bits In- System Programming by On-chip Boot Program True Read-While-Write Operation
– 512 Bytes EEPROM
Endurance: 100,000 Write/Erase Cycles
– 1K Byte Internal SRAM
– Programming Lock for Software Security
4. JTAG (IEEE std. 1149.1 Compliant) Interface
– Boundary-scan Capabilities According to the JTAG Standard
– Extensive On-chip Debug Support
– Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface
5. Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
– Real Time Counter with Separate Oscillator
– Four PWM Channels
– 8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels in TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or 200x
– Byte-oriented Two-wire Serial Interface
– Programmable Serial USART
– Master/Slave SPI Serial Interface
– Programmable Watchdog Timer with Separate On-chip Oscillator
– On-chip Analog Comparator
• Special Microcontroller Features
– Power-on Reset and Programmable Brown-out Detection
– Internal Calibrated RC Oscillator
– External and Internal Interrupt Sources
– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby
• I/O and Packages
– 32 Programmable I/O Lines
– 40-pin PDIP, 44-lead TQFP, and 44-pad MLF
• Operating Voltages
– 2.7 - 5.5V for ATmega16L
– 4.5 - 5.5V for ATmega16
• Speed Grades
– 0 - 8 MHz for ATmega16L
– 0 - 16 MHz for ATmega16
The AVR core combines a rich instruction set with 32 general purpose working registers.
All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing
two independent registers to be accessed in one single instruction executed in one clock
cycle. The resulting architecture is more code efficient while achieving throughputs up to
ten times faster than conventional CISC microcontrollers.
The ATmega16 provides the following features: 16K bytes of In-System Programmable
Flash Program memory with Read-While-Write capabilities, 512 bytes EEPROM, 1K
byte SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a
JTAG interface for Boundary-scan, On-chip Debugging support and programming, three
flexible Timer/Counters with compare modes, Internal and External Interrupts, a serial
programmable USART, a byte oriented Two-wire Serial Interface, an 8-channel, 10-bit
ADC with optional differential input stage with programmable gain (TQFP package only),
a programmable Watchdog Timer with Internal Oscillator, an SPI serial port, and six
software selectable power saving modes. The Idle mode stops the CPU while allowing
the USART, Two-wire interface, A/D Converter, SRAM, Timer/Counters, SPI port, and
interrupt system to continue functioning. The Power-down mode saves the register con-
tents but freezes the Oscillator, disabling all other chip functions until the next External
Interrupt or Hardware Reset. In Power-save mode, the Asynchronous Timer
continues
to run, allowing the user to maintain a timer base while the rest of the device is sleeping.
The ADC Noise Reduction mode stops the CPU and all I/O modules except Asynchro-
nous Timer and ADC, to minimize switching noise during ADC conversions. In Standby
mode, the crystal/resonator Oscillator is running while the rest of the device is sleeping.
This allows very fast start-up combined with low-power consumption. In Extended
Standby mode, both the main Oscillator and the Asynchronous Timer continue to run.
The device is manufactured using Atmel’s high density nonvolatile memory technology.
The On-chip ISP Flash allows the program memory to be reprogrammed in- system
through an SPI serial interface, by a conventional nonvolatile memory programmer, or
by an On-chip Boot program running on the AVR core. The boot program can use any
interface to download the application program in the Application Flash memory.
Soft-
ware in the Boot Flash section will continue to run while the Application Flash section is
updated, providing true Read-While-Write operation. By combining an 8-bit RISC CPU
with In-System Self-Programmable Flash on a monolithic chip, the Atmel ATmega16 is
a powerful microcontroller that provides a highly-flexible and cost-effective solution to
many embedded control applications.
The ATmega16 AVR is supported with a full suite of program and system development
tools including: C compilers, macro assemblers, program debugger/simulators, in-circuit
emulators, and evaluation kits.
Digital supply voltage.
Ground.
Port A serves as the analog inputs to the A/D Converter.
Port A also serves as an 8-bit bi-directional I/O port, if the A/D Converter is not used.
Port pins can provide internal pull-up resistors (selected for each bit). The Port A output
buffers have symmetrical drive characteristics with both high sink and source capability.
When pins PA0 to PA7 are used as inputs and are externally pulled low, they will source
current if the internal pull-up resistors are activated. The Port A pins are tri- stated when
a reset condition becomes active, even if the clock is not running.
3. Block Diagram of the AVR MCU Architecture
Data Bus 8-bit
Flash
Program Status
Counter and Control
Program
Memory
32 x 8
Interrupt
Instruction
Unit
General
Register Purpose
SPI Registrers
Unit
Instruction Watchdog
Decoder
DirectAddre ssing IndirectAddressing
Timer
ALU
Analog
Control Lines Comparator
I/O Module1
Data
I/O Module 2
SRAM
I/O Module n
EEPROM
I/O Lines
In order to maximize performance and parallelism, the AVR uses a Harvard architecture
– with separate memories and buses for program and data. Instructions in the program memory are executed with a single level pipelining. While one instruction is being exe-cuted, the next instruction is pre-fetched from the program memory. This concept enables instructions to be executed in every clock cycle. The program memory is In-System Reprogrammable Flash memory.
The fast-access Register file contains 32 x 8-bit general purpose working registers with a single clock cycle access time. This allows single-cycle Arithmetic Logic Unit (ALU) operation. In a typical ALU operation, two operands are output from the Register file, the operation is executed, and the result is stored back in the Register file – in one clock cycle.
Six of the 32 registers can be used as three 16-bit indirect address register pointers for Data Space addressing – enabling efficient address calculations. One of the these address pointers can also be used as an address pointer for look up tables in Flash Pro-gram memory. These added function registers are the 16-bit X-, Y-, and Z-register, described later in this section.
The ALU supports arithmetic and logic operations between registers or between a con-stant and a register. Single register operations can also be executed in the ALU.
This section describes the general access timing concepts for instruction execution. The AVR CPU is driven by the CPU clock clkCPU, directly generated from the selected clock source for the chip. No internal clock division is used.
Figure 6 shows the parallel instruction fetches and instruction executions enabled by the Harvard architecture and the fast-access Register file concept. This is the basic pipelin-ing concept to obtain up to 1 MIPS per MHz with the corresponding unique results for functions per cost, functions per clocks, and functions per power-unit.
Figure 6.The Parallel Instruction Fetches and Instruction Executions
T1 T2 T3 T4
clkCPU
1st Instruction Fetch
1st Instruction Execute 2nd Instruction Fetch 2nd Instruction Execute 3rd Instruction Fetch 3rd Instruction Execute 4th Instruction Fetch
Figure 7 shows the internal timing concept for the Register file. In a single clock cycle an ALU operation using two register operands is executed, and the result is stored back to the destination register.
Figure 7.Single Cycle ALU Operation
T1 T2 T3 T4
clkCPU Total Execution Time
Register Operands Fetch
ALU Operation Execute
Result Write Back
The AVR provides several different interrupt sources. These interrupts and the separate reset vector each have a separate program vector in the program memory space. All interrupts are assigned individual enable bits which must be written logic one together with the Global Interrupt Enable bit in the Status Register in order to enable the interrupt. Depending on the program counter value, interrupts may be automatically disabled when Boot Lock bits BLB02 or BLB12 are programmed. This feature improves software security. See the section
“Memory Programming” on page 254 for details.
The lowest addresses in the program memory space are by default defined as the Reset and Interrupt Vectors. The complete list of vectors is shown in “Interrupts” on page 42. The list also determines the priority levels of the different interrupts. The lower the address the higher is the priority level. RESET has the highest priority, and next is INT0
Bit 1 – EEWE: EEPROM Write Enable
The EEPROM Write Enable Signal EEWE is the write strobe to the EEPROM. When address and data are correctly set up, the EEWE bit must be written to one to write the value into the EEPROM. The EEMWE bit must be written to one before a logical one is written to EEWE, otherwise no EEPROM write takes place. The following procedure should be followed when writing the EEPROM (the order of steps 3 and 4 is not essential):
1. Wait until EEWE becomes zero.
2. Wait until SPMEN in SPMCR becomes zero.
3. Write new EEPROM address to EEAR (optional).
4. Write new EEPROM data to EEDR (optional).
5. Write a logical one to the EEMWE bit while writing a zero to EEWE in EECR.
6. Within four clock cycles after setting EEMWE, write a logical one to EEWE.
The EEPROM can not be programmed during a CPU write to the Flash memory. The software must check that the Flash programming is completed before initiating a new EEPROM write.
Step 2 is only relevant if the software contains a Boot Loader allowing the CPU to program the Flash. If the Flash is never being updated by the CPU, step 2 can be omitted. See “Boot Loader Support – Read-While-Write Self-Programming”
on page 241 for details about boot programming.
Caution: An interrupt between step 5 and step 6 will make the write cycle fail, since the EEPROM Master Write Enable will time-out. If an interrupt routine accessing the EEPROM is interrupting another EEPROM Access, the EEAR or EEDR reGister will be modified, causing the interrupted EEPROM Access to fail. It is recommended to have the global interrupt flag cleared during all the steps to avoid these problems.
When the write access time has elapsed, the EEWE bit is cleared by hardware. The user software can poll this bit and wait for a zero before writing the next byte. When EEWE has been set, the CPU is halted for two cycles before the next instruction is executed.
• Bit 0 – EERE: EEPROM Read Enable
The EEPROM Read Enable Signal – EERE – is the read strobe to the EEPROM. When the correct address is set up in the EEAR register, the EERE bit must be written to a logic one to trigger the EEPROM read. The EEPROM read access takes one instruction, and the requested data is available immediately. When the EEPROM is read, the CPU is halted for four cycles before the next instruction is executed.
The user should poll the EEWE bit before starting the read operation. If a write operation is in progress, it is neither possible to read the EEPROM, nor to change the EEAR register.
The calibrated Oscillator is used to time the EEPROM accesses. Table 1 lists the typical programming time for EEPROM access from the CPU.
3 X 4 Keypad Module
3 x 4 Keypad Module merupakan suatu modul keypadberukuran 3 kolom x 4 baris. Modul ini dapat difungsikan sebagai input dalam aplikasi seperti pengaman digital, datalogger, absensi, pengendali kecepatan motor, robotik, dan sebagainya.
Spesifikasi Hardware
1. Memiliki 12 tombol (fungsi tombol tergantung aplikasi).
2. Memiliki konfigurasi 4 baris (input scanning) dan 3 kolom (output scanning).
3. Kompatibel penuh dengan DT-51™ Low Cost Series dan DT-AVR Low Cost Series.
Mendukung DT-51™ Minimum System (MinSys) ver 3.0, DT-51™ PetraFuz, DT-BASIC Series, dan lain-lain.
Tata Letak
Alokasi Pin J3
R4 R3
R2 R1
NC C3
C2 C1
VCC NC
1 2
NC = tidak terhubung ke mana-mana
Cx = kolom ke-x Rx = baris ke-x
Contoh Koneksi
Pada dasarnya pin Cx dan Rx pada J3 bebas dihubungkan ke pin input/output manapun pada mikrokontroler. Koneksi berikut ini hanya contoh dan tidak mutlak.
DT-51™ Low Cost Series DT-I/O 3x4 dan DT-AVR Low Cost Series Keypad Module
VCC (Pin 2 PORT1) atau
+5VDC VCC (J3)
P1.0 (Pin 3 PORT1) C1 (J3)