BAB II DASAR TEORI 2.1 SENSOR TGS 2610 2.1.1 Gambaran Umum Sensor gas LPG TGS 2610 adalah sebuah sensor gas yang dapat mendeteksi adanya konsentrasi gas LPG di sekitar sensor tersebut. Sensor gas LPG TGS 2610 akan memberikan perubahan resistansi pada saat terdeteksi adanya gas LPG di sekitar sensor, dimana semakin kuat konsentrasi gas LPG yang terdeteksi maka semakin rendah resistansi output sensor gas LPG TGS 2610 (daya konduksi sensor meningkat) dan sebaliknya resistansi menjadi semakin membesar (daya konduksi sensor berkurang) apabila tidak terdeteksi adanya gas LPG di sekitar sensor tersebut. Sensor gas LPG TGS 2610 adalah suatu jenis semikonduktor oksida logam film tebal yang dapat mendeteksi adanya kebocoran gas LPG, beroperasi dengan konsumsi arus yang rendah dan memiliki daya tahan yang lama dalam penggunaanya. Sensitifitas dari sensor gas LPG TGS 2610 sangat bagus sehingga sesuai untuk keperluan pendeteksian kebocoran gas LPG. Sensor mendeteksi kadar gas LPG secara terusmenerus dan selalu meng-update keluaran tegangan analog yang kemudian diolah oleh mikrokontroler. 2.1.2 Bentuk Fisik Sensor Gas LPG TGS 2610 Bentuk fisik sensor TGS 2610 terlihat pada gambar berikut : Gambar 2.1 Bentuk Fisik Sensor TGS 2610 5 http://digilib.mercubuana.ac.id/ 6 Elemen yang digunakan untuk sensor gas LPG TGS 2610 adalah semikonduktor dari bahan dioksida timah (SnO2) yang mempunyai resistansi yang tinggi pada udara bersih. Jika terdapat gas yang dideteksi, maka resistansi dari sensor gas TGS 2610 akan menurun tergantung pada konsentrasi gas LPG di udara sekitar sensor TGS 2610 tersebut diletakan. Sensor gas LPG TGS 2610 membutuhkan heater dan sumber tegangan DC +5 volt dalam bekerja. 2.1.1 Rangkaian Aplikasi Sensor Gas LPG TGS 2610 2.1.3 Perubahan resistansi pada sensor gas LPG TGS 2610 dapat diubah menjadi perubahan tegangan dengan menggunakan rangkaian sederhana seperti gambar berikut. Gambar 2.2 Rangkaian Aplikasi Sensor Gas LPG TGS 2610 Rangkaian di atas merupakan rangkaian aplikasi dasar pengoperasian sensor gas LPG TGS 2610. Heater dan elemen sensor gas LPG TGS 2610 diberikan sumber tegangan DC +5 volt dan ditambahkan resistor (R) sebagai kontrol level tegangan output sensor gas LPG TGS 2610. Dengan rangkaian dasar yang sederhana seperti yang ditunjukan pada gambar di atas maka perubahan resistansi yang dihasilkan oleh sensor gas LPG TGS 2610 pada proses deteksi kandungan gas LPG akan berubah menjadi perubahan tegangan yang levelnya tergantung dari konsentrasi kandungan http://digilib.mercubuana.ac.id/ 7 gas LPG yang diterima sensor gas LPG TGS 2610. Dimana semakin kuat konsentrasi gas LPG yang dideteksi oleh sensor gas LPG TGS 2610 maka tegangan output sensor semakin tinggi dan sebaliknya pada udara yang bersih dari konsentrasi gas LPG maka tegangan output sensor gas LPG TGS 2610 semakin rendah. 2.2 MIKROKONTROLER Perkembangan teknologi telah maju dengan pesat dalam perkembangan dunia elektronika, khususnya dunia mikroelektronika. Penemuan silicon menyebabkan bidang ini mampu memberikan sumbangan yang amat berharga bagi perkembangan teknologi modern. Atmel sebagai salah satu vendor yang mengembangkan dan memasarkan produk mikroelektronika telah menjadi standar bagi para desainer sistem elektronika masa kini. Dengan perkembangan terakhir , yaitu generasi AVR (Alf and Vegard’s Risc processor), para desainer sistem elektronika telah diberi suatu teknologi yang memiliki kapabilitas yang amat maju, tetapi dengan biaya ekonomis yang cukup minimal. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16 -bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing). Secara umum AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Oleh karena itu penulis mempergunakan salah satu dari AVR produk Atmel, yaitu ATMega 8535. http://digilib.mercubuana.ac.id/ 8 2.2.1 Arsitektur ATMega 8535 Gambar 2.3 Blok diagram fungsional ATMega 8535 Dari gambar diatas dapat dilihat bahwa ATMega memiliki bagian sebagai berikut : 1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D. 2. ADC 10 bit sebanyak 8 saluran. 3. Tiga buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 register. http://digilib.mercubuana.ac.id/ 9 5. Watchdog Timer dengan osilator internal. 6. SRAM sebesar 512 byte. 7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 8. Unit interupsi internal dan eksternal. 9. Port antarmuka SPIEEPROM sebesar 512 byte yang dapat diprogram saat operasi. 10. Antarmuka komparator analog 11. Port USART untuk komunikasi serial. 2.2.2 Fitur ATMega 8535 Kapabilitas detail dari ATMega 8535 adalah sebagai berikut: 1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz. 2. Kapabilitas memori flash 8 Kb, SRAM 512 byte, dan EEPROM (Electrically Eraseble Programmable Read Only Memory) 512byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel. 4. Portal komunikasi (USART) dengan kecepatan maksimal 2,5 Mbps 5. Enam pilihan mode sleep menghemat penggunaan daya listrik. 2.2.3 Konfigurasi Pin ATMega8535 Konfigurasi pin ATMega8535 bisa dilihat pada gambat 2.14. dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMega8535 sebagai berikut : 1. VCC merupakan pin yang berfungsi sebagai pin masukan daya. 2. GND merupakan pin ground. 3. Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC. 4. Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer /Counter, komparator analog, dan SPI. 5. Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Oscilator. 6. Port D (PD)..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, http://digilib.mercubuana.ac.id/ 10 yaitu komparator analog, interupsi eksternal dan komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal. 9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREFF merupakan pin masukan tegangan referensi ADC. Gambar 2.4 Pin ATMega 8535 2.2.4 Peta Memori AVR ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah.Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal. Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan control terhadap berbagai peripheral mikrokontroler, seperti control register, timer/counter, fungsi-fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada table 1.1. alamat memori berikutnya dapat digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F. konfigurasi memori data ditunjukkan pada gambar di bawah ini. http://digilib.mercubuana.ac.id/ 11 Register Umum Alamat R0 S0000 R1 $0001 R30 Register I/O $00 $0020 $01 $0021 $3E $RAM Internal $0060 $0061 $025E $025F (RAMEND) Gambar 2.5 Konfigurasi memori data AVR ATMega 8535 Memori program yang terletak dalam Flash PEROM tersusun dalam word atau 2 byte karena setiap instruksi memiliki lebar 16-bit atau 32-bit. AVR ATMega8535 memiliki 4KByteX16-bit Flash PEROM dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12-bit Program Counter (PC) sehingga mampu mengalami isi Flash. Gambar 2.6 Memori program AVR ATMega 8535 http://digilib.mercubuana.ac.id/ 12 Selain itu, ATMega8535 memiliki memiliki data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF. Tabel 2.1 Pengalamatan register I/O http://digilib.mercubuana.ac.id/ 13 2.2.5 Status Register (SREG) Status Register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Gambar 2.7 Status register ATMega 8535 a. Bit 7-I: Global Interrupt Enable Bit harus diset untuk meng-enable interupsi. Setelah itu, anda dapat mengaktifkan interupsi mana yang akan anda gunakan dengan cara mengenable-kan bit control register yang bersangkutan secara individu. Bit akan diclear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh instruksi RET1. b. Bit 6-T:Bit Copy Storage Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BLD. c. Bit 5-H:Half Carry Flag d. Bit 4-S:Sign Bit Bit –S merupakan hasil operasi EOR antara flag-N (negative) dan flag V (komplemen dua overflow) e. Bit 3-V:Two’s Complement Overflow Flag Bit berguna untuk mendukung operasi aritmetika f. Bit 2-N:Negative Flag Apabila suatu operasi mengahasilkan bilangan negative, maka flag-N akan diset. g. Bit 1-Z:Zero Flag Bit akan diset bila hasil operasi yang diperoleh adalah nol. http://digilib.mercubuana.ac.id/ 14 h. Bit 0-C:Carry Flag Apabila suatu operasi menghasilkan carry,bit akan diset. 2.2.6 Analog To Digital Converter (ADC) ATMega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATMega8535 dapat dikonfigurasi, baik sebagai mode single ended input maupun differential input. Selain itu, ADC ATMega8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang sangat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri. 2.2.7 Inisialisasi ADC Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, format input data, dan mode pembacaan. Register yang perlu diset nilainya adalah ADMUX (ADC Multiplexer Selection Register), ADCSRA (ADC Control and Status Register A), dan SFIOR (Special Function IO Register). ADMUX merupakan register 8 bit yang berfungsi menentukan tegangan referensi ADC, format data output, dan saluran ADC yang digunakan. Konfigurasinya seperti pada gambar di bawah ini. Gambar 2.8 Register ADMUX Bit penyusunnya dapat dijelaskan sebagai berikut: a. REFS[1..0] merupakan bit pengatur tegangan referensi ADC ATMega8535. Memiliki nilai awal 00 sehingga referensi tegangan berasal dari pin AREF. Detail nilai yang lain dapat dilihat pada tabel dibawah ini. http://digilib.mercubuana.ac.id/ 15 Tabel 2.2 Pemilihan mode tegangan referensi ADC b. ADLAR merupakan bit pemilih mode data dan keluaran ADC. Bernilai awal 0 sehingga 2 bit tertinggi data hasil konversinya berada si register ADCH dan 8 bit sisanya berada di register ADCL, seperti gambar dibawah ini. Jika bernilai 1. Gambar 2.9 Format data ADC dengan ADLAR = 0 Gambar 2.10 Format data ADC dengan ADLAR = 1 c. MUX[4..0] merupakan bit pemilih saluran pembacaan ADC. Bernilai awal 00000. Untuk mode single ended input, MUX[4..0] bernilai dari 00000-00111. Berikut table konfigurasi bit MUX. http://digilib.mercubuana.ac.id/ 16 Tabel 2.3 Tabel pemilihan bit saluran pembacaan ADC ADCSRA merupakan register 8 bit yang berfungsi melakukan manajemen sinyal kontrol dan status dari ADC. Memiliki susunan seperti gambar dibawah ini. Gambar 2.11 Register ADCSRA Bit penyusunannya dapat dijelaskan sebagai berikut: a. ADEN merupakan bit pengatur aktivasi ADC. Bernilai awal 0. Jika berniali 1 maka ADC aktif. b. ADCS merupakan bit penanda mulainya konversi ADC. Bernilai awal 0 selama konversi ADC akan bernilai 1, sedangkan jika konversi telah selesai, akan bernilai 0. c. ADATE merupakan bit pengatur aktivasi picu otomatis operasi ADC bernilai awal 0. Jikabernilai 1, operasi konversi ADC akan dimulai pada http://digilib.mercubuana.ac.id/ 17 saat transisi positif dari sinyal picu yang dipilih. Pemilihan sinyal picu menggunakan bit ADTS pada register SFIOR. d. ADIF merupakan bit penanda akhir suatu konversi ADC. Bernilai awal 0. Jika bernilai 1, maka konversi ADC pada suatu saluran telah selesai dan data siap diakses. e. ADIE merupakan bit pengatur aktivasi interupsi yang berhubungan dengan nilai akhir konversi ADC. Bernilai awal 0. Jika bernilai 1 dan jika sebuah konversi ADC telah selesai, sebuah interupsi akan dieksekusi. f. ADPS[2..0] merupakan bit pengatur clock ADC. Bernilai awal 00. Detailnya dapat dilihat pada table di bawah ini. Tabel 2.4 Konfigurasi ADPS[2..0] SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC apakah dari picu eksternal atau dari picu internal. Susunanya sebagai berikut: Gambar 2.12 Register SFIOR ADITS[2..0] merupakan bit pengatur picu eksternal operasi ADC. Hanya berfungsi jika bit ADATE pada bit ADCSRA bernilai 1. Bernilai awal 000 sehingga ADC bekerja pada mode free running dan tidak ada interupsi yang akan dihasilkan. Detail nilai ADTS[2..0] dapat dilihat pada tabel berikut : http://digilib.mercubuana.ac.id/ 18 Tabel 2.5 Pemilihan sumber picu (trigger source) ADC Untuk operasi ADC, bit ACME, PUD, PSR2 dan PSR10 tidak diaktifkan. Pembacaan ADC Dalam proses pembacaan hasil konversi ADC, dilakukan pengecekan terhadap bit ADIF (ADC Interrupt Flag) pada register ADCSRA, ADIF akan bernilai satu jika konversi sebuah saluran ADC telah selesai dilakukan dan data hasil konversi siap untuk diambil, dan demikian sebaliknya. Data disimpan dalam dua buah register, yaitu ADCH dan ADCL. Masukan analog ADC tegangan harus lebih besar dari 0 dan lebih kecil daripada tegangan referensi yang dalam contoh ini tegangan referensi sama dengan tegangan VCC 5 volt. Masukan ADC dihubungkan dengan konfigurasi potensio yang dihubungkan dengan VCC dan GND untuk memperoleh rentang masukan analog ADC dari 0 volt sampai 5 volt. Untuk hasil kalkulasi, ADC dapat diperoleh dengan rumus berikut: Hasil konversi ADC= round(vin/vref)*255 Jika dipakai 8 bit ADC, maka rentan output yang mungkin dihasilkan adalah dari 0-255 (8 bit = 28 = 256), jika masukan analog ADC adalah 0 V maka keluaran hasil konversi adalah 0. Jika masukan analog sama dengan tegangan referensi, maka hasil keluaran konversi adalah 255. Dan jika masukan analog ADC sama dengan tegangan referensi/2 maka hasil konversi adalah 128. Apabila anda menggunakan 10 bit ADC, maka rentang output yang dihasilkan adalah dari 0 sampai 1023. ADC adalah pengubahan dari sinyal http://digilib.mercubuana.ac.id/ 19 analog ke nilai diskrit sehingga terdapat error pada ADC yang disebut sebagai error kuantisasi. 2.3 LCD (LIQUID CRYSTAL DISPLAY) LCD yang digunakan adalah LCD 2x16, di mana LCD ini mempuyai 2 baris dan 16 kolom. Di mana pada sistem minimum sudah terdapat soket khusus untuk LCD. Dengan adanya soket ini, LCD dapat terhubung langsung ke mikrokontroler tanpa rangkaian tambahan apapun dan untuk mengatur kontras dari LCD tersebut dapat menggunakan trimpot 100K ohm yang ada pada modul sistem minimum. Konfigurasi soket LCD pada modul telah berurutan dari pin 1 hingga 16, sehingga pin LCD dapat dihubungkan langsung sesuai dengan nomor pin yang ada pada soket LCD. Untuk keperluan konfigurasi pin LCD pada program, maka konfigurasi pin LCD adalah sebagai berikut : DB 4 : Port C.2 DB 5 : Port C.3 DB 6 : Port C.4 DB 7 : Port C.5 RS : Port C.6 E : Port C.7 http://digilib.mercubuana.ac.id/ 20 U2 1 2 3 4 5 6 7 8 14 15 16 17 18 19 20 21 9 12 13 PB0 (XCK/T0) PB1 (T1) PB2 (AIN0/INT2) PB3 (AIN1/OC0) PB4 (SS) PB5 (MOSI) PB6 (MISO) PB7 (SCK) PA0 (ADC0) PA1 (ADC1) PA2 (ADC2) PA3 (ADC3) PA4 (ADC4) PA5 (ADC5) PA6 (ADC6) PA7 (ADC7) PD0 (RXD) PD1 (TXD) PD2 (INT0) PD3 (INT1) PD4 (OC1B) PD5 (OC1A) PD6 (ICP) PD7 (OC2) PC0 (SCL) PC1 (SDA) PC2 PC3 PC4 PC5 PC6 (TOSC1) PC7 (TOSC2) RESET VCC AVCC AREF XTAL2 XTAL1 GND GND 40 39 38 37 36 35 34 33 22 23 24 25 26 27 28 29 10 30 32 +5 R4 100K JP5 1 3 5 7 9 11 13 15 PC2 PC4 +5 2 4 6 8 10 12 14 16 PC6 PC7 PC3 PC5 Header 8X2 Soket LCD 31 11 ATmega8535-16PI Gambar 2.13 Interface LCD http://digilib.mercubuana.ac.id/