Alat Ukur Konsentrasi Asap Rokok Berbasis Mikrokontroler Atmega8 Menggunakan Sensor MQ-2

(1)

ALAT UKUR KONSENTRASI ASAP ROKOK

BERBASIS MIKROKONTROLER ATMEGA8 MENGGUNAKAN SENSOR MQ-2

TUGAS AKHIR

VADHYA WIENDYAS GANDORIA

112411020

PROGRAM STUDI D-3 METROLOGI & INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

ALAT UKUR KONSENTRASI ASAP ROKOK

BERBASIS MIKROKONTROLER ATMEGA8 MENGGUNAKAN SENSOR MQ-2

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat Ahli

Madya,

VADHYA WIENDYAS GANDORIA

112411020

PROGRAM STUDI D-3 METROLOGI & INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN


(3)

PERSETUJUAN

Judul : ALAT UKUR KONSENTRASI ASAP ROKOK

BERBASIS MIKROKONTROLER ATMEGA8 MENGGUNAKAN SENSOR MQ-2

Kategori : TUGAS AKHIR

Nama : VADHYA WIENDYAS GANDORIA

No.Induk Mahasiswa : 112411020

Program Studi : D3 METROLOGI DAN INSTRUMENTASI Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA)

UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, 21 Juli 2014

Ketua Departemen Dosen Pembimbing, D3 Metrologi dan Instrumentasi

Dr. Diana Alemin Barus M.Sc

NIP. 196607291992032002 NIP. 195609181985031002 Dr. Bisman P, M.Eng.Sc


(4)

PERNYATAAN

ALAT UKUR KONSENTRASI ASAP ROKOK BERBASIS

MIKROKONTROLER ATMEGA8 MENGGUNAKAN SENSOR

MQ-2

TUGAS AKHIR

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

Medan, 21 Juli 2014

VADHYA WIENDYAS GANDORIA

112411020


(5)

PENGHARGAAN

Alhamdulillah puji dan syukur penulis ucapkan kepada Allah Subhanahuwata’ala, atas segala karuniaNya yang telah diberikan kepada penulis sehingga dapat menyelesaikan Tugas Akhir ini dengan baik. Shalawat dan Salam kepada Nabi Muhammad SAW semoga kita mendapatkan safa’atnya di kemudian hari. Amin

Dalam kesempatan ini penulis menyampaikan rasa hormat dan ucapan terima kasih yang sebesar- besarnya kepada keluarga serta orang-orang yang mendukung sehingga penulis dapat menyelesaikan Tugas Akhir ini. Pada kesempatan ini penulis mengucapkan terima kasih banyak kepada Ayahanda M H Yunus dan Ibunda Sri Rejeki, terima kasih atas kasih sayang dan kepercayaan yang telah kalian berikan kepada anak kalian ini, serta adikku tercinta, Fraska, Viona, Frananda terima kasih buat dukungannya, doa dan motivasi yang diberikan dari awal mulai perkuliahan sampai penulisan Tugas Akhir ini serta buat seluruh keluarga yang telah membantu, mendukung dan memberikan serta support terhadap pendidikan saya hingga bisa berkembang seperti sekarang. Ucapan terimahkasih saya ucapkan juga kepada :

1. Yth.Bapak Dekan Dr.Sutarman beserta jajarannya di lingkungan FMIPA USU

2. Bapak Dr. Marhaposan Situmorang, selaku Ketua Departemen Fakultas Matematika Dan Ilmu Pengetahuan Alam dan

3. Ibu Dr. Diana A. Barus M.Sc selaku Ketua Prodi D3 Metrologi dan Instrumentasi sekaligus sebagai dosen penguji I.

4. Ibu Dr. Ratna Askiah Simatupang M.Si selaku sekretaris prodi D3 Metrologi dan Instrumentasi.


(6)

6. Seluruh Dosen dan Karyawan Program Studi D3 Metrologi dan Instrumentasi Departemen Fisika FMIPA USU.

7. Seorang yang yang sangat berjasa besar yaitu Abang Dwi Budi Prasetyo, yang telah banyak mengorbankan waktu dan tenaganya untuk membantu pengerjaan tugas akhir ini hingga selesai , terimah kasih .

8. Kepada abang-abang yaitu : bang robbhy , bang hamdan, bang kharismah, bang oki hadinata, saya ucapkan banyak terimah kasih.

9. Saudara-saudaraku di UKM ROBOTIK SIKONEK USU , tiada satupun kesan yang ingin kulupakan saat bersama kalian, semua proses pengerjaan tugas akhir ini sebahagiaan besar dapat terlaksana karena para teman, kepada : anie, astrid, nuril, jepri, wana, irfa, faqih, fadly, ivon, oca, cahya, mestika, nissa, dinda, yuni, iki, dan semuanya dan kita sama-sama mengerjakan dengan sepenuh hati atas segala bentuk bantuan yang telah diberikan kepada saya. Jazakumullah khairan katsiran kepada saudara-saudara seperguruanku, teman–teman seperjuangan yang telah banyak membantu dalam proses pengerjaan tugas akhir ini.

Penulis menyadari sepenuhnya bahwa dalam pembuatan tugas akhir ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun dalam penyempurnaan tugas akhir ini. Semoga laporan ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.

Amin Yaa Rabbal’alamin

Medan, Juli 2014 Penulis, Vadhya Wiendyas Gandoria


(7)

ABSTRAK

Alat ukur ALAT UKUR KONSENTRASI ASAP ROKOK BERBASIS MIKROKONTROLER ATMEGA8A MENGGUNAKAN SENSOR MQ-2 ini adalah alat ukur yang digunakan untuk mengukur gas dari konsentasi asap (asap rokok) yang ada di sekitar ruangan. Alat ini dapat bermanfaat untuk aplikasi pengukuran gas. Komponennya adalah Sistem Minimum menggunakan mikrokontroler Atmega8, LCD sebagai display untuk penunjukkan dan sensor MQ-2 (smoke sensor and LPG). Gas yang diukur dalam pengukuran ini adalah CO (carbon monoksida) yang terkandung dalam asap rokok.


(8)

DAFTAR ISI

Halaman

PERSETUJUAN ... i

PERNYATAAN ... ii

PENGHARGAAN ... iii

ABSTRAK ... vi

DAFTAR ISI ... vii

DAFTAR TABEL...ix

DAFTAR GAMBAR ... x

DAFTAR LAMPIRAN ... xi

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

1.2. Identifikasi Masalah ... 2

1.3. Batasan Masalah ... 2

1.4. Maksud dan Tujuan ... 3

1.5. Metode Penelitan ... 3

1.5. Sistematika Penulisan ... 4

BAB II LANDASAN TEORI 2.1. Mikrokontroler ... 6

2.2. ATMEGA8 ... 9

2.2.1. Konfigurasi Pin Atmega8... 10

2.2.2. Status Register ... 14

2.2.3. Memory AVR Atmega 8 ... 16

2.2.4. Timer/ Counter 0 ... 18

2.2.5. Komunikasi Serial pada Atmega ... 18

2.2.6. Arsitektur Mikrokontroler ... 19

2.2.7. Kelebihan Mikrokontroler Atmega8 ... 20

2.3. Sensor MQ-2 ... 22

2.4. Code Vision AVR ... 24

2.5. LCD ... 25

2.5.1. Cara Kerja LCD ... 27

BAB III SISTEM KERJA RANGKAIAN 3.1. Perancangan Sistem ... 29

3.2. Prinsip Kerja Alat ... 30

3.3. Rangkaian Alat Ukur Konsentrasi Asap Rokok ... 30

3.3.1. Sistem Minimum ATMEGA8 ... 30

3.3.2. Rangkaian Sensor MQ-2 ... 31

3.3.3. Rangkaian LCD ... 32

3.3.4. Rangkaian Regulator...32

3.3.5. Rangkaian Keseluruhan ... 33


(9)

BAB IV ANALISA DAN PENGUJIAN ALAT

4.1. Umum ... 35

4.2. Pengujiian Alat ... 35

4.2.1. Pengujian Sistem Minimum ... 35

4.2.2. Pengujian Sensor MQ-2 ... 35

4.2.3. Pengujian LCD ... 36

4.2.2. Pengujian Rangkaian Regulator ... 36

4.3. Data Analisa Pengukuran Asap Rokok ... 37

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 38

5.2. Saran ... 38

DAFTAR PUSTAKA ... 39


(10)

DAFTAR TABEL

Nomor Judul Halaman Tabel

2.1. Fungsi Alternatif PORT B ... 11

2.2. Fungsi Alternatif PORT C ... 12

2.3. Fungsi Alternatif PORT D ... 13

2.4. Pin untuk LCD ... 24

3.1. Pin Yang Dipakai pada LCD ... 32

4.1. Data Pengujian Sensor MQ-2 ... 36


(11)

DAFTAR GAMBAR

Nomor Judul Halaman Gambar

2.1. Gambaran Umum Mikrokontroler ... 6

2.2. ATMEGA 8... 9

2.3. Konfigurasi ATMEGA8 ... 10

2.4. Status Register ATMEGA8 ... 15

2.5. Peta Memory ATMEGA8 ... 17

2.6. Diagram Blok ATMEGA8 ... 19

2.7. Flash ATMEGA8 ... 21

2.8. Sensor MQ-2 ... 22

2.9. LCD 2X16 ... 25

2.10. Susunan Alamat Pada LCD ... 26

3.1. Blok Diagram ... 29

3.2 Rangkaian Minimum Sistem ATMEGA8... 31

3.2 Rangkaian Sensor MQ-2 ... 31

3.4 Rangkaian LCD... 32

3.5 Rangkaian Regulator ... 32

3.6 Rangkaian Keseluruhan ... 33

3.7 Flowchart dari alat ukur ... 34


(12)

DAFTAR LAMPIRAN

Nomor Judul Halaman Lamp

1 Program Alat Ukur ... 42

2 Dokumentasi Alat ... 47

3. Datasheet Atmega8 ... 50


(13)

ABSTRAK

Alat ukur ALAT UKUR KONSENTRASI ASAP ROKOK BERBASIS MIKROKONTROLER ATMEGA8A MENGGUNAKAN SENSOR MQ-2 ini adalah alat ukur yang digunakan untuk mengukur gas dari konsentasi asap (asap rokok) yang ada di sekitar ruangan. Alat ini dapat bermanfaat untuk aplikasi pengukuran gas. Komponennya adalah Sistem Minimum menggunakan mikrokontroler Atmega8, LCD sebagai display untuk penunjukkan dan sensor MQ-2 (smoke sensor and LPG). Gas yang diukur dalam pengukuran ini adalah CO (carbon monoksida) yang terkandung dalam asap rokok.


(14)

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Kemajuan teknologi pada saat ini membuat semua orang dapat melakukan apa saja sesuai keinginan. Era globalisasi dan komunikasi saat ini ditandai dengan banyaknya manusia yang memanfaatkan teknologi untuk memenuhi kebutuhan hidupnya. Adanya teknologi baru, merupakan sumbangan tak ternilai dari kemajuan teknologi yang begitu pesat, dengan dukungan teknologi tersebut yang menjadi faktor utama manusia semakin dimanjakan. Saat ini dalam kehidupan sehari–hari manusia tidak pernah lepas dari aktivitasnya untuk berinteraksi dengan banyak fasilitas–fasilitas yang membantu kinerja manusia, tetapi dilain sisi fasilitas– fasilitas yang membantu kinerja menimbulkan hal negatif pada diri manusia itu sendiri, seperti polusi udara yang diakibatkan oleh ulah manusia baik secara langsung maupun dari alat yang mereka gunakan mengakibatkan polusi yang berlebihan yang manusia sumbangkan untuk bumi ini dan dalam kehidupan. Banyak kasus yang belum tersolusikan dalam penanganan hal tersebut.

Polusi udara yang dihasilkan langsung oleh manusia adalah kandungan asap yang beruba gas CO (Carbon monoksida) yang terdapat pada rokok yang manusia isap setiap harinya, pria maupun wanita yang menjadi perokok aktif adalah penyumbang dari gas tersebut dan manusia lain sebagai perokok pasif (yang tidak merokok) dapat terkena imbasnya begitu pula dengan alam sekitar, karena tidak hanya gas CO yang dihasilkan, melainkan masih banyak kandungan lain yang


(15)

dihasilkan oleh asap rokok tersebut. Peristiwa ini telah banyak kita dengar dan lihat di media masa maupun media elektronik dan belum tersolusikan hingga asap rokok yang semakin hari semakin meresahkan masyarakat. Melihat latar belakang tersebut, penulis mengambil judul Tugas Akhir ini yaitu “ALAT UKUR KONSENTRASI ASAP ROKOK BERBASIS MIKROKONTROLER ATMEGA8 MENGGUNAKAN SENSOR MQ-2”

1.2 Identifikasi Masalah

Berdasarkan dari beberapa yang terjadi di lapangan makin maraknya perokok aktif yang merokok secara bebas di suatu ruangan dapat mengkibatkan hal-hal yang berbahaya. Asap rokok pada perokok pasif akibatnya lebih berbahaya dibandingkan perokok aktif. Bahkan bahaya yang harus ditanggung perokok pasif tiga kali lipat dari bahaya perokok aktif. Setyo Budiantoro dari Ikatan Ahli Kesehatan Masyarakat Indonesia (IAKMI) mengatakan sebanyak 25 persen zat berbahaya yang terkandung dalam rokok masuk ke tubuh perokok, sedangkan 75 persennya beredar di udara bebas yang berisiko masuk ke tubuh orang di sekelilingnya. Oleh sebab itu dibutuhkan suatu sistem kontrol yang dapat mengukur beberapa macam konsentrasi gas sehingga nantinya alat ini mampu mengurangi berbagai macam permasalahan diatas.

1.3 Batasan Masalah

Batasan masalah dari tugas akhir ini memiliki cakupan antara lain, :

• Sistem kontrol yang digunakan berbasis ATMEGA8 yang menggunakan sensor smoke MQ-2 yang dapat mendeteksi konsentrasi gas terhadap sampel yakni asap rokok , kadar karbon monoksida dengan satuan ppm.


(16)

• Pengukuran dilakukan pada simulasi ruangan tertutup.

1.4 Maksud dan Tujuan

Maksud dari penulisan tugas akhir ini antara lain guna untuk mencegah terjadinya hal-hal yang tidak diinginkan seperti kebakaran dan perokok pasif yang menanggung akibatnya karena perokok pasif.

Tujuan dari tugas akhir ini :

1. Merancang alat ukur pendeteksi yang yang dapat mengetahui ada tidaknya asap rokok gas di suatu ruangan tertutup tertentu yang dibatasi luasnya dalam tugas akhir ini.

2. Membuat suatu alat yang tepat guna dan berkualitas yang sangat dibutuhkan di dalam kehidupan manusia sehari-hari

3. Mengembangkan ilmu pengukuran di dalam pengaplikasinnya seperti mengukur konsentrasi asap rokok.

4. Memenuhi syarat untuk menyelesaikan mata kuliah Tugas Akhir dan menyelesaikan pendidikan di program studi D-III Metrologi dan Instrumentasi FMIPA USU.

1.5 Metode Penelitian 1. Study literatur

Merupakan metode yang dilakukan oleh penulis dengan mengunjungi tempat dan mempelajari website ataupun buku-buku yang berkaitan dengan pembuatan alat ukur konsentrasi asap rokok berbasis mikrokontroler ATMEGA8.


(17)

Merupakan suatu tahap awal dalam merumuskan masalah dan membuat rancangan konsep dalam menyelesaikan suatu masalah. Bentuknya adalah konsep tertulis dan tergambarkan dalam bentuk diagram blok.

3. Perancangan dan pembuatan alat ukur

Proses merancang desain dan bentuk alat ukur sampai membuat alat ukurnya.

4. Menguji mekanika dari alat ukur

Merupakan tahap menguji mekanika dari alat ukur, untuk dilanjutkan agar bisa di program.

5. Proses pembuatan pemrograman

Kegiatan dimana mencari algoritma yang menjadi suatu program untuk alat ukur konsentrasi asap rokok berbasis mikrokontroler ATMEGA8.

6. Uji tahap awal

Proses menguji alat ukur konsentrasi asap rokok berbasis mikrokontroler ATMEGA8 ini, agar bisa mengukur.

7. Membuat kesimpulan dari hasil alat ukur konsentrasi asap rokok berbasis mikrokontroler ATMEGA8

1.6 Sistematika Penulisan BAB 1 : PENDAHULUAN

Bagian pendahuluan berisikan latar belakang, identifikasi masalah, batasan masalah (bila diperlukan), maksud dan tujuan penelitian, metode penelitian, sistematika penulisan.


(18)

BAB 2 : LANDASAN TEORI

Berisikan informasi yang sudah dilaporkan dan sangat erat kaitannya dengan alat ukur yang berkenaan dengan hasil pengukuran. Disini landasan teori yang di bahas adalah mikrokontroler ATMEGA8, sensor MQ-2, LCD, CodeViosionAVR.

BAB 3 : SISTEM KERJA RANGKAIAN

Pada bab ini akan dibahas sistem kerja rangkaian, yaitu diagram blok dari rangkaian dan flowchart.

BAB 4 : ANALISA DAN PENGUJIAN ALAT

Hasil pengujian alat ukur dapat disajikan dalam tabel, gambar, atau dalam narasi.

BAB 5 : KESIMPULAN DAN SARAN

Bagian kesimpulan disiapkan dalam poin-poin sesuai dengan hasil penelitian. Kesimpulan harus merujuk kepada tujuan penelitian. Bagian saran merupakan harapan penulis untuk kelengkapan informasi mengenai tema yang dikaji dan atau harapan penulisan terhadap penggunaan temuan.


(19)

BAB II

LANDASAN TEORI

2.1. Mikrokontroler

Mikrokontroler sering disebut sebagai mikrokomputer atau embedded system. Mikrokontroler dipandang sebagai suatu sistem yang terdiri atas input,program dan output. Mikrokontroler dapat diatur oleh sebuah program. Proses untuk memasukkan program ke dalam mikrokotroler disebut dengan download dan alat yang digunakan disebut dengan downloader. Seperti sistem komputer nilai tambah sistem mikrokontroler dapat dilipatgandakan melalui program. Mikrokontroler diproduksi dalam bentuk rangkaian terpadu (IC) seperti gambar dibawah ini.

Gambar 2.1. Gambaran Umum Mikrontroler

Secara sederhana mikrokontroler adalah mikroprosesor yang dilengkapi dengan periperal dan peralatan pendukung yang di dalam mikroprosesor tidak dilengkapi. Dalam sistem tertanam berbasis mikroprosesor, pengantara periferal dan peralatan pendukung dalam mikrokontroler direalisisasikan dengan serpih rangkaian terpadu


(20)

tambahan di luar mikroprosesor itu. Mikrokontroler menerapkan arsitektur Harvard, dalam arsitektur ini penjemputan instruksi dapat dilaksanakan secara bersamaan dengan pemindahan data. Tetapi dalam kebanyakan mesin dengan arsitektur Harvard juga memori tersebut dihubungkan ke bus bersama sehingga paralelismenya sangat berkurang. Secara umum, mikrokontroler mengandung tujuh komponen : Prosesor (CPU), ROM, RAM, bandar (port) I/O, Rangkaian Interupsi, Timer, dan Bus yang dihubungkan.

- Prosesor : Prosesor (CPU) melaksanakan penjemputan intruksi dari memori mendekodekan dan menjalankannya dan mengarahkan perpindahan data antar register atau antara register dan memori.

- ROM : digunakan untuk menyimpan data yang bersifat permanen. Dalam mikrokontroler program disimpan dalam ROM, atau EPROM atau Flash EPROM. Ada mikrokontroler yang dapat ditambah ROM eksternal di luar serpih mikrokontroler. Disamping ROM untuk program juga digunakan EEPROM untuk menyimpan data.

- RAM : RAM digunakan untuk menyimpan data yang bersifat sementara. Dalam mikrokontroler, RAM yang tersedia sangat sedikit yang sebagiannya digunakan lagi sebagai register prosesor, dikatakan register dipetakan sebagai memori.

- Timer : Timer (pewaktu) adalah counter (pencacah) yang digunakan untuk membangkitkan pulsa atau deretan pulsa pada saat-saat tertentu atau dengan frekuensi tertentu. Pulsa ini digunakan untuk sebagai inetrupsi internal untuk memulai atau mengakhiri kegiatan tertentu. Dalam kebanyakan


(21)

mikrokontroler, pencacah ini adalah pencacah naik, berbeda dengan pencacah turun yang diterapkan dalam sistem mikroprosesor.

- Bandar I/O : Terdiri atas Port Paralel dan Port Seri yang mempunyai kemampuan tristate. Pada sebagian mikrokontroler disediakan bandar masukan/keluaran analog. Fungsi bandar ini pada umumnya dipilih (dikonfigurasi) sebagai masukan/keluaran paralel/seri analog. Arah aliran data pada Port masukan/keluaran pada umumnya dipilih melalaui register arah (Data Direction Register, disingkat DDR). Port ini juga dipetakan sebagai memori.

- Interupsi : interupsi dapat dibedakan atas interupsi perangkat lunak yang dibangkitkan oleh interupsi yang ditanamkan dalam program dan interupsi perangkat keras yang dibangkitkan oleh sinyal perangkat keras yang baik yang berasal dari sumber internal seperti timer atau sumber eksternal dari port seri atau paralel.

- Bus : bus adalah saluran yang melakukan (membawa) sinyal-sinyal perangkat keras. Sebagaimana dalam mikroprosesor, bus dibedakan atas bus data, alamat dan kontrol. Bus data melakukan data antara register dan memori atau I/O, bus ini bersifat dua arah.

Beberapa contoh keluarga mikrokontroler : - Keluarga MCS-48

- Keluarga MCS-51 - Keluarga MC68HC05 - Keluarga MC68HC08 - Keluarga MC68HC11 - KeluargaPIC 8


(22)

- Keluarga AVR

2.2. ATMEGA8

AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.

Gambar 2.2. ATMEGA8

AVR ATmega8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR RISC yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan konsumsi daya rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada besarnya tegangan yang diperlukan untuk bekerja.


(23)

Untuk ATmega8 tipe L, mikrokontroler ini dapat bekerja dengan tegangan antara 2,7 - 5,5V sedangkan untuk ATmega8 hanya dapat bekerja pada tegangan antara 4,5–5,5 V.

2.2.1. Konfigurasi Pin Atmega8

Gambar 2.3. Konfigurasi Pin Atmega8

ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi yang berbeda-beda baik sebagai port maupun fungsi yang lainnya. Berikut akan dijelaskan fungsi dari masing-masing kaki ATmega8.

a. VCC

Merupakan supply tegangan digital.

b. GND

Merupakan ground untuk semua komponen yang membutuhkan grounding. c. Port B (PB7...PB0)

Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B adalah 8 buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat digunakan sebagai input maupun output. Port B merupakan sebuah 8-bit


(24)

bi-directional I/O dengan internal pull-up resistor. Sebagai input, pin-pin yang terdapat pada port B yang secara eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan. Khusus PB6 dapat digunakan sebagai input Kristal (inverting oscillator amplifier) dan input ke rangkaian clock internal, bergantung pada pengaturan Fuse bit yang digunakan untuk memilih sumber clock. Sedangkan untuk PB7 dapat digunakan sebagai output Kristal (output oscillator amplifier) bergantung pada pengaturan Fuse bit yang digunakan untuk memilih sumber clock. Jika sumber clock yang dipilih dari oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunakan maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan untuk saluran input timer.

Tabel 2.1. Fungsi Alternatif Port B

d. Port C (PC5…PC0)

Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam masing-masing pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai keluaran/output port C memiliki karakteristik yang sama dalam hal menyerap arus (sink) ataupun mengeluarkan arus (source). ADC 6 channel (PC0,PC1,PC2,PC3,PC4,PC5) dengan resolusi


(25)

sebesar 10bit. ADC dapat kita gunakan untuk mengubah input yang berupa tegangan analog menjadi data digital. I2C (SDA dan SDL) merupakan salah satu fitur yang terdapat pada PORTC. I2C digunakan untuk komunikasi dengan sensor atau device lain yang memiliki komunikasi data tipe I2C seperti sensor kompas, accelerometer nunchuck, dll.

e. RESET/PC6

Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Pin ini memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C lainnya. Namun jika RSTDISBL Fuse tidak diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan suatu kondisi reset meskipun clock-nya tidak bekerja. RESET merupakan salah satu pin penting di mikrokontroler, RESET dapat digunakan untuk merestart program. Pada ATMega8 pin RESET digabungkan dengan salah satu pin IO (PC6). Secara default PC6 ini di disable dan diganti menjadi pin RESET. Kita dapat melakukan konfigurasi di fusebit untuk melakukan pengaturannya.


(26)

f. Port D (PD7…PD0)

Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor. Fungsi dari port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut dengan I/O.

Tabel 2.3. Fungsi Alternatif Port D

USART (TXD dan RXD) merupakan jalur data komunikasi serial dengan level sinyal TTL. Pin TXD berfungsi untuk mengirimkan data serial, sedangkan RXD kebalikannya yaitu sebagai pin yang berfungsi untuk menerima data serial. Interrupt (INT0 dan INT1) merupakan pin dengan fungsi khusus sebagai interupsi hardware. Interupsi biasanya digunakan sebagai selaan dari program, misalkan pada saat program berjalan kemudian terjadi interupsi hardware/software maka program utama akan berhenti dan akan menjalankan program interupsi. XCK dapat difungsikan sebagai sumber clock external untuk USART, namun kita juga dapat memanfaatkan clock dari CPU, sehingga tidak perlu membutuhkan external clock. T0 dan T1 berfungsi sebagai masukan counter external untuk timer 1 dan


(27)

timer 0. AIN0 dan AIN1 keduanya merupakan masukan input untuk analog comparator.

g. Avcc

Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan tetap saja disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika ADC digunakan, maka AVcc harus dihubungkan ke VCC melalui low pass filter.

h. AREF

Merupakan pin referensi jika menggunakan ADC.

2.2.2. Status Register

Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan performa pengoperasian. Register ini di-update setelah operasi ALU (Arithmetic Logic Unit) hal tersebut seperti yang tertulis dalam datasheet khususnya pada bagian Instruction Set Reference.

Dalam hal ini untuk beberapa kasus dapat membuang penggunaan kebutuhan instruksi perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal tersebut harus dilakukan melalui software. Berikut adalah gambar status register.


(28)

Gambar 2.4. Status Register ATMega8 Penjelasan :

 Bit 7(I)

Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua perintah interupsi dapat dijalankan. Untuk perintah interupsi individual akan di jelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang individual maupun yang secara umum akan di abaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah sebuah interupsi di jalankan dan akan di-set kembali oleh perintah RETI. Bit ini juga dapat di-set dan di-reset melalui aplikasi dan intruksi SEI dan CLL.

 Bit 6(T)

Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) and BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam Register File dapat disalin ke dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam bit di dalam register pada Register File dengan menggunakan perintah BLD.

 Bit 5(H)

Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.


(29)

Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara Negative Flag (N) dan two’s Complement Overflow Flag (V).

 Bit 3(V)

Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi aritmatika dua komplemen.

 Bit 2(N)

Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative di dalam sebuah fungsi logika atai aritmatika.

 Bit 1(Z)

Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0” dalan sebuah fungsi aritmatika atau logika.

 Bit 0(C)

Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam sebuah aritmatika atau logika.

2.2.3. Memori AVR Atmega Memori atmega terbagi menjadi tiga yaitu :

a. Memori Flash

Memori flash adalah memori ROM tempat kode-kode program berada. Kata flash menunjukan jenis ROM yng dapat ditulis dan dihapus secara elektrik. Memori flash terbagi menjadi dua bagian yaitu bagian aplikasi dan bagian boot. Bagian aplikasi adalah bagian kode-kode program apikasi berada. Bagian boot adalah bagian yang digunakan khusus untuk booting awal yang dapat diprogram untuk menulis bagian aplikasi tanpa melalui programmer/downloader, misalnya melalui USART.


(30)

Gambar 2.5. Peta Memory ATMEGA8 b. Memori Data

Memori data adalah memori RAM yang digunakan untuk keperluan program. Memori data terbagi menjadi empat bagian yaitu : 32 GPR (General Purphose Register) adalah register khusus yang bertugas untuk membantu eksekusi program oleh ALU (Arithmatich Logic Unit), dalam instruksi assembler setiap instruksi harus melibatkan GPR. Dalam bahasa C biasanya digunakan untuk variabel global atau nilai balik fungsi dan nilai-nilai yang dapat memperingan kerja ALU. Dalam istilah processor komputer sahari-hari GPR dikenal sebagai “chace memory”.I/O register dan Aditional I/O register adalah register yang difungsikan khusus untuk mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin port, timer/counter, usart dan lain-lain. Register ini dalam keluarga mikrokontrol MCS51 dikenal sebagai SFR (Special Function Register).

c. EEPROM

EEPROM adalah memori data yang dapat mengendap ketika chip mati (off), digunakan untuk keperluan penyimpanan data yang tahan terhadap gangguan catu daya.


(31)

2.2.4. Timer/Counter 0

Timer/counter 0 adalah sebuah timer/counter yang dapat mencacah sumber pulsa/clock baik dari dalam chip (timer) ataupun dari luar chip (counter) dengan kapasitas 8-bit atau 256 cacahan. Timer/counter dapat digunakan untuk :

- Timer/counter biasa.

- Clear Timer on Compare Match (selain Atmega 8) - Generator frekuensi (selain Atmega 8)

- Counter pulsa eksternal

2.2.5. Komunikasi Serial Pada Atmega 8

Mikrokontroler AVR Atmega 8 memiliki Port USART pada Pin 2 dan Pin 3 untuk melakukan komunikasi data antara mikrokontroler dengan mikrokontroler ataupun mikrokontroler dengan komputer. USART dapat difungsikan sebagai transmisi data sinkron, dan asinkron. Sinkron berarti clock yang digunakan antara transmiter dan receiver satu sumber clock. Sedangkan asinkron berarti transmiter dan receiver mempunyai sumber clock sendiri-sendiri. USART terdiri dalm tiga blok yaitu clock generator, transmiter, dan receiver.


(32)

2.2.6. Arsitektur Mikrokontroler Atmega8

Gambar 2.6. Blok Diagram ATmega8

2.2.7. Kelebihan (Fitur) Mikrokontroler AVR ATmega8

Mikrokontroler AVR ATmega8 merupakan CMOS dengan konsumsi daya rendah, mempunyai 8-bit proses data (CPU) berdasarkan arsitektur AVR RISC. Dengan mengeksekusi instruksi dalam satu (siklus) clock tunggal, ATmega8 memiliki kecepatan data rata-rata (throughputs) mendekati 1 MIPS per MHz, yang


(33)

memungkinkan perancang sistem dapat mengoptimalkan konsumsi daya dan kecepatan pemrosesan. Berikut kelebihan yang dimiliki ATmega8 :

1. Kinerja Tinggi, Low-power AVR® 8-bit Microcontroller

Seperti yang disebutkan Atmel dalam websitenya "The low-power Atmel 8-bit AVR RISC-based microcontroller... The device supports throughput of 16 MIPS at 16 MHz and operates between 2.7-5.5 volts". AVR (Alf (Egil Bogen) and Vegard (Wollan) 's Risc processor) mengeluarkan ATmega8 dengan fitur yang sangat menarik untuk dicoba. Selama ini Penulis masih merasakan bahwa ATmega8 sangat bagus dalam hal kinerja, cocok untuk penelitian, pembuatan produk, bahkan untuk pembelajaran Robotik. Disamping kinerjanya yang handal, ATmega8 juga hemat energi (daya rendah), karena mampu beroperasi pada tegangan 2,7 sampai 5,5 Volt, dan hanya mengkonsumsi arus sebesar 3,6 mA.

2. Kemajuan Arsitektur RISC

Mikrokontroler AVR memiliki arsitektur Reduced Instruction Set Computing (RISC) atau "set instruksi Komputasi yang disederhanakan". Arsitektur Reduced Instruction Set Computing (RISC) atau "Set instruksi Komputer yang disederhanakan" pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada University of California di Berkely . Atmel AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan instrumentasi.


(34)

Mikrokontroler AVR ini memiliki arsitektur RISC delapan bit, di mana semua instruksi dikemas dalam kode 16-bit (16 bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu ) siklus clock.

3. Daya Tahan Tinggi dan Segmen Memori non-volatile.

Mikrokontroler AVR memiliki daya tahan data (retensi data) 20 tahun ketika suhu mencapai 85°C atau 100 tahun ketika suhu mencapai 25°C. ATmega8 memiliki 8 KB (KiloByte) memori Flash internal yang dapat dimasukan kode program utama (seperti file .hex) sehingga cukup untuk diterapkan dalam penelitian skala kecil - menengah. Disamping memori Flash, ATmega8 juga memiliki 512 Byte EEPROM yang dapat menampung data meskipun dalam keadaan OFF. Mikrokontroler ini juga memiliki 1K Byte Internal SRAM sehingga proses data bisa lebih cepat.

Gambar 2.7. Flash ATmega8 Kelebihan lainnya dari ATmega8 adalah :

 Dapat diisi data (write) dan dihapus (eraser) sampai 10.000 kali (untuk Flash) dan 100.000 kali untuk EEPROM

 Memiliki daya tahan data (retensi data) 20 tahun ketika suhu mencapai 85°C atau 100 tahun ketika suhu mencapai 25°C


(35)

 Terdapat pilihan Kode Boot Section dengan Lock Bits independen

 Sistem keamanan data dengan mengunci program untuk Software Security

2.3. Sensor MQ-2

MQ-2 adalah komponen elektronika untuk mendeteksi kadar gas hidrokarbon seperti iso butana (C4H10 / isobutane), propana (C3H8 / propane), metana (CH4 /

methane), etanol (ethanol alcohol, CH3CH2OH), hidrogen (H2 / hydrogen),

liquid petroleum gas). Gas sensor ini dapat digunakan untuk mendeteksi kebocoran gas di rumah / pabrik, misalnya untuk membuat rangkaian elektronika pendeteksi kebocoran elpiji.

MQ-2 berfungsi untuk mendeteksi keberadaan asap rokok di udara. Sensor akan mendeteksi keberadaan gas yang terkandung dalam asap rokok seperti asap maka resistansi elektrik sensor akan turun. Memanfaatkan prinsip kerja dari sensor MQ-2 ini, kandungan gas asap tersebut dapat terdeteksi. Sensor MQ-2 ini memiliki 6 buah masukan yang terdiri dari tiga buah supply power (VCC) sebasar +5 volt untuk mengaktifkan heater dan sensor, VSS (Ground), dan pin keluaran dari sensor tersebut. Pin keluaran dari sensor dihubungkan dengan ADC 0832 pada chanel 2 sebagai masukan. Tampilan sensor asap rokok MQ-2 seperti pada gambar di bawah ini.


(36)

Nilai RL sesuai dengan datasheet yaitu 10 KΩ. Tingkat sensitivitas sensor MQ-2 bervariasi untuk masing-masing tipe gas hidrokarbon yang dapat dideteksi sesuai tabel berikut ini:

• LPG & propana: 200 - 5000 ppm

• i-butana: 300 - 5.000 ppm

• metana: 5.000 - 20.000 ppm (untuk sensor yang lebih sensitif terhadap

methane, gunaka

• hidrogen: 300 - 5.000 ppm

• etanol / alkohol: 100 - 2.000 ppm (bila diperlukan sensor yang spesifik untuk

alkohol, gunaka

Keluaran sensor ini berupa resistansi analog yang dengan mudah dapat dikonversi menjadi tegangan dengan menambahkan satu resistor biasa (bisa juga menggunakan potensiometer sehingga ambang batas sensitivitas deteksi dapat disetel sesuai kebutuhan). Dengan mengkonversi impedansi ini menjadi tegangan, hasil bacaan sensor dapat dibaca oleh pin ADC (analog to digital converter) pada Nilai resistansi dari MQ-2 adalah perbedaan untuk berbagai jenis dan berbagai gas konsentrasi. Sensor ini, penyesuaian sensitivitas sangat diperlukan dengan mengkalibrasi detektor untuk 1000ppm liquified petroleum gas (LPG), atau konsentrasi 1000ppm iso-butana (i-C4H10) nilai udara dan penggunaan Resistensi

beban yang (RL) sekitar 20 KΩ (5KΩ dengan 47 KΩ). Ketika akurat mengukur, titik

alarm yang tepat untuk detektor gas harus ditentukan setelah mempertimbangkan pengaruh suhu dan kelembaban.


(37)

2.4. Code Vision AVR

CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded).

Ada beberapa program yang dapat digunakan sebagai editor dan compiler untuk mikrokontroler AVR, salah satunya adalah Code Vision. CodeVision AVR merupakan sebuah software yang digunakan untuk memprogram mikrokontroler sekarang ini telah umum. CodeVision AVR adalah salah satu alat bantu pemrograman yang bekerja dalam pengembangan di lingkungan perangkat lunak yang telah terintegrasi (Integrated Development Environment, IDE). Seperti aplikasi IDE lainnya Code VisionAVR dilengkapi dengan source code editor, compiler, linker, dan dapat memanggil Atmel AVR Studio untuk debuggernya. Mulai dari penggunaan untuk kontrol sederhana sampai kontrol yang cukup kompleks, mikrokontroler dapat berfungsi jika telah diisi sebuah program, pengisian program ini dapat dilakukan menggunakan compiler yang selanjutnya diprogram ke dalam mikrokontroler menggunakan fasilitas yang sudah disediakan oleh program tersebut.

Salah satu compiler program yang umum digunakan sekarang ini adalah CodeVision AVR yang menggunakan bahasa pemrograman C. CodeVision AVR


(38)

mempunyai suatu keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini memudahkan kita dalam inisialisasi mikrokontroler yang akan kita gunakan. Untuk memulai menjalannkan CodeVision buka program CodeVision lalu melalui menu Start|ALL Program||CodeVision|CodeVisionAVR C Compiler atau melalui lambang CodeVision melalui dekstop.

2.5. LCD (Liquid Cristal Display)

LCD (Liquid Cristal Display) adalah salah satu komponen elektronika yang berguna untuk menampilkan suatu data, baik karakter, huruf maupun grafik. Tampilan LCD sudah tersedia dalam bentuk modul yaitu tampilan LCD beserta rangkaian pendukungnya termasuk ROM dan pelengkap lainnya. LCD mempunyai pin data, kontrol catu daya, dan pengatur kontras tampilan. LCD dapat bekerja dengan tegangan sebesar 5 volt yang didapat dari keluaran mikrokontroler, untuk itu biasanya LCD dihubungkan dengan mikrokontroler.

LCD adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah LCD M1632 refurbish karena harganya cukup murah. LCD M1632 merupakan modul LCD dengan tampilan 2x16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.

Gambar 2.9. LCD 2x16


(39)

Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data Random Access Memory). driver LCD seperti HD44780 memiliki dua register yang aksesnya diatur menggunakan pin RS. Pada saat RS berlogika 0, register yang diakses adalah perintah, sedangkan pada saat RS berlogika 1, register yang diakses adalah register data.

Gambar 2.10. Susunan Alamat pada LCD

Alamat awal karakter 00H dan alamat akhir 39H. Jadi, alamat awal di baris kedua dimulai dari 40H. Jika Anda ingin meletakkan suatu karakter pada baris ke-2 kolom pertama, maka harus diset pada alamat 40H. Jadi, meskipun LCD yang digunakan 2x16 atau 2x24, atau bahkan 2x40, maka penulisan programnya sama saja. CGRAM merupakan memori untuk menggambarkan pola sebuah karakter, dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun, memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang. Berikut tabel pin untuk LCD M1632. Perbedaannya dengan LCD standar adalah pada kaki 1 VCC, dan kaki 2 Gnd. Ini kebalikan dengan LCD standar.


(40)

Kaki pin LCD 16x2 memiliki beberapa fungsi dan kegunaan yang sesuai dengan karakteristik sebagai berikut :

1. Pin data

Pin data dapat dihubungkan dengan bus data dari rangkaian lain seperti Mikrokontroler dengan lebar data 8 bit. Pin data ini berguna untuk menampilkan data yang terbaca dari mikrokontroler.

2. Pin RS (Register Select)

Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan yang masuk adalah data.

3. Pin R/W (Read Write)

Pin R/W (Read Write) berfungsi sebagai instruksi pada LCD jika low tulis data, sedangkan high baca data. Pin R/W juga sering disebut dengan pin perintah.

4. Pin E (Enable)

Pin E (Enable) digunakan untuk membaca data baik masuk atau keluar. Data masukan ataupun keluaran dari mikrokontroler yang akan ditampilkan pada layar LCD 16x2. 5. Pin LCD

Pin LCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan dengan ground, sedangkan tegangan catu daya yang dibutuhkan untuk mengaktifkan LCD sebesar 5 volt.

2.5.1 Cara Kerja LCD

Untuk menerima data dari mikrokontroler adalah pin D1-D7 dimana untuk menerima data, pin 5 pada LCD (R/W) harus diberi logika nol dan logika satu untuk


(41)

mengirimkan data ke mikrokontroler. Setiap menerima atau mengirimkan data untuk mengaktifkan LCD diperlukan sinyal E (chip Enable) dalam bentuk perpindahan logika 1 ke logika 0. Sedangkan pin RS (Register Selector) berguna untuk memilih instructio register (IR) atau data register (DR). Jika nilai RS 1 dan R/W 1 maka akan dilakukan operasi penulisan data ke DDRAM atau CGRAM. Sedangkan jika RS berlogika 1 dan berlogika R/W 1 maka akan membaca data dari DDRAM atau CGRAM ke register DR. Karakter yang ditampilkan ke display disimpan di memori DDRAM.

Fungsi display dalam suatu aplikasi microcontroller sangat penting sekali . diantaranya untuk:

• Memastikan data yg kita input valid

• Mengetahui hasil suatu proses

• Memonitoring suatu proses

• Mendebug program


(42)

BAB III

SISTEM KERJA RANGKAIAN

3.1. Perancangan Sistem

Dalam bab ini akan dibahas mengenai perancangan dan pembuatan perangkat keras serta perangkat lunak pendukungnya. Seperti pengambilan data asap rokok yang diperoleh dari sensor MQ-2 berupa tegangan kemudian diolah menggunakan mikrokontroler ATMEGA8 dan melalui antarmuka ADC pada port ADCnya. Rangkaian yang digunakan terdiri dari sensor MQ-2, minimum sistem ATMEGA8, dan LCD. Sedangkan software pemrograman yang digunakan CodeVisionAVR. Perancangan dan pembuatan rangkaian sensor MQ-2 beserta perangkat pendukungnya.

SENSOR

MQ-2

MIKROKONTROLER

ATMEGA 8A

LCD

ASAP

Gambar 3.1. Blok Diagram

Berdasarkan blok diagram pada Gambar 3.1. di atas, terdapat beberapa komponen, yang berfungsi sebagai berikut :

1. Mikrokontroler Atmega8 sebagai pemproses atau sebagai pengolahan data dan sebagai sistem yang dapat mengubah dari nilai tegangan menjadi nilai digital atau dengan kata lain ADC yang di dapat dari sensor MQ-2.

2. Sensor MQ-2 alat pendeteksi kandungan asap rokok.


(43)

3.2. Prinsip Kerja Alat

Ketika di dalam sebuah ruangan memiliki kandungan asap maka sensor MQ-2 akan mengekuarkan sinyal berupa perubahan tegangan yang terjadi berbandng lurus dengan kandugan gas asap yang disekitarnya. Jadi sensor MQ-2 tersebut berubah nilai tegangan itu akibat dari kandungan gas asap yang ada disekitarnya.

Pertama sekali alat bekerja sensor MQ-2 akan membaca terlebih dahulu selama 60 detik di udara bersih sebagai titik ukur kalibrasi. Setelah itu sensor akan membaca kembali secara berkala sebagai pendeteksi adanya asap atau kandungan gas disekitar sensor yang kemudian sinyal atau perubahan tegangannya akan terbaca ke mikrokontroler yang dikonversikan melalui ADC menjadi nilai digital dan dihitung menggunakan persamaan yang terdapat pada datasheet sensor MQ-2 sebagai perubahan nilai ADC atau nilai digital menjadi nilai kandungan gas CO.

Nilai yang sudah dikonversi akan ditampilkan menggunakn LCD berupa karakter dengan satuan ppm.

3.3. Rangkaian Alat Ukur Konsentrasi Asap Rokok 3.3.1. Sistem Minimum ATMEGA8

Sistem Minimum merupakan bagian utama dari pembuatan alat ini yang berfungsi sebagai pusat kendali dari seluruh sistem. Pada bagian ini terdiri dari mikrokontroler ATMEGA8, crystal 12MHz, kapasitor non polar, kapasitor bipolar, resistor, dan IC7805. Pada Port B 6 dan 7 dihubungkan dengan crystal dan dua buah kapasitor. Pada Port C 6 atau RESET terpasang resistor pull up sebesar 10 kiloOhm sebagai nilai awal yang berlogika satu dimana reset akan aktif ketika berlogika rendah dalam hal ini Pin Reset terhubung dengan ground melalui push button. Jadi ketika push button ditekan maka Pin Reset akan berloiika 0. Ketika push button tidak ditekan


(44)

maka tegangan akan sama atau mendekati dengan tegangan Vcc atau berlogika 1. Adapun gambar rangkaian dapat dilihat :

Gambar 3.2. Rangkaian Sistem Minimum ATMEGA8 3.3.2. Rangkaian Sensor MQ-2

Sensor MQ-2 memiliki tiga buah pin yakni diantaranya VCC, GND, data. Pin data dari sensor tersebut terhubung dengan PC.0 pada mikrokontroler. Dimana PC.0 adalah port ADC dari mikrokontroler yang akan dikonversi dengan antarmuka ADC.


(45)

3.3.3. Rangkaian LCD

Gambar 3.4. Rangkaian LCD

Dari gambar diatas port yang dipakai untuk menghubungkan LCD dengan mikrokontroler terdapat pada tabel dibawah ini :

Tabel 3.1. Pin Yang Dipakai pada LCD Nama Pin Port

RS RD EN D4 D5 D6 D7

PORTD.7 PORTD.6 PORTB.0 PORTD.4 PORTD.3 PORTD.2 PORTD.1

3.3.4. Rangkaian Regulator


(46)

Rangkaian regulator digunakan untuk mengeluarkan tegangan 5V yang menggunakan sebuah IC 7805 dan tiga buah kapasitor. Dalam hal ini tegangan yang masuk pada pin 7805 akan dikonversi menjadi tegangan output DC 5V.

3.3.5. Rangkaian Keseluruhan

Gambar 3.7. Rangkaian Keseluruhan

Ini adalah rangkaian dari keseluruhan alat ukur konsentrasi asap rokok berbasis mikrokontroler dengan mengggunakan sensor MQ-2.


(47)

3.4. Algoritma dari Alat Ukur

Mulai

Inisialisasi Port LCD, ADC

<60 Detik kalibrasi

A

Baca Nilai Sensor

Konversi Nilai Pembacaan Ke ppm

Tampilkan di LCD Pembacaan

Sensor

A

TIDAK

YA

Proses Kalibrasi


(48)

BAB IV

ANALISA DAN PENGUJIAN ALAT

4.1. Umum

Pada bab ini dilakukan pengujian alat terhadap beberapa sampel dimana hasil pengukuran yang terbaca berupa nilai digital dengan satuan ppm (part per million). Dengan sampel yaitu, asap rokok yang mengandung gas CO. Pengujian ini dilakukan di dalam ruangan tertutup dan di batasi luasnya. Adapun yang menjadi fokus daripada uji coba alat ini adalah kestabilan pembacaan pengukuran dari alat ukur tersebut terhadap sampel asap rokok.

4.2. Pengujian Alat

4.2.1. Pengujian Sistem Minimum

Pengujian sistem minimum Atmega8 dilakukan dengan cara memprogram sistem minimum Atmega8 menggunakan downloader lalu di program. Apabila sistem minimum Atmega8 dapat di erase pada program Code Vision AVR maka sistem minimum Atmega8 tersebut dalam keadaan bagus. Dan hasil dari pengujian alat ini adalah sistem minimum Atmega8 yang saya gunakan daapat di erase.

4.2.2. Pengujian Sensor MQ-2

Pengujian Sensor MQ-2 dilalakukan dengan cara mengukur tegangan yang terdapat pada PIN VCC dan Data pada sensor tersebut. Dengan membandingkan tegangan dalam keadaan sensor mendeteksi suatu asap (asap rokok) dan pada saat sensor tidak


(49)

mendeteksi adanya sap tersebut. Berikut tabel pengukurannya menggunakan multimeter digital :

Tabel 4.1. Data Pengujian Sensor MQ-2

No. MQ-2 tidak ada asap MQ-2 ada asap

VSS (V) S (V) VSS(V) S(V)

1. 4,89 1,5 4,89 3,5

2. 4,85 1,3 4,92 3,45

4.2.3. Pengujian LCD

Pengujian LCD adalah dengan cara memprogram LCD dengan Code Vision AVR dengan bahasa C yang di dalamnya terdapat command tersebut :

lcd_clear(); lcd_gotoxy(0,0);

lcd_putsf(" CO SMOKE");

sprintf(buff,"%d %d %d",LPG,CO,SMOKE); lcd_gotoxy(0,1);

lcd_puts(buff); delay_ms(200);

Setelah itu akan di masukkan ke dalam sistem minimum Atmega8 dengan downloader dan hasilnya adalah backlight LCD tersebut hidup.

4.2.4. Pengujian rangkaian regulator

Pengujian rangakaian regulator adalah dengan cara memberi tegangan maksimal 12V pada rangkaian, lalu rangkaian di ukur dengan multimeter digital dan hasil yang dikeluarkan adalah tegangan DC 5 V.


(50)

4.3. Data Analisa Pengukuran Asap Rokok

Pengujian dilakukan berulang kali sebanyak 10 kali pengujian dengan melakukan proses kalibrasi untuk setiap awal pembacaan data. Pengujian ini dilakukan juga dengan suhu sekitar 33o C. Data pengujian dapat dilihat pada tabel dibawah ini:

Tabel 4.2. Data Pengujian Pengujian ke Asap Rokok

(ppm)

CO (ppm)

1 14 31

2 8 11

3 14 17

4 45 70

5 27 83

6 15 24

7 33 61

8 39 88

9 30 69

10 42 92

Gambar 4.1. Grafik Pengujian

Dari gambar grafik diatas menunjukkan bahwa kandungan karbon monoksida lebih banyak terdapat dalam asap rokok.

0 10 20 30 40 50 60 70 80 90 100

1 2 3 4 5 6 7 8 9 10

p p m

Grafik Pengujian

ASAP ROKOK CO


(51)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Kesimpulan yang didapat dari hasil pengujian adalah sebagai:

1 Alat ini dapat mengukur asap bakaran seperti asap rokok yang di dalamnya terdapat gas CO, dan gas asap bakaran lainnya.

2 Perbandingan antara gas CO dan asap rokok yang diukur adalah berbanding terbalik, apabila asap rokok yang yang diukur kecil maka gas CO yang diukur akan besar nilainya.

3 Apabila pengukuran di ruangan tertutup semakin lama waktu pengujianya maka gas yang diukur tersebut akan semakin besar nilai terukurnya.

5.2. Saran

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

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

2.

Untuk dimasa yang akan datang, agar alat ini dapat ditingkatkan dan dikembangkan yang dilengkapi dengan tampilan LCD yang lebih canggih dan gas yang diukur tidak hanya ga CO.


(52)

DAFTAR PUSTAKA

1. Andrianto, Heri. 2013. “Pemrograman Mikrokontroler AVR Atmega16 Menggunakan Bahasa C”. Bandung. Informatika Bandung.

2. Budiharto, Widodo. 2008. “Panduan Pratikum Mikrokontroler AVR Atmega16”. Jakarta . PT. Elex Media Kamputindo.

3. Budioko , Totok. 2005. “Belajar dengan Mudah dan Cepat Pemrograman Bahasa C dengan SDCC pada Mikrokotroler AT89X051/AT 89C51/52 Teori, Simulasi dan Aplikasi”. Yogyakarta. Penerbit Gava Media.

4. Sulistiyanto, Nanang. 2008. “Pemrograman Mikrokontroler R8C/13”. Jakarta . PT. Elex Media Kamputindo.

5. Tarigan, Pernanti. 2011. “Sistem Tertanam (Embebbed System)”. Yogyakarta. Graha Ilmu.

6.

7.


(53)

(54)

Program dari Alat Ukur

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

CodeWizardAVR V2.05.3 Standard Automatic Program Generator

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

Project : Pengukur Asap Rokok

Version : V.1

Date : 30/05/2014

Author : Prasetyo, Dwi Budi & Vadhya

Company : Evionics

Comments:

Chip type : ATmega8

Program type : Application

AVR Core Clock frequency : 12,000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

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

#include <mega8.h> #include <math.h> #include <delay.h> #include <stdio.h>

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

#define ADC_VREF_TYPE 0x40

// Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {


(55)

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

#define MQ_PIN 1

//define which analog input channel you are going to use #define RL_VALUE 5

//define the load resistance on the board, in kilo ohms #define RO_CLEAN_AIR_FACTOR 9.83

//RO_CLEAR_AIR_FACTOR=(Sensor resistance in clean air)/RO,

//which is derived from the chart in datasheet

/**************Software Related Macros************************************/

#define CALIBARAION_SAMPLE_TIMES 600

//define how many samples you are going to take in the calibration phase

#define CALIBRATION_SAMPLE_INTERVAL 100 //define the time interal(in milisecond) between each samples in the //cablibration phase

#define READ_SAMPLE_INTERVAL 50

//define how many samples you are going to take in normal operation #define READ_SAMPLE_TIMES 5

#define GAS_LPG 0 #define GAS_CO 1 #define GAS_SMOKE 2


(56)

float LPGCurve[3] = {2.3,0.21,-0.47}; float COCurve[3] = {2.3,0.72,-0.34}; float SmokeCurve[3]={2.3,0.53,-0.44}; float Ro = 10;

float MQResistanceCalculation(int raw_adc) {

return ( ((float)RL_VALUE*(1023-raw_ad c)/raw_adc)); }

float MQCalibration(int mq_pin) {

int i;

float val=0;

for (i=0;i<CALIBARAION_SAMPLE_TIMES;i++) { //take multiple samples

val += MQResistanceCalculation(read_adc(mq_pin));

delay_ms(CALIBRATION_SAMPLE_INTERVAL);

}

val = val/CALIBARAION_SAMPLE_TIMES; //calculate the average value

val = val/RO_CLEAN_AIR_FACTOR; //divided by RO_CLEAN_AIR_FACTOR yields the Ro //according to the chart in the datasheet

return val; }

float MQRead(int mq_pin) {

int i;

float rs=0;

for (i=0;i<READ_SAMPLE_TIMES;i++) {

rs += MQResistanceCalculation(read_adc(mq_pin));

delay_ms(READ_SAMPLE_INTERVAL);

}


(57)

return rs; }

int MQGetPercentage(float rs_ro_ratio, float *pcurve) {

return (pow(10,( ((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0]))); }

int MQGetGasPercentage(float rs_ro_ratio, int gas_id) {

if ( gas_id == GAS_LPG ) {

return MQGetPercentage(rs_ro_ratio,LPGCurve);

}

else if ( gas_id == GAS_CO ) {

return MQGetPercentage(rs_ro_ratio,COCurve);

}

else if ( gas_id == GAS_SMOKE ) { return MQGetPercentage(rs_ro_ratio,SmokeCurve); } return 0; } void main(void) { char buff[16]; int LPG,CO,SMOKE; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x20; PORTD=0x00;


(58)

DDRD=0x00;

// ADC initialization

// ADC Clock frequency: 750,000 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

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

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTD Bit 0

// RD - PORTC Bit 5 // EN - PORTD Bit 1 // D4 - PORTD Bit 7 // D5 - PORTD Bit 6 // D6 - PORTD Bit 5 // D7 - PORTD Bit 4 // Characters/line: 16 lcd_init(16);

DDRD.2=1; //Set Output DDRD.3=1; //Set Output PORTD.2=0;

PORTD.3=1; //BackLight LCD

lcd_gotoxy(0,0); lcd_putsf("alat ukur"); delay_ms(1000); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Calibrating...");

Ro = MQCalibration(MQ_PIN);

//Calibrating the sensor. Please make sure the sensor is in clean air //when you perform the calibration

lcd_gotoxy(0,0);

lcd_putsf("Calibration is done..."); sprintf(buff,"Ro=%d",Ro); lcd_puts(buff);


(59)

delay_ms(500); lcd_clear();

while (1) {

LPG=MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_LPG); CO=MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_CO);

SMOKE=MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_SMOKE); lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("LPG CO SMOKE");

sprintf(buff,"%d %d %d",LPG,CO,SMOKE); lcd_gotoxy(0,1);

lcd_puts(buff); delay_ms(200); }


(60)

Dokumentasi Pengerjaan Alat


(61)


(62)


(63)

(1)

55

DDRD=0x00;

// ADC initialization

// ADC Clock frequency: 750,000 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

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

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTD Bit 0

// RD - PORTC Bit 5 // EN - PORTD Bit 1 // D4 - PORTD Bit 7 // D5 - PORTD Bit 6 // D6 - PORTD Bit 5 // D7 - PORTD Bit 4 // Characters/line: 16 lcd_init(16);

DDRD.2=1; //Set Output DDRD.3=1; //Set Output PORTD.2=0;

PORTD.3=1; //BackLight LCD

lcd_gotoxy(0,0); lcd_putsf("alat ukur"); delay_ms(1000); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Calibrating...");

Ro = MQCalibration(MQ_PIN);


(2)

56

delay_ms(500); lcd_clear(); while (1) { LPG=MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_LPG); CO=MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_CO); SMOKE=MQGetGasPercentage(MQRead(MQ_PIN)/Ro,GAS_SMOKE); lcd_clear(); lcd_gotoxy(0,0);

lcd_putsf("LPG CO SMOKE");

sprintf(buff,"%d %d %d",LPG,CO,SMOKE); lcd_gotoxy(0,1);

lcd_puts(buff); delay_ms(200); }


(3)

57

Dokumentasi Pengerjaan Alat


(4)

58


(5)

59


(6)