Alat Ukur Kualitas Udara Menggunakan Sen
ALAT UKUR KUALITAS UDARA MENGGUNAKAN SENSOR
GAS MQ 135 BERBASIS MIKROKONTROLLER ATMega16A
PROJECT AKHIR 1 MAULANA UBAIDILLAH NIM : 122411005 PROGRAM STUDI D3 METROLOGI DAN INSTRUMENTASI FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2015
ALAT UKUR KUALITAS UDARA MENGGUNAKAN SENSOR
GAS MQ 135 BERBASIS MIKROKONTROLLER ATMega16A
PROJECT AKHIR 1
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Ahli Madya Jurusan D3 Metrologi dan Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam PROGRAM STUDI D3 METROLOGI DAN INSTRUMENTASI
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2015
PERSETUJUAN
Yang bertanda tangan di bawah ini, Dosen Pembimbing Projek Akhir 1 Menyatakan bahwa Laporan projek akhir 1 :
Dengan judul:
“ALAT UKUR KUALITAS UDARA MENGGUNAKAN SENSOR GAS MQ 135 BERBASIS MIKROKONTROLLER ATMega16A ”
Telah selesai diperiksa dan dinyatakan selesai, serta dapat diajukan dalam sidang pertanggung
jawaban laporan projek akhir 1.
Diluluskan di Medan, 29 Januari 2015
Ketua Derpartemen Dosen Pembimbing D3 Metrologi dan Instrumentasi
Projek Akhir 1
Dr. Diana Alemin Barus M.Sc Dr. Diana Alemin Barus M.Sc NIP. 19660729 199203 2 002
NIP. 19660729 199203 2 002
PERNYATAAN ALAT UKUR KUALITAS UDARA MENGGUNAKAN SENSOR GAS MQ 135
BERBASIS MIKROKONTROLLER ATMega16A
PROJECT AKHIR 1
Saya mengakui bahwa projek akhir 1 ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Februari 2015
MAULANA UBAIDILLAH 122411005
PENGHARGAAN
Alhamdulillahirabbil’alamiin, Puji syukur Penulis panjatkan Kehadirat Allah SWT. Yang Maha Menguasai dan
Maha Menggerakkan hati serta anggota tubuh setiap makhluknya, sehingga Penulis dapat menyelesaikan penulisan laporan Project Akhir 1 ini dan tidak lupa shalawat serta salam Penulis panjatkan kepada junjunan Nabi Muhammad SAW yang kita harapkan syafa’atnya di akhirat kelak.
Laporan ini disusun sebagai salah satu syarat untuk menyelesaikan pendidikan Diploma III pada program studi Metrologi dan Instrumentasi di Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara. Pada project akhir 1 ini Penulis mengambil judul :
ALAT UKUR KUALITAS UDARA MENGGUNAKAN SENSOR GAS MQ 135
BERBASIS MIKROKONTROLLER ATMega16A
Penulis sangat menyadari keterbatasan yang dimiliki, karena terselesaikannya penyusunan laporan ini tidak terlepas dari bantuan serta dukungan dari berbagai pihak kepada Penulis. Untuk itu, izinkanlah Penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Kedua orang tua penulis dan serta saudara kandung yang telah memberikan dukungan, bantuan moril maupun materil, semangat dan yang selalu mendo’akan penulis.
2. Ibu Dr. Diana Alemin Barus, M.Sc, selaku Ketua Program Studi D-III Metrologi dan Instrumentasi Fakultas Matematika Dan Ilmu Pengetahuan Alam serta telah menjadi dosen pembimbing dalam penulisan laporan project 1 ini.
3. Bapak Dr. Sutarman, M.Sc, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam.
4. Bapak Dr. Marhaposan Situmorang, selaku Ketua Departeman Fisika Fakultas Matematika Dan Ilmu Pengetahuan Alam.
5. Seluruh Dosen dan Pegawai Program Studi Diploma Tiga (III) Metrologi dan Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
6. Seluruh teman-teman jurusan D3 Metrologi dan Instrumentasi angkatan 2012 yang telah membantu dan memberikan dukungan untuk menyelesaikan laporan ini.
7. Seluruh pihak yang membantu penulis dalam menyelesaikan laporan ini yang tidak dapat disebutkan seluruhnya.
Penulis menyadari sepenuhnya bahwa dalam pembuatan laporan ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun dalam penyempurnaan laporan ini.
Semoga laporan ini menjadi amal jariyah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.
Amin Yaa Rabbal’alamin
Medan, Februari 2015 Hormat Saya,
Penulis
ABSTRAK
Polusi udara menjadi masalah penting yang dapat mengancam kehidupan manusia. Banyak aktifitas-aktifitas manusia yang menyebabkan terjadinya polusi udara. Oleh sebab itu, diperlukan suatu monitoring tingkat polusi udara untuk mengetahui indeks polusi udara di kawasan tersebut dalam rangka mempertahankan kadar polutan di bawah nilai ambang batasnya. Untuk mengetahui kadar gas polutan dengan menggunakan sensor gas MQ-135 yang peka terhadap kualitas udara. Dan untuk tampilan indeks menggunakan LCD dan secara software dengan komunikasi serial yang sebelumnya di proses oleh mikrokontroller. Sistem ini diharapkan mampu memberikan solusi terhadap masalah pencemaran udara karena biaya yang diperlukan terjangkau dibanding dengan alat dari badan lingkungan hidup. Project Akhir
1 ini dilakukan perancangan dan pembuatan alat monitoring polusi udara dengan sensor MQ- 135 diimplementasikan pada sebuah miniplant berbasis mikrokontroller.
Kata Kunci : Sensor gas MQ-135, Mikrokontroler ATMega16, LCD.
ABSTRACT
Air pollution is an important problem that can threaten human life. Many human activities that cause air pollution. Therefore, we need a monitoring air pollution levels to determine the index of air pollution in the region in order to maintain the levels of pollutants below the threshold value. To determine levels of pollutant gases by using the MQ-135 gas sensors are sensitive to air quality. And to the LCD display using the previous index in the process by the microcontroller. The system is expected to provide a solution to the problem of air pollution due to the cost of the required affordable compared by means of the environmental agency. Final Project 1 is to design and manufacture of air pollution monitoring with sensor MQ-135 is implemented in a microcontroller-based miniplant.
Keyword: Gas Sensor MQ-135, Microcontroller ATMega16, LCD.
BAB I PENDAHULUAN
1.1 Latar Belakang
Pencemaran udara dewasa ini semakin menampakkan kondisi yang sangat memprihatinkan. Sumber pencemaran udara dapat berasal dari berbagai kegiatan antara lain industri, transportasi, perkantoran, dan perumahan. Berbagai kegiatan tersebut merupakan kontribusi terbesar dari pencemar udara yang dibuang ke udara bebas. Sumber pencemaran udara juga dapat disebabkan oleh berbagai kegiatan alam, seperti kebakaran hutan, gunung meletus, gas alam beracun, dan lain-lain. Dampak dari pencemaran udara tersebut adalah menyebabkan penurunan kualitas udara, yang berdampak negatif terhadap kesehatan manusia.
Pertumbuhan pembangunan seperti industri, transportasi, dan lain-lain disamping memberikan dampak positif namun disisi lain akan memberikan dampak negatif dimana salah satunya berupa pencemaran udara dan kebisingan baik yang terjadi didalam ruangan (indoor) maupun di luar ruangan (outdoor) yang dapat membahayakan kesehatan manusia dan terjadinya penularan penyakit. Udara sendiri adalah salah satu kebutuhan manusia, selain makanan, sandang, rumah, dan sebagainya. Udara sangat berpengaruh pada kesehatan manusia, terutama udara di luar ruangan; kualitas udara yang buruk dapat menyebabkan penyakit pada manusia. Kualitas udara yang buruk dapat ditemui di kawasan industri atau jalan raya yang padat. Oleh karena itu, diperlukan kegiatan yaitu pengukuran kualitas udara.
1.2 Rumusan Masalah
Pada laporan project ini membahas tentang pendeteksian kadar udara yang terdiri sensor gas MQ-135, Mikrokontroler ATMega 16 sebagai pengontrolnya beserta software pemrogramannnya, LCD sebagai display hasil pengukuran dan display GUI dengan komputer.
1.3 Tujuan Penulisan
Penulisan laporan proyek ini adalah untuk :
1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma Tiga (D-III) Metrologi dan Instrumentasi FMIPA Universitas Sumatera Utara.
2. Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasi pengontrolan dan elektronika sebagai bidang yang diketahui.
3. Merancang suatu alat pengukuran kualitas udara dan kemudian ditampilkan pada LCD dengan menggunakan Mikrokontroler ATMega 16.
4. Penulis ingin memberikan penjelasan tentang penggunaan dan cara kerja alat ukur kualitas udara menggunakan sensor gas MQ-135 yang Berbasis Mikrokontroler ATMega16.
1.4 Batasan Masalah
Dalam penulisan Laporan Project Akhir 1 ini, dibuat suatu batasan-batasan dengan maksud memudahkan analisis yng dibutuhkan dalam rangka pemecahan masalah. Adapun batasannya yaitu sebagai berikut :
1. Sensor gas MQ-135 hanya digunakan untuk mendeteksi kualitas udara.
2. Perancangan perangkat keras (hardware) yang terdiri dari mikrokontroler ATMega 16, sensor gas MQ-135, dan LCD 16x2 karakter.
3. Bahasa pemrograman yang digunakan pada mikrokontroler adalah bahasa C.
4. Display atau penampil nilai data menggunakan LCD (liquid crystal display) dan GUI.
5. Mikrokontroler yang digunakan adalah ATMega 16.
1.5 Sistematika Penulisan
Dalam penyusunan Laporan Project Akhir 1 ini, pembahasan mengenai sistem alat yang dibuat dibagi menjadi lima bab dengan sistematika sebagai berikut :
BAB I : PENDAHULUAN
Berisi latar belakang permasalahan, batasan masalah, tujuan pembahasan, metodologi pembahasan, sistematika penulisan dan relevansi dari penulisan laporan ini.
BAB II : TINJAUAN PUSTAKA
Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian teori pendukung itu antara lain tentang Mikrokontroler ATMega 16, sensor gas MQ-135 dan prinsip kerjanya, software pendukung dan bahasa program yang digunakan.
BAB III : PERANCANGAN SISTEM
Membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.
BAB IV : ANALISIS DAN PENGUJIAN
Membahas tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat dan lain-lain.
BAB V : PENUTUP KESIMPULAN DAN SARAN
Berisi kesimpulan yang diperoleh dari pembuatan laporan project akhir 1 ini dan saran-saran untuk pengembangannya.
DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan tentang sumber-sumber literatur yang digunakan dalam pembutan laporan project akhir 1 ini.
BAB II TINJAUAN PUSTAKA
2.1 Pencemaran Lingkungan
Pencemaran lingkungan merupakan masalah yang sangat serius bagi seluruh penduduk di dunia. Karena, banyak dampak yang akan diperoleh akibat tidak terpeliharanya lingkungan hidup. Pencemaran lingkungan dapat menyebabkan penurunan kualitas udara, penyakit akibat tercemarnya udara, perubahan iklim atau cuaca di lingkungan tertentu yang jika dibiarkan pada akhirnya dapat berujung dengan kematian massal.
Polusi atau pencemaran lingkungan sendiri dapat diartikan masuknya atau dimasukkannya makhluk hidup, zat energi, dan atau komponen lain ke dalam lingkungan, atau berubahnya tatanan lingkungan oleh kegiatan manusia atau oleh proses alam sehingga kualitas lingkungan turun sampai ke tingkat tertentu yang menyebabkan lingkungan menjadi kurang atau tidak dapat berfungsi lagi sesuai dengan peruntukannya. (Undang-undang Pokok Pengelolaan Lingkungan Hidup No. 4 Tahun 1982).
Perubahan iklim merupakan salah satu dampak akibat adanya pencemaran lingkungan. Pencemaran lingkungan merupakan salah satu masalah penting yang sedang dihadapi oleh penduduk di dunia dan Indonesia saat ini, dimana permasalahan tersebut semakin meningkat sejalan dengan peningkatan jumlah penduduk, pertumbuhan ekonomi dan pertukaran penduduk di kota-kota besar.
Dampak negatif akibat menurunnya kualitas udara cukup berat terhadap lingkungan terutama kesehatan manusia yaitu dengan menurunnya fungsi paru, peningkatan penyakit pernapasan, dampak karsinogen dan beberapa penyakit lainnya. Selain itu pencemaran udara dapat menimbulkan bau, kerusakan materi, gangguan penglihatan dan dapat menimbulkan hujan asam yang merusak lingkungan.
Untuk mengantisipasi dan menanggulangi dampak pencemaran udara terhadap kesehatan manusia maupun lingkungan perlu adanya upaya-upaya nyata dari semua pihak baik instansi pemerintah, swasta, perguruan tinggi dan masyarakat luas sesuai dengan bidang tugas masing- masing. Upaya penanggulangan pencemaran udara pada dasarnya ditujukan untuk meningkatkan mutu udara untuk kehidupan.
2.2 Sumber Daya Udara
Udara merupakan salah satu unsur alam yang pokok bagi makhluk hidup yang ada di muka bumi terutama manusia. Tanpa udara yang bersih maka manusia akan terganggu terutama kesehatannya yang pada akhirnya dapat menyebabkan kematian. Udara dikatakan normal dan dapat mendukung kehidupan manusia apabila komposisinya seperti tersebut dalam table di bawah ini. Sedangkan apabila terjadi penambahan gas-gas lain yang menimbulkan gangguan serta perubahan komposisi tersebut, maka dikatakan udara sudah tercemar/terpolusi.
Kualitas udara ambien dari suatu daerah ditentukan oleh daya dukung alam daerah tersebut serta jumlah sumber pencemaran atau beban pencemaran dari sumber yang ada di daerah tersebut. Zat-zat yang dikeluarkan oleh sumber pencemar ke udara dan dapat
mempengaruhi kualitas udara antara lain gas Nitrogen Oksida (NO x ), Sulfur Dioksida (SO 2 ), debu serta kandungan Timah Hitam (Pb) dalam debu.
Tabel 2.1 Komposisi Udara Bersih Konsentrasi
Jenis gas
Sumber : Environmental Chemistry, Air and Water Pollution Tabel 2.2 Udara Bersih dan Udara Tercemar Menurut WHO
Udara Tercemar Bahan Partikel
Parameter
Udara Bersih
0,01 – 0,02 mg/m3
0,07 – 0,7 mg/m3
0,02 – 2 ppm CO
SO 2 0,003 – 0,02 ppm
< 1 ppm
5 – 200 ppm
NO 2 0,003 – 0,02 ppm
0,02 – 0,1 ppm
350 – 0,1 ppm Hidrokarbon
2.3 Sensor Gas MQ-135
MQ-135 Air Quality Sensor adalah sensor yang memonitor kualitas udara untuk mendeteksi gas amonia (NH 3 ), natrium-(di)oksida (NO x ), alkohol / ethanol (C 2 H 5 OH), benzena (C 6 H 6 ), karbondioksida (CO 2 ), gas belerang / sulfur-hidroksida (H 2 S) dan asap / gas- gas lainnya di udara. Sensor ini melaporkan hasil deteksi kualitas udara berupa perubahan nilai resistensi analog di pin keluarannya. Pin keluaran ini bisa disambungkan dengan pin
ADC (analog-to-digital converter) di mikrokontroler / pin analog input Arduino dengan menambahkan satu buah resistor saja (berfungsi sebagai pembagi tegangan / voltage divider).
Gambar 2.1 Sensor Gas MQ-135
Spesifikasi Sensor MQ-135 :
1. Sumber catu daya menggunakan tegangan 5 Volt.
2. Menggunakan ADC dengan resolusi 10 bit.
3. Tersedia 1 jalur output kendali ON/OFF.
4. Pin Input/Output kompatibel dengan level tegangan TTL dan CMOS.
5. Dilengkapi dengan antarmuka UART TTL dan I2C.
6. Signal instruksi indikator output;
7. Output Ganda sinyal (output analog, dan output tingkat TTL);
8. TTL output sinyal yang valid rendah; (output sinyal cahaya rendah, yang dapat diakses mikrokontroler IO port)
9. Analog Output dengan meningkatnya konsentrasi, semakin tinggi konsentrasi, semakin tinggi tegangan;
10. Memiliki umur panjang dan stabilitas handal;
11. karakteristik pemulihan respon cepat.
2.3.1 Konektor dan Pengaturan Jumper
Tabel 2.3 Konektor dan Pengaturan Jumper
Titik referensi untuk catu daya input
2 VCC
Terhubung ke catu daya (5 V)
3 RX TTL
Input serial level TTL ke modul Sensor
4 TX
Output serial level TTL ke modul Sensor
5 2 SDA I C-bus data input / output
6 2 SCL I C-bus clock input
2.3.2 Prinsip Kerja Sensor Gas MQ-135
Pada modul sensor gas MQ-135 terdapat 2 buah LED indikator yaitu LED indikator merah dan LED indikator hijau. Pada saat power-up, LED merah akan berkedip sesuai
2 dengan alamat I 2 C modul. Jika alamat I C adalah 0xE0 maka LED indikator akan berkedip 1
kali. Jika alamat I 2 C adalah 0xE2 maka LED indikator akan berkedip 2 kali. Jika alamat I C adalah 0xE4 maka LED indikator akan berkedip 3 kali dan demikian seterusnya sampai
alamat I 2 C 0xEE maka LED indikator akan berkedip 8 kali. Pada saat power-up, LED hijau akan berkedip dengan cepat sampai kondisi pemanasan
sensor dan hasil pembacaan sensor sudah stabil. Waktu yang diperlukan untuk mencapai kondisi stabil berbeda-beda untuk tiap sensor yang digunakan tergantung pada kecepatan respon sensor dan kondisi heater pada sensor. Jika kondisi stabil sudah tercapai, maka LED hijau akan menyala tanpa berkedip. Pada kondisi operasi normal (setelah kondisi power-up), LED merah akan menyala atau padam sesuai dengan hasil pembacaan sensor dan mode operasi yang dipilih. Sedangkan selama hasil pembacaan sensor stabil, LED hijau akan tetap menyala dan hanya berkedip pelan (tiap 1 detik) jika ada perubahan konsentrasi gas.
Modul sensor juga memiliki 1 pin output open collector yang status logikanya akan berubah-ubah, sesuai dengan hasil pembacaan sensor gas dan batas atas serta batas bawah yang telah ditentukan. Pin output ini dapat dihubungkan dengan aktuator (exhaust atau alarm) sehingga modul ini dapat berfungsi sebagai pemonitor konsentrasi gas secara mandiri. Modul ini akan membaca nilai konsentrasi gas secara otomatis, membandingkan dengan batas-batas nilai yang telah diatur dan kemudian mengubah status logika pin output kendali ON/OFF sesuai dengan mode operasi yang digunakan.
Ada 2 mode operasi yang dapat tersedia, yaitu mode operasi Hysterisis :
1. Jika nilai sensor hasil konversi ADC lebih kecil dari pada batas bawah, maka pin output akan Off (Transistor Open Collector berada pada keadaan Cut-off dan LED indikator merah tidak menyala).
2. Jika nilai sensor hasil konversi ADC lebih besar dari pada batas atas, maka pin output akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator merah menyala).
3. Jika nilai sensor hasil konversi ADC sama dengan atau berada di antara batas atas dan batas bawah, maka logika pin output tidak berubah (jika sebelumnya Off, maka akan tetap Off atau jika sebelumnya On akan tetap On).
Pada mode operasi Window:
1. Jika nilai sensor hasil konversi ADC lebih kecil dari pada batas bawah, maka pin output akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator merah menyala).
2. Jika nilai sensor hasil konversi ADC lebih besar dari pada batas atas, maka pin output akan On (Transistor Open Collector berada pada keadaan Saturasi dan LED indikator merah menyala).
3. Jika nilai sensor hasil konversi ADC sama dengan atau berada di antara batas atas dan batas bawah, maka logika pin output akan Off (Transistor Open Collector berada pada keadaan Cut-off dan LED indikator merah tidak menyala).
Jika sumber nilai batas yang dipilih adalah menggunakan variabel resistor pada modul sensor, maka mode operasi yang bisa berlaku hanya mode operasi Hysterisis. Nilai variabel resistor akan digunakan sebagai nilai batas atas. Sedangkan nilai batas bawah akan selalu bernilai 50 poin di bawah nilai batas atas. Jika sumber nilai batas yang dipilih adalah menggunakan nilai yang tersimpan pada EEPROM modul sensor, maka mode operasi yang bisa berlaku adalah mode operasi Hysterisis dan modeoperasi Window. Nilai batas atas, nilai
batas bawah, dan mode operasi, dapat diatur melalui antarmuka UART TTL atau I 2 C dengan menggunakan bahasa pemrograman.
Berikut ini ilustrasi cara kerja kendali ON/OFF menggunakan modul sensor gas dengan nilai batas atas sebesar 450 dan nilai batas bawah sebesar 350.
Gambar 2.2 Cara Kerja Kendali ON/OFF Sensor Gas
2.4 Mikrokontroler ATMega 16
Mikrokontroler, sesuai namanya adalah suatu alat atau komponen pengontrol atau pengendali yang berukuran mikro atau kecil. Sebelum ada mikrokontroler, telah ada terlebih dahulu muncul mikroprosesor. Mikrokontroler dapat dikatakan adalah sebuah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus (Agus Bejo, 2007). Biasanya Mikrokontroler, sesuai namanya adalah suatu alat atau komponen pengontrol atau pengendali yang berukuran mikro atau kecil. Sebelum ada mikrokontroler, telah ada terlebih dahulu muncul mikroprosesor. Mikrokontroler dapat dikatakan adalah sebuah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus (Agus Bejo, 2007). Biasanya
Mikrokontroler merupakan sistem komputer yang seluruh atau sebagian besar elemennya dikemas dalam satu chip IC (Intergrated Circuit) sehingga sering juga disebut single chip microcomputer, yang masuk dalam katagori embedded komputer. Suatu kontroler digunakan untuk mengontrol suatu proses atau aspek-aspek dari lingkungan. Satu contoh aplikasi dari mikrokontroler adalah untuk memonitor rumah. Ketika suhu naik kontroler membuka jendela dan sebaliknya. Pada masanya, kontroler dibangun dari komponen-komponen logika secara keseluruhan, sehingga menjadikannya besar dan berat. Setelah itu barulah dipergunakan mikroprosesor sehingga keseluruhan kontroler masuk kedalam PCB yang cukup kecil. Hingga saat ini masih sering kita lihat kontroler yangdikendalikan oleh mikroprosesor biasa (Zilog Z80, Intel 8088, Motorola 6809, dsb).
Salah satu mikrokontroler yang saat ini banyak digunakan adalah mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instruction Set Compute) 8 bit berdasarkan arsitektur Harvard, yang dibuat Atmel pada tahun1996. AVR yang mempunyai kepanjangan Advanced Versatile RISC atau Alf and V egard’s Processor yang berasal dari nama dua mahasiswa Norwegian Institute of Technology (NTH), yaitu Alf-Egil Bogen dan Vegard Wollan.
AVR memiliki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan mikrokontroler AVR yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat dikarenakan sebagian besar instruksi dieksekusi dalam 1 siklus clock, lebih cepat dibandingkan dengan mikrokontroler MCS51 yang memiliki arsitektur CISC (Complex Instruction Set Compute) dimana mikrokontroler MCS51 membutuhkan 12 siklus clock untuk mengeksekusi 1 instruksi. Selain itu, mikrokontroler AVR memiliki fitur yang lengkap (ADC Internal, EEPROM Internal, Timer/Counter, Watchdog Timer, PWM, Port I/O, Komunikasi
Serial, Komparator, I 2
C, dan lain-lain), sehingga dengan fasilitas yang lengkap ini, programmer dan desainer dapat menggunakannya untuk berbagai aplikasi sistem elektronika seperti robot, otomasi industri, peralatan telekomunikasi, dan berbagai keperluan lain. Secara umum mikrokontroler AVR dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega, dan Attiny.
Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta komponen kendali lainnya. Berbeda Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta komponen kendali lainnya. Berbeda
2.4.1 Arsitektur ATMEGA16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent). Secara garis besar mikrokontroler ATMega16 terdiri dari :
1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MHz.
2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte
3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
4. CPU yang terdiri dari 32 buah register
5. User interupsi internal dan eksternal
6. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial
7. Fitur Peripheral Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture Real time counter dengan osilator tersendiri Empat kanal PWM dan Antarmuka komparator analog
8 kanal, 10 bit ADC Byte-oriented Two-wire Serial Interface Watchdog timerdengan osilator internal
Gambar 2.3 Blok Diagram ATMega 16
2.4.2 Konfigurasi Pin ATMega 16
Konfigurasi pin mikrokontroler Atmega16 dengan kemasan 40-pin dapat dilihat pada Gambar 2.2. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 pena untuk masing- masing Port A, Port B, Port C, dan Port D.
2.4.3 Sistem Clock AVR ATMega16
Mikrokontroler, mempunyai sistem pewaktuan CPU, 12 siklus clock. Artinya setiap 12 siklus yang dihasilkan oleh ceramic resonator maka akan menghasilkan satu siklus mesin. Nilai ini yang akan menjadi acuan waktu operasi CPU. Untuk mendesain sistem Mikrokontroler, mempunyai sistem pewaktuan CPU, 12 siklus clock. Artinya setiap 12 siklus yang dihasilkan oleh ceramic resonator maka akan menghasilkan satu siklus mesin. Nilai ini yang akan menjadi acuan waktu operasi CPU. Untuk mendesain sistem
2.4.4 Konfigurasi PIN ATmega16
Gambar 2.4 Pin-pin Pada ATMega 16
Konfigurasi pin ATMega 16 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada Gambar 2.1. Dari gambar diatas dapat dijelaskan fungsi dari masing-masing pin ATMega 16 sebagai berikut :
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merupakan pin Ground
3. Port A (PA0 – PA7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pin masukan ADC
4. Port B (PB0 – PB7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinkhusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.4 Fungsi Khusus Port B Pin Fungsi Khusus
PB7 SCK (SPI Bus Serial Clock) PB6 MISO (SPI Bus Master Input/ Slave Output) PB5 MOSI (SPI Bus Master Output/ Slave Input) PB4 SS (SPI Slave Select Input) PB3 AIN1 (Analog Comparator Negative Input)
OC0 (Timer/Counter0 Output Compare Match Output) PB2 AIN0 (Analog Comparator Positive Input)
INT2 (External Interrupt 2 Input) PB1 T1 (Timer/ Counter1 External Counter Input) PB0 T0 (Timer/Counter External Counter Input) XCK (USART External Clock Input/Output)
5. Port C (PC0 – PC7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinkhusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.5 Fungsi Khusus Port C Pin Fungsi khusus
PC7
TOSC2 ( Timer Oscillator Pin2)
PC6
TOSC1 ( Timer Oscillator Pin1)
PC5
TDI (JTAG Test Data In)
PC4
TDO (JTAG Data Out)
PC3
TMS (JTAG Test Mode Select)
PC2
TCK (Joint Test Action Group Test Clock)
PC1 SDA ( Two-wire Serial Bus Data Input/Output Line) PC0
SCL ( Two-wire Serial Bus Clock Line)
6. Port D (PD0 – PD7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinkhusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.6 Fungsi Khusus Port D Pin Fungsi khusus
PD7 OC2 (Timer/Counter Output Compare Match Output) PD6
ICP (Timer/Counter1 Input Capture Pin)
PD5 OC1A (Timer/Counter1 Output Compare A Match Output) PD4 OC1B (Timer/Counter1 Output Compare B Match Output)
PD3
INT1 (External Interrupt 1 Input)
PD2
INT0 (External Interrupt 0 Input)
PD1
TXD (USART Output Pin)
PD0
RXD (USART Input Pin)
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. AREF merupakan pin masukan tegangan referensi ADC.
2.4.5 Peta Memori ATMega16
Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16 Kbyte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flashdibagi kedalam dua bagian, yaitu bagian Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16 Kbyte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flashdibagi kedalam dua bagian, yaitu bagian
Gambar 2.5 Peta Memori ATMega16
2.4.6 Memori Data (SRAM)
Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter , fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal.
Tabel 2.7 Peta memory data ATMega 16
Register file
Data address space
I/O Registers
$005F Internal SRAM $0060 $0061
… $045E $045F
2.4.7 Memori Data EEPROM
ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM mulai dari $000 sampai $1FF.
2.4.8 Analog To Digital Converter
AVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan resolusi 10 bit. Dalam mode operasinya, ADC dapat dikonfigurasi, baik single endedinput maupun differentialinput. Selain itu, ADC ATMega16 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau (noise)yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dari ADC itu sendiri. ADC pada ATMega16 memiliki fitur-fitur antara lain :
Resolusi mencapai 10-bit Akurasi mencapai ± 2 LSB Waktu konversi 13-260µs 8 saluran ADC dapat digunakan secara bergantian
Jangkauan tegangan input ADC bernilai dari 0 hingga VCC Disediakan 2,56V tegangan referensi internal ADC Mode konversi kontinyu atau mode konversi tunggal Interupsi ADC complete Sleep Mode Noise canceler
Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, formal data keluaran, dan modus pembacaan. Register-register yang perlu diatur adalah sebagai berikut:
ADC Control and Status Register A – ADCSRA
Gambar 2.6 ADC Control and Status Register A – ADCSRA
ADEN : 1 = adc enable, 0 = adc disable ADCS
: 1 = mulai konversi, 0 = konversi belum terjadi ADATE
: 1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih (set pada trigger SFIOR bit ADTS). ADC akan start konversi pada edge positif sinyal trigger.
ADIF : diset ke 1, jika konversi ADC selesai dan data register ter-update. Namun ADC Conversion Complete Interrupt dieksekusi jika bit ADIE dan bit-I dalam register SREG diset.
ADIE : diset 1, jika bit-I dalam register SREG di-set. ADPS[0..2] : Bit pengatur clock ADC, faktor pemb agi 0 … 7 = 2, 4, 8, 16, 32, 64, 128.
Tabel 2.8 Konfigurasi Clock ADC
Division Factor
• ADC Multiplexer-ADMUX
Gambar 2.7 ADC Multiplexer
REFS 0, 1 : Pemilihan tegangan referensi ADC
00 : Vref = Aref
01 : vref = AVCC dengan eksternal capasitor pada AREF
10 : vref = internal 2.56 volt dengan eksternal kapasitor pada AREF ADLAR : Untuk setting format data hasil konversi ADC, default = 0
• Special Function IO Register-SFIOR SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal, susunannya seperti yang terlihat pada gambar berikut :
Gambar 2.8 Register SFIOR
ADTS[0...2] : Pemilihan trigger (pengatur picu) untuk konversi ADC, bit-bit ini akan berfungsi jika bit ADATE pada register ADCSRA bernilai 1. Konfigurasi bit ADTS[0...2] dapat dilihat pada Tabel di bawah ini.
Tabel 2.9 Pemilihan sumber picu ADC
Trigger source
0 0 0 Free Running Mode
0 0 1 Analog Comparator
0 1 0 External Interrupt Request 0
0 1 1 Timer/Counter0 Compare Match
1 0 0 Timer/Counter0 Overflow
1 0 1 Timer/Counter Compare Match B
1 1 0 Timer/Counter1 Overflow
1 1 1 Timer/Counter1 Capture Event
ADHSM : 1. ADC high speed mode enabled. Untuk operasi ADC, bit ACME, PUD, PSR2 dan PSR10 tidak diaktifkan.
2.5 LCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal –alat elektronik seperti televisi, kalkulator, ataupun layar komputer. Pada bab ini aplikasi LCD yang dugunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Adapun fitur yang disajikan dalam LCD ini adalah :
1. Terdiri dari 16 karakter dan 2 baris
2. Mempunyai 192 karakter tersimpan
3. Terdapat karakter generator terprogram
4. Dapat dialamati dengan mode 4-bit dan 8-bit
5. Dilengkapi dengan back light.
6. Tersedia VR untuk mengatur kontras.
7. Pilihan konfigurasi untuk operasi write only atau read/write.
8. Catu daya +5 Volt DC.
9. Kompatibel dengan DT-51 dan DT-AVR Low Cost Series serta sistem mikrokontroler/mikroprosesor lain.
Gambar 2.9 LCD (Liquid Crystal Display) Tabel 2.10 Deskripsi Pin Pada LCD
Pin Deskripsi 1 Ground 2 Vcc 3 Pengatur kontras 4 “RS” Instruction/Register Select 5 “R/W” Read/Write LCD Registers 6 “EN” Enable
7-14
Data I/O Pins
15 Vcc 16 Ground
2.5.1 Cara kerja LCD (Liquid Crystal Display)
Pada aplikasi umumnya RW diberi logika rendah “0”. Bus data terdiri dari 4-bit atau 8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu.
Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya).
Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus me nset EN ke kondisi high “1” dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.
Saat jalur lainnya sudah siap, EN harus diset ke “0” dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query (pembacaan) data dari LCD.
Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu di set ke “0”. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.
Mode 8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data).Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir yang dibaca.
2.6 Mode Transmisi Port Serial
Ada 2 macam cara komunikasi data serial yaitu Sinkron dan Asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama sama dengan data serial, tetapi clock tersebut dibangkitkan sendiri-sendiri baik pada sisi pengirim maupun penerima. Sedangkan pada komunikasi serial asinkron tidak diperlukan clock karena data dikirimkan dengan kecepatan tertentu yang sama baik pada pengirim/penerima.
Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Receiver Transmitter). Pada UART, Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Receiver Transmitter). Pada UART,
“Start” dan bit “Stop”. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika “1”.
Ketika transmitter ingin mengirimkan data, output UART akan diset dulu ke logika “0” untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start” yang
digunakan untuk mensinkronkan fase clock-nya sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari bit yang paling rendah (bit0) sampai bit tertinggi. Selanjutnya akan dikirimkan sinyal “Stop” sebagai akhir dari pengiriman data serial. Sebag ai contoh misalnya akan dikirimkan data huruf “A” dalam format ASCII atau sama dengan 41 hexa.
Gambar 2.10 Pengiriman huruf A tanpa bit paritas
Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu. Baud rate yang umum dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600 (bit/perdertik). Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6,7 atau 8 bit), paritas (genap, g anjil, atau tanpa paritas) dan jumlah bit “Stop” (1, 1 ½ , atau 2 bit). Berikut ini adalah karakteristik sinyal port serial, flow control dan konfigurasi port serial.
2.7 Konfigurasi Port Serial
Konektor DB-9 pada bagian belakang komputer adalah port serial RS232 yang biasa dinamai dengan COM1 dan COM2.
Gambar 2.11 Port Serial
Tabel 2.11 Konfigurasi Port Serial
Pin Nama Sinyal
Direction
Keterangan
Data Carrier Detect/Receive Line Signal 1 DCD
In
Detect
Receive Data 3 TxD
2 RxD
In
Transmit Data 4 DTR
Out
Data Terminal Ready 5 GND
Data Set Ready 7 RTS
In
Request to Send 8 CTS
Out
Clear to Send 9 RI
In
In
Ring Indicator
Berikut ini keterangan mengenai fungsi saluran RS232 pada konektor DB-9:
1. Received Line Signal Detect, dengan saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukan ada data masuk.
2. Receive Data, digunakan DTE untuk menerima data dari DCE.
3. Transmit Data, digunakan DTE untuk mengirimkan data ke DCE.
4. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya.
5. Signal Ground, saluran ground
6. DCE ready adalah sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.
7. Request to Send, dengan saluran ini DCE diminta mengirim data oleh DTE.
8. Clear to Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai mengirim data.
9. Ring Indicator, pada saluran ini DCE memberitahukan ke DTE bahwa sebuah stasiun menghendaki hubungan dengannya.
2.8 IC MAX232
Untuk dapat berhubungan dengan PC, mikrokontroler harus membutuhkan komponen tambahan baik komunikasi paralel maupun serial. Pada pembuatan project akhir 1 ini yang digunakan adalah komunikasi serial. Pada mikrokontroler sendiri terdapat buffer yang dapat digunakan sebagai pendukung proses komunikasi tersebut. Pada saat ini banyak komponen yang dapat digunakan untuk pendukung proses komunikasi tersebut, salah satu contohnya adalah maxim232.
Maxim232 berfungsi sebagai perantara antara mikrokontroler dengan port serial, karena mikrokontroler tidak dapat mengirim data begitu saja maka diperlukan maxim232. di dalam IC terdapat charge pump yang akan membangkitkan +10 Volt dan -10 Volt dari sumber +5 Volt tunggal dalam IC DIP (Dual in-line Package) 16 pin (8 pin x 2baris) ini terdapat 2 buah Maxim232 berfungsi sebagai perantara antara mikrokontroler dengan port serial, karena mikrokontroler tidak dapat mengirim data begitu saja maka diperlukan maxim232. di dalam IC terdapat charge pump yang akan membangkitkan +10 Volt dan -10 Volt dari sumber +5 Volt tunggal dalam IC DIP (Dual in-line Package) 16 pin (8 pin x 2baris) ini terdapat 2 buah
Gambar 2.12 Konfigurasi Pin IC MAX232
Tabel 2.12 Fungsi IC MAX232
Nama No. C1+
Positive lead of C1 capacitor V+
2 0 Positive charge pump output for storage capacitor only C1-
Negative lead of C1 capacitor C2+
Positive lead of C2 capacitor C2-
Negative lead of C2 capacitor V-
6 0 Negative charge pump output for storage capacitor only T 2OUT, T 1OUT
0 RS232 line data output (to remote RS232 system) R 2IN ,R 1IN
1 RS232 line data input (from remote RS232 system) R 2OUT ,R 1OUT
0 Logic data output (to UART) T 2IN ,T 1IN
1 Logic data input (to UART) GND
Supply Voltage, Connect to external 5V power supply
2.9 Bahasa C
Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.jenis mesin. Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI ( American National Standar Institut ) yang dijadikan acuan oleh para pembuat kompiler.
Kelebihan Bahasa C: - Bahasa C tersedia hampir di semua jenis computer.
- Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer. - Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata
kunci. - Proses executable program bahasa C lebih cepat - Dukungan pustaka yang banyak. -
C adalah bahasa yang terstruktur - Bahasa C termasuk bahasa tingkat menengah Penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang berorientasi
pada mesin. yang merupakan ciri bahasa tingkat rendah. melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.
Kekurangan Bahasa C: - Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai. - Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
2.10 CodeVisionAVR
CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95,
98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded.
File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis. Software In-System Programmer didesain untuk bekerja dengan Atmel STK500/AVRISP/AVRProg, Kanda Systems STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics ATCPU/Mega2000 programmers/development boards.
Untuk keperluan debugging sistem embedded, yang menggunakan komunikasi serial, IDE mempunyai fasilitas internal berupa sebuah Terminal. Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk:
Modul LCD alphanumeric Bus I2C dari Philips Sensor Suhu LM75 dari National Semiconductor Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari
Maxim/Dallas Semiconductor Protokol 1-Wire dari Maxim/Dallas Semiconductor
Sensor Suhu DS1820, DS18S20, dan DS18B20 dari Maxim/Dallas Semiconductor Termometer/Termostat DS1621 dari Maxim/Dallas Semiconductor EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor SPI Power Management Delay Konversi ke Kode Gray
CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengujinkan Anda untuk menulis, dalam hitungan menit, semua instruksi yang diperlukan untuk membuat fungsi-fungsi berikut:
Set-up akses memori eksternal Inisialisasi port input/output Inisialisasi interupsi eksternal
Inisialisasi Timer/Counter Inisialisasi Watchdog-Timer Inisialisasi UART (USART) dan komunikasi serial berbasis buffer yang digerakkan
oleh interupsi Inisialisasi Pembanding Analog
Inisialisasi ADC Inisialisasi Antarmuka SPI Inisialisasi Antarmuka Two-Wire Inisialisasi Antarmuka CAN\ Inisialisasi Bus I2C, Sensor Suhu LM75, Thermometer/Thermostat DS1621 dan Real-
Time Clock PCF8563, PCF8583, DS1302, dan DS1307 Inisialisasi Bus 1-Wire dan Sensor Suhu DS1820, DS18S20
Inisialisasi modul LCD
Gambar 2.13 CodeVisionAVR
BAB III PERANCANGAN SISTEM
3.1 Diagram Blok Rangkaian
CATU DAYA
DETEKSI SENSOR GAS GAS
DISPLAY LCD
Gambar 3.2 Diagram Blok Sistem
Fungsi Tiap Blok :
1. Blok Deteksi Gas
: Sebagai elemen yang diukur
2. Blok Sensor Gas MQ-135 : Sebagai input/data gas yang diukur
3. Block Catu daya
: Sebagai sumber tegangan
4. Blok ATmega 16
: Sebagai pengkonversi data dari sensor
5. Blok Display
: Sebagai penampil hasil pengukuran
6. Blok Serial
: Port serial sebagai interface ke PC
7. Blok PC
: Penampil hasil/ data yang terakhir
3.2 Rangkaian Mikrokontroler ATMega16
Rangkaian layout PCB sistem minimum Mikrokontroler ATMega 16 dapat dilihat pada gambar di bawah. Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Pin 12 dan 13 dihubungkan ke XTAL 11.0592 MHz dan dua buah kapasitor 22 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler ATMega 16 dalam mengeksekusi setiap perintah dalam program. Untuk men-download perintah ke mikrokontroler, Mosi, Miso, Sck, Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke konektor dimana konektor akan dihubungkan ke ISP Programmer. Dari ISP Programmer inilah dihubungkan ke komputer melalui port paralel.