Perancangan Alat Ukur Kadar Oksigen (O2) Menggunakan Gs Oxygen KE-25 Sensor Berbasis Mikrokontroller ATMega16 dengan Tampilan PC

(1)

LAMPIRAN


(2)

LISTING PROGRAM KESELURAHAN RANGKAIN

#include <mega16.h> #include <delay.h> #include <alcd.h> 5 0 % RV1 1k PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3 PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 RESET 9 XTAL2 12 XTAL1 13 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP1 20 PD7/OC2 21 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PA7/ADC7 33 PA6/ADC6 34 PA5/ADC5 35 PA4/ADC4 36 PA3/ADC3 37 PA2/ADC2 38 PA1/ADC1 39 PA0/ADC0 40 AREF 32 AVCC 30 U1 ATMEGA16 D 7 1 4 D 6 1 3 D 5 1 2 D 4 1 1 D 3 1 0 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LCD1 LM016L VCC GND VCC D+ D-GND J1 AU-Y1005-R VCC GND C1 100nF C2 100uF GND 1 2 J2 KE-25 GND VCC R2 10k VCC VI

1 VO 3

G N D 2 U2 7805 9 V gnd 5 Volt C4 100nF C5 1000uF


(3)

// Declare your global variables here unsigned char buflcd[16];

unsigned int nilai_ADC,nilai_ADC2,nilai,nilai1,x; float nilai_total, nilai_hasil,

nilai_rata,nilai_total2, nilai_hasil2, nilai_rata2; // Standard Input/Output functions

#include <stdio.h>

#define ADC_samp 25 // Voltage Reference: AVCC pin

#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))

// Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | ADC_VREF_TYPE;

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// Start the AD conversion ADCSRA|=(1<<ADSC);

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

ADCSRA|=(1<<ADIF); return ADCW;

}

void main(void) {

// Declare your local variables here


(4)

// Port B initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port C initialization

// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);

// State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// Port D initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped


(5)

TCNT0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off

TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);

TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);

TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF

// OC2 output: Disconnected ASSR=0<<AS2;


(6)

TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);

TCNT2=0x00; OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<TOIE0);

// External Interrupt(s) initialization // INT0: Off

// INT1: Off

MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600

UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);

UBRRH=0x00; UBRRL=0x33;

// Analog Comparator initialization // Analog Comparator: Off

// The Analog Comparator's positive input is // connected to the AIN0 pin


(7)

// The Analog Comparator's negative input is // connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

// ADC initialization

// ADC Clock frequency: 230,400 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE;

ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);

SFIOR=(0<<ACME);

// SPI initialization // SPI disabled

SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

// TWI initialization // TWI disabled

TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

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

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTB Bit 0 // RD - PORTD Bit 7 // EN - PORTD Bit 6 // D4 - PORTD Bit 5 // D5 - PORTD Bit 4 // D6 - PORTD Bit 3


(8)

// D7 - PORTD Bit 2 // Characters/line: 16 lcd_init(16);

lcd_gotoxy(0,0);

lcd_putsf("lily_cho"); lcd_gotoxy(0,1);

lcd_putsf("kadar oksigen"); delay_ms(1000);

while (1) {

nilai_total = 0;nilai_total2 = 0;

nilai_hasil = 0;nilai_hasil2 = 0; nilai=0;

for (x=0; x<ADC_samp; x++) {

nilai_ADC = read_adc(4);

nilai_hasil=nilai_hasil + nilai_ADC; delay_ms(10);

}

nilai_rata = (float)nilai_hasil / ADC_samp; // nilai rata-rata

nilai_total =((nilai_rata * 4.8825125)/60)*100; sprintf(buflcd,"kadar:%.2f %%",nilai_total); lcd_clear();lcd_gotoxy(0,0);lcd_puts(buflcd);

nilai=nilai_total*100; printf("%d",nilai);

delay_ms(10);

printf(“%d”,volt); //mengirim data, type data volt

printf(“A”); //mengirim karakter A


(9)

printf(“0C”); //mengirim data 0 karakter C

printf(“0D”); //mengirim data 0 karakter D

} }


(10)

PERANCANGAN INTERFACE GUI

Untuk rancangan antar muka dari sistem yang akan dibangun menggunakan bahasa pemograman Delphi 7. Antar muka hanya menggunakan 1 halaman utama untuk menampilkan data dan grafik.


(11)

DAFTAR PUSTAKA

Andrianto, Heri. 1994. Pemrograman Mikrokontroller AVR Atmega16 Menggunakan Bahasa C (Codevision AVR). Revisi Kedua.

Bandung: Informatika.

Data sheet Mikrokontroler ATMega16 Data sheet IC 7805

Data sheet Gs Sensor Oxygen KE-25 Susanto. 1994. Rangkaian Elektronika.

Depok : Seri Catatan Kuliah

Sitompul, Opim S. 1995. Prinsip - Prinsip Dasar Pemrograman C. Jakarta: Ghalia Indonesia.

Situmorang, Marhaposan. 2011. Dasar-Dasar Mikrokontroller MCS-51. Medan: Usu Press.

Tooley, Mike. 2002. Rangakian Elektronik Prisip dan Aplikasi. Edisi kedua. Jakarta: Erlangga. Hal: 180-194

http://www.organisasi.org/1970/01/komposisi-kandungan-udara-yang-dihirup-manusia-saat-bernapas.html


(12)

BAB 3

PERANCANGAN SISTEM 4.1 Diagram Blok

Diagram merupakan pernyataan hubungan yang berurutan dari suatu atau lebih komponen yang memiliki kesatuan kerja tersendiri, dan setiap blok komponen mempengaruhi komponen yang lainnya. Diagram blok merupakan salah satu cara yang paling sederhana untuk menjelaskan cara kerja dari suatu sistem .Dengan diagram blok kita dapat menganalisa cara kerja rangkaian dan merancang hardware yang akan dibuat secara umum. Dibawah ini merupakan gambar diagram blok dari rangkaian.

Gambar 3.1 Diagaram Blok Rangkaian

Diagram blok di atas merupakan rangkaian elektronik yang berfungsi untuk mengendalikan Gs oxygen sesuai dengan kadar oksigen yang telah di deteksi. Gambar 3.1 di atas merupakan rangkaian dasar yang yang terdiri dari beberapa bagian utama, antara lain: Pengendali mikro, sensor oksigen, LCD dan PC. Oksigen yang masuk ke dalam Gs sensor direduksi pada elektroda yang berada di dalam sensor Gs oksigen dengan reaksi eletrokimia. Anoda dan katoda yang terhubung di dalam sensor mengubah arus menjadi sebuah tegangan. Besar arus yang mengaliri 2 resistor dipengaruhi oleh banyak oksigen yang tertangkap oleh membran elektroda. Dan tegangan resistansi itu digunakan sebagai keluaran sensor oksigen yang masuk secara ADC ke mikro yang kemudian dikelola langsung sesuai instruksi oleh


(13)

mikrokontroller yang telah menyediakan langsung pengkonversian analog ke digital (ADC) internal untuk menyederhanakan penyambungan sensor sebagai input kemudian data dikirim ke layar LCD dan USB-to-TTL sesuai instruksi program dimana USB-to-TTL yang berfungsi sebagai protokol komunikasi antara device yang terhubung agar dapat saling mengirim dan menerima data dengan benar. Kemudian dikirim data tersebut ke PC sebagai tampilan grafik yang bergerak setiap detiknya oksogen yang bertambah atau berkurang nya karena terkontaminasi dengan gas-gas yang lain, namun Gs oksigen hanya mendeteksi khusus pada oksigen dan tidak dengan gas yang lain.

Fungsi Tiap Blok

1. Blok Sensor Oksigen KE-25

Sebagai Sensor pengukur kadar oksigen 2. Blok LCD

Sebagai Penampil hasil pengukuran dari mikrokontroller 3. Blok mikrokontroller

Mengolah data dari sensor dan mengirim hasilnya ke LCD 4. Blok USB-TO-TTL

Mentransmisikan data serial dari mikrokontroller ke PC 5. Blok Interface PC

Sebagai penampil data hasil pengolahan mikrokontroller

4.2 Perancangan Pengendali Sistem

Rancangan rangkaian terdiri dari beberapa komponen elektronik misalnya : mikrokontroler, sensor oksigen, PC, display LCD, dll. Komponen – komponen tersebut memberikan fungsi yang berbeda – beda. Dalam rancangan ini, prinsip kerja masing - masing komponen dapat dijabarkan sebagai berikut :


(14)

3.2.1 Rangkaian Power Supply

Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 16 x 2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler dapat memberi data langsung ke LCD, pada LCD Hitachi - M1632 sudah terdapat driver untuk mengubah data ASCII output mikrokontroler menjadi tampilan karakter. Pemasangan potensio sebesar 5 KΩ untuk mengatur kontras karakter yang tampil. Berikut adalah gambar rangkaian minimum pada power supply.

Gambar 3.2.Rangkaian Skematik Power Supply 5 Volt

Power supply keluaran 5 Volt berfungsi untuk mencatu keseluruhan sistem mikrokontroller, PC, dan LCD. Power supply keluaran 5 Volt ini dibentuk oleh IC regulator 7805 kapasitor 100nF/25V dan 1000uF/5V. Dari gambar 3.4, rangkaian ini terhubung ke PB.0... PB.7, yang merupakan pin I/O dua arah dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator analog dan SPI mempunyai fungsi khusus sebagai pengiriman data secara serial. Sehingga nilai yang akan tampil pada LCD display akan dapat dikendalikan oleh Mikrokontroller ATMega16.

VI 1

VO 3

G

N

D

2

U2

7805

9 V

gnd

5 Volt

C4

100nF

C5

1000uF


(15)

3.2.2 Sensor

Sensor merupakan bagian input dari sistem. Fungsi sensor adalah merubah besaran fisik suatu kondisi atau keadaan menjadi besaran listrik. Dalam rancangan miniatur ini sensor yang digunakan adalah sensor Gs Oxygen.

Gs Oxygen

Sensor yang digunakan adalah sensor gas oksigen jenis KE-25 buatan Figaro Sensor. Sensor ini memiliki 2 tipe, yaitu KE-25 dan KE-50. Elektroda dibagi menjadi anoda berupa Pb (timbal) dan katoda yang terbuat dari emas (Ag) serta elektrolit berupa asam lemah atau Alkaline. Elektroda emas merupakan sebuah padatan yang berupa selaput yang tidak berongga (non-porous membrane). Molekul oksigen masuk ke sel elektrokimia melalui selaput oksigen. Oksigen yang masuk ke dalam sensor, direduksi pada elektroda emas dengan reaksi elektrokimia. Anoda dan katoda dihubungkan dengan sebuah termistor dan resistor. Resistansi dua resistor ini mengubah arus yang terjadi akibat reaksi elektrokimia menjadi tegangan. Besar arus yang mengalir pada dua resistor dipengaruhi oleh banyak oksigen yang tertangkap oleh membran elektroda. Tegangan resistansi ini digunakan sebagai keluaran sensor oksigen.


(16)

Anoda dan katoda dihubungkan dengan sebuah termistor dan resistor. Resistansi duaresistor ini mengubah arus yang terjadi akibat reaksi elektrokimia menjadi tegangan. Besararus yang mengalir pada dua resistor dipengaruhi oleh banyaknya oksigen yang tertangkap oleh membran elektroda. Tegangan ini digunakan sebagai keluaran sensor oksigen. Mekanisme skematik rangkaian dalam Gs Oxygen dapat dilihat dibawah ini;

Oksigen elektron/arus tegangan Gambar 3.4. Mekanisme Skematik Rangkaian Dalam Gs Oxygen KE25

Perancangan rangkaian ini berfungsi sebagai pendeteksi kadar oksigen di udara. Sensor oksigen KE-25 tidak memerlukan catu daya untuk dapat mengukur kadar oksigen, keluaran output dari sensor KE-25 adalah tegangan analog sehingga dapat langsung dihubungkan ke ADC Mikrkontroller seperti rangkaiain dibawah ini.

Gamabar 3.5. Sistem kerja pada rangkaian dalam sensor Gs Oxygen KE-25 3.2.3 Mikrokontroler

Mikrokontroler yang digunakan dalam rancangan ini adalah tipe ATMega16, yaitu mikrokontroler tipe AVR. Mikrokontroler berfunggsi

Reaksi elektroda

rangkaian resistor


(17)

mengendalikan tampilan PC dan LCD berdasarkan input yang diterima dari sensor oksigen. Dari input sensor tersebut mikrokontroler dapat mengetahui apakah kondisi oksigen dalam keadaan sedikit, atau banyak. Sehingga mikrokontroler dapat menrubah tampilan kadar oksigen yang rendah atau tinggi. Jika kadar oksigen sedikit maka mikrokontroller akan menampilkan kadar oksigen yang rendah sesuai tangkapan oksigen dari membran sensor. Dan jika oksigen banyak maka mikrokontroller akan menampilkan kadar oksigen yang tinggi di tampilan display LCD dalam bentuk persen dan di PC dalam bentuk grafik., mikrokontroler diprogram pada PORT A yaitu masukan analog. Terdapat 8 input dari sensor kepadatan sehingga memakai 8 bit dari PORT tersebut. Output yaitu tampilan kadar oksigen dalam bentuk persen di LCD dan dalam bentuk grafik di PC. yang diprogram pada PORT B dan PORT D. Sedangkan output display diprogram pada PORT C. Konfigurasi pin maupun nomor pin dapat dilihat pada gambar berikut :

PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3 PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 RESET 9 XTAL2 12 XTAL1 13 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP1 20 PD7/OC2 21 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PA7/ADC7 33 PA6/ADC6 34 PA5/ADC5 35 PA4/ADC4 36 PA3/ADC3 37 PA2/ADC2 38 PA1/ADC1 39 PA0/ADC0 40 AREF 32 AVCC 30 U1 ATMEGA16 X1 CRYSTAL R1 100k C1 100n C2 100n


(18)

Gambar 3.6. Rangkaian Skematik Sistem Minimum ATMega16

Dari gambar 3.6. Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Komponen utama dari rangkaian ini adalah IC Mikrokontroler ATMega16. Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.

Untuk men-download file heksadesimal kemikrokontroler, Mosi, Miso, Sck, Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke USB via programmer. Kaki Mosi, Miso, Sck, Reset, Vcc dan Gnd pada mikrokontroler terletak pada kaki 17, 18, 19, 20 dan 1. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer, maka pemrograman mikrokontroler tidak dapat dilakukan karena mikrokontroler tidak akan dapat merespon.

3.2.4 USB-TO-TTL

USB-TO-TTL digunakan sebagai pengganti RS232 alasan digunakan USB-TO-TTL agar lebih praktis dan portable. Karena kegunaan USB-TO-TTL sama dengan RS232, RS232 sebagai protokol PC - Mikro dengan mengkonversi tegangan dengan nilai H (-3-12V) dan L ((+3) - (+12)) dan menggunakan DB9 sebagai konektor antara RS232 ke PC. USB ialah port yang sangat diandalkan saat ini dengan bentuknya yang kecil dan kecepatan datanya yang tinggi. Anda dapat menghubungkan hingga 127 produk usb dalam 1 komputer. USB versi 1.1 mendukung 2 kecepatan yaitu mode kecepatan penuh 12Mbits/s dan kecepatan rendah 1.5 Mbits/s. USB 2.0 mempunyai kecepatan 480Mbits/s yang dikenal sebagai mode kecepatan tinggi. Saat ini transfer data menggunakan port USB sudah semakin marak, port USB menjadi pilihan utama karena ukuran yang ringkas dan kecepatan transfer data yang cukup besar. Sebagai perbandingan, Bus PCI saat ini mendukung transfer data hingga 132 MB/s, dimana AGP (pada 66MHz) mendukung hingga 533 MB/s. AGP dapat melakukan ini karena kemampuannya untuk mentransfer data pada ujung naik dan turun detak 66MHz. Suatu piranti USB dapat dikatakan sebagai sebuah alat transceiver ( pengirim sekaligus penerima ) Baik host maupun USB itu sendiri. Sebuah istilah baru di


(19)

perkenalkan, yakni USB function yang maksudnya adalah peralatan USB yang memilki kemampuan khusus. Seperti printer, scanner, modem, dan lain-lainnya.

Saat ini keberadaan port serial RS-232 pada komputer semakin berkurang jumlahnya, jika dahulu terdapat minimal 2 buah port serial RS-232, maka sekarang jumlahnya sudah berkurang menjadi 1 buah, bahkan pada jenis komputer tertentu sudah tidak menyediakan port serial RS-232, misalnya pada komputer jenis mobile. Karena memang dilihat dari sudut teknologi, bagi beberapa pihak komunikasi data menggunakan port serial RS-232 sudah dianggap tertinggal. Hal ini wajar karena teknologi terus berkembang, dan sudah menjadi hal yang alami jika suatu teknologi baru yang lebih baik telah ditemukan maka secara otomatis teknologi lama perlahan-lahan mulai ditinggalkan. Walaupun begitu bukan berarti port serial RS-232 sudah tidak digunakan lagi, karena port serial RS-232 punya kelebihan yaitu kemudahan dalam penggunaannya, tidak memerlukan teknik pemrograman yang terlalu rumit, mudah untuk dipelajari dan karena sudah umum digunakan maka tidaklah sulit untuk mendapatkan periperal untuk merancang bangun suatu device yang menggunakan port serial RS-232. Karena itu port serial RS-232 banyak digunakan sebagai dasar untuk mempelajari teknik-teknik antar muka antara suatu device dan PC, misalnya antar muka mikrokontroler dengan PC. Dalam mempelajari teknik antar muka menggunakan komunikasi data melalui port USB bagi pemula tidaklah mudah. Hal ini dapat diatasi dengan menggunakan suatu dongle konverter port USB menjadi port serial RS-232. Dengan menggunakan konverter ini maka sebuah port USB PC seolah-olah menjadi sebuah port serial RS-232 seperti pada umumnya, walaupun sesungguhnya data ditransfer melalui sebuah port USB.

USB adalah salah satu standart interkoneksi antar komputer dengan peralatan eksternal yang mampu mendukung kecepatan diatas 1Mbps. Dibandingkan dengan serial yang hanya 20Kbps.


(20)

USB memiliki beberapa kelebihan diantaranya; 1. Penggunaanya mudah

Cukup dengan menancapkan peralatan USB ke konektor USB. Maka komputer akan langsung mendeteksi adanya peralatan tersebut tanpa perlu merestart komputer tersebut.

2. Mendukung 3 tipe kecepatan 3. Adanya powerdown (suspend)

4. USB men-supply daya ke peralatan USB dengan arus sebesar 500mA. 5. USB bersifat Multiplatfrom

3.3 Flowchart (Diagram Alir Program)

Gambar dibawah ini adalah gambar diagram blok pada rancangan alat yang dibuat;


(21)

Mulai

Selesai Tampilan di

LCD Tampilan di PC

Inisialisasi Sistem

Pembacaan Sensor Gs Oksigen KE-25

-Pembacan Nilai ADC Mikrokontroller

Gambar 3.7. Flowchart

Dari diagram blok diatas dapat dijelaskan prinsip kerja rangkain secara keseluruhan yaitu setelah sistem diaktifkan pengendali akan direset dan pengisian nilai awal serta inisialisasi dilakukan oleh kontroller ATMega 16, pada awalnya Gs oksigen bekerja secara normal. Pengendali akan mulai membaca hasil tegangan dari sensor yang merubah oksigen menjadi reaksi elektron kemudian


(22)

menjadi arus/elektron dan rangkaian resistan mengubah menjadi tegangan (V). Sensor akan memberikan output sesuai dengan kondisi oksigen yaitu jika terdapat oksigen di sensor, sensor akan memberikan dengan hasil keluaran tegangan dikirim ke mikrokontroller dan diperintah untuk menampilkan hasil kadar oksigen ke LCD dan PC, maka akan tertampil di LCD nilai kadar oksigen yang sedang di deteksi oleh sensor dan sekaligus menampilkan dilayar PC dengan tampilan grafik.

3.4 Perancangan Algoritma Program

Perancangan software adalah proses perancangan untuk pembuatan program yang nantinya akan dijalankan oleh mikrokontroler. Sebuah mikrokontroler tidak akan bekerja sebelum diberikan program.

3.5 Perancangan Interface GUI

Untuk rancangan antar muka dari sistem yang akan dibangun menggunakan bahasa pemograman Delphi 7. Antar muka hanya menggunakan 1 halaman utama untuk menampilkan data dan grafik. Gamabr dibawah ini adalah gambar yang menunjukan tampilan dari data yang diolah oleh mikro ke LCD dan PC dan disajikan dengan tampilan grafik dan waktu tang menjadi data bus.


(23)

Gambar 3.8. Tampilan awal GUI Delphi

Kemudian gambar dibawah ini adalah gambaran rangkaian keseluruhan dari alat yang telah dibuat

Gambar 3.9 Gambar Rangkaian Keseluruhan

5 0 % RV1 1k PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3 PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 RESET 9 XTAL2 12 XTAL1 13 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP1 20 PD7/OC2 21 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PA7/ADC7 33 PA6/ADC6 34 PA5/ADC5 35 PA4/ADC4 36 PA3/ADC3 37 PA2/ADC2 38 PA1/ADC1 39 PA0/ADC0 40 AREF 32 AVCC 30 U1 ATMEGA16 D 7 1 4 D 6 1 3 D 5 1 2 D 4 1 1 D 3 1 0 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LCD1 LM016L VCC GND VCC D+ D-GND J1 AU-Y1005-R VCC GND C1 100nF C2 100uF GND 1 2 J2 KE-25 GND VCC R2 10k VCC VI 1 VO 3 G N D 2 U2 7805 9 V gnd 5 Volt C4 100nF C5 1000uF


(24)

BAB 4

PENGUJIAN ALAT DAN ANALISA 4.1. Pengambilan Data

Berikut ini merupakan beberapa data penting yang perlu diambil : 4.1.1 Pengujian Rangkaian Mikrokontroler ATMega16

Pengujian pada rangkaian mikrokontroler ATMega16 ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian power supply sebagai sumber tegangan. Kaki 10 dihubungkan dengan sumber tegangan 5 volt, sedangkan kaki 11 dihubungkan dengan ground. Kemudian tegangan pada kaki 10 diukur dengan menggunakan Voltmeter. Dari hasil pengujian didapatkan tegangan pada kaki 10 sebesar 4,9 volt. Langkah selanjutnya adalah memberikan program sederhana pada mikrokontroler ATMega 16, program yang diberikan adalah sebagai berikut:

#include <mega16.h> #include <delay.h> #include <stdio.h> while (1)

{

// Place your code here PORTC=0x00;

Delay_ms(1000); PORTC=0xFF; Delay_ms(1000);

}

4.1.2. Pengujian dan Analisa Sensor Oksigen KE-25

Sensor KE-25 tidak memerlukan catu tegangan untuk operasinya. Keluaran dari KE-25 untuk konsentrasi oksigen 100% adalah antara 50 sampai de-ngan 60 mV, sedangkan jangkauan tegangan untuk mikrokontroler adalah dalam orde volt, yaitu 5 volt dengan V sebagai tegangan dalam volt dan konsentrasi dalam persen (%). Karakteristik ini akan menjadi data proses untuk ADC internal pada mikrokontroler ATMega16. Pengujian dilakukan dengan memberikan sensor oksigen gas oksigen murni didalam sebuah wadah tertutup pada selang beberapa waktu.


(25)

Dari data diatas dapat dilihat bahwa respon sensor oksigen terhadap kadar oksigen diskitar memiliki respon yang baik, semakin banyak oksigen yang diberikan didalam wadah, maka pembacaan sensor oksigen akan semakin tinggi.

Tabel 4.1. Data pengujian respon sensor Oksigen KE-25 di Ruangan Gas Murni

(semprotan)

Ruangan (%)

Hasil Pembacaan Lutron Digital DO Meter DO -5510 (%)

Ralat (%)

1 26,84 25,03 7,23

2 35,41 34,04 4,02

3 39,98 38,10 4,93

4 45,10 45,01 0,19

5 48,83 47,02 3,85

Pada pengujian sensor Oksigen di udara bebas maka dipilih beberapa lokasi terbuka sebagai sample pengujian dan pada pagi, siang dan sore hari, adapun data pada tabel berikut :

Tabel 4.2. Data pengujian sensor Oksigen KE-25 di beberapa lokasi Lokasi Kadar oksigen yang terukur (%)

pagi siang Sore Malam

Taman USU 20,14 19,10 19,50 20,05

Daerah Pajak Pagi Psr V

Padang Bulan 19,22 18,33 19,05

19,05 Istana

Maimun 19,11 19,01 19,09 19,10

Dari data diatas didapat kesimpulan bahwa pada beberapa lokasi tersbut tidak terlalu signifikan perbedaan kadar oksigen, hal ini dapat disebabkan karena lokasi terbuka sehingga pertukaran udara dapat terus berlangsung sehigga kadar oksigen tidak banyak berkurang.


(26)

4.2. Pengujian dan Analisa Interface GUI

Hasil pengukuran kadar oksigen dapat dibaca melalui LCD 16x2 karakter Sensor KE-25 yang dihubungkan dengan mikrokontroler dan hasil pembacaan pada LCD merupakan alat ukur kadar oksigen secara digital, di mana presentase kadar oksigen dapat langsung dibaca. Namun demikian, untuk keperluan penyimpanan data hasil pengukuran, pemantauan pengukuran secara terus-menerus dan realtime tidak dapat dipenuhi sekedar oleh alat ukur kadar oksigen digital, untuk keperluan ini maka sen-sor KE-25 harus diantarmuka dengan komputer pribadi atau laptop. tampilan akuisisi data secara real time pada layar laptop ditunjukkan pada gambar.

Gambar 4.1. Tampilan Interface Delphi Pengukuran kadar oksigen

4.3. Pengujian Rangkaian Interfacing LCD 2x16

LCD dot matriks 2 x 16 karekater dapat dihubungkan langsung dengan mikrokontroler ATMega16, disini fungsi LCD adalah sebagai tampilah hasil


(27)

pengukuran dan diberi beberapa keterangan. Pada penelitian ini LCD dihubungkan kemikrokontroler melalui PortB.0 ~ PortB.7 yang berfungsi bus data. Adapaun data yang dikirimkan oleh mikrokontroler merupakan kode ASCIIdata dalam bentuk bilangan biner, dimana data tersebut dapat diterjemahkan oleh LCD ke bentuk karakter.

Pengiriman data yang dari mikrokontroler diatur oleh pin EN, RS dan RW, Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberi tahu LCD bahwa ada data yang sedang dikirimkan. Untuk mengirim data ke LCD, maka melalui program EN harus dibuat berlogika “low” dan set (high) pada dua jalur kontrol yang lain (RS dan RW). Jalur RW adalah jalur kontrol Read/write. Ketika RW berlogika low (0), maka informasi pada bus akan dituliskan pada LCD. Ketika RW berlogika high (1), maka program melakukan pembacaan memori dari LCD. Dalam penelitian ini umumnya pin RW selalu diberikan logika low(0)

Dengan mengikuti keterangan diatas kita dapat membuat program untuk menampilkan karakter pada LCD. Program yang diisikan ke mikrokontroler untuk menampilkan karakter pada LCD adalah sebagai berikut :

#include <mega16.h> #include <stdio.h> #include <delay.h> #include <alcd.h> void main(void) {

lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("lily");}

Program diatas akan menampilkan kata “lily” di baris pertama dimulai dari kolom pertama pada LCD 2 x 16. Pada penelitian ini, saat seluruh rangkaian diaktifkan, maka pada LCD akan tampil waktu pada baris pertama.


(28)

BAB 5

KESIMPULAN DAN SARAN 5.1 Kesimpulan

Dari hasil pengujian yang telah dilakukan dapat disimpulkan bahwa :

1. Telah berhasil dibuat rancangan alat ukur kadar oksigen (O2) menggunakan

Gs Oxygen KE-25 sensor berbasis mikrokontroller Atmega16 dengan tampilan PC.

2. Pada rancangan miniatur, kadar oksigen (O2) dapat dideteksi oleh sensor Gs

oksigen KE-25 yang difokuskan mendeteksi O2 saja.

3. Pada miniatur penghitung kadar oksigen dapat dibuat sangat portable dan dapat digunakan pengguna dengan tampilan LCD dan grafik di tampilan PC.

5.2 Saran

1. Sebaiknya sensor yang digunakan harus memilki tingkat sensitifitas yang tinggi untuk lebih menjamin kadar oksigen yang ada disekitar lokasi yang dideteksi oleh sensor oksigen.


(29)

BAB 2

LANDASAN TEORI 2.1. Oxygen

Oksigen adalah gas yang paling dibutuhkan manusia saat bernapas. Oksigen memainkan peranan penting dalam proses perombakan bahan makanan di dalam tubuh. Tanpa oksigen, manusia akan mati secara perlahan. Itulah sebabnya mengapa tabung-tabung gas oksigen selalu tersedia di rumah sakit yang ada di sekitar kita. Di saat tertentu seseorang membutuhkan oksigen dengan alat bantu agar bisa bernapas dengan baik. Bukan nitrogen, argon, maupun karbon dioksida. Jika menghirup gas karbon dioksida terus menerus tanpa oksigen yang cukup, maka seseorang bisa mati lemas secara perlahan. Udara yang kita hirup sehari-hari selama hidup di dunia ini ternyata bukanlah oksigen murni. Saat bernapas, tubuh kita mengambil udara dari alam bebas untuk digunakan untuk berbagai keperluan tubuh.

Udara yang masuk ke dalam tubuh mengandung berbagai gas seperti oksigen, karbon dioksida, argon, nitrogen, dan uap air. Namun tidak menutup kemungkinan terdapat gas lain yang tercapur di dalam udara yang dihirup manusia. Udara bebas yang digunakan oleh manusia untuk bernapas mengandung gas nitrogen sebesar 78%, mengandung gas oksigen sebesar 20%, mengandung gas argon sebesar kurang dari 1%, mengandung uap air kurang lebih sekitar 1% dan menganding karbon dioksida sebanyak kurang dari 0,1%. Gas-gas tersebut tercampur dengan baik di dalam udara yang ada di dunia ini. Jika kita lihat persentasenya maka manusia sebenarnya bernapas dengan menghirup nitrogen, karena sebagian besar gas yang dihirup manusia saat bernapas adalah gas nitrogen.

• Komposisi Kandungan Udara yang Digunakan Bernapas oleh Manusia : 1. Nitrogen - 78%

2. Oksigen - 20%

3. Argon - kurang dari 1%

4. Karbon Dioksida - kurang dari 0,1% 5. Uap Air - kurang lebih 1%


(30)

Uap air yang kita hirup berbeda-beda kadarnya antara daerah yang satu dengan daerah yang lain. Ada tempat-tempat yang memiliki udara yang mengandung banyak uap air, dan ada pula tempat-tempat yang kadar air dalam udaranya sangat rendah. Air menguap dan bercampur dengan udara yang ada di sekitarnya. Sebagian uap air akan naik ke atas dan membentuk awan yang nantinya bisa menjadi hujan yang turun ke permukaan bumi.

Manusia memerlukan oksigen agar proses respirasi sel terus berlangsung. Oksigen adalah gas yang sangat diperlukan oleh mahkluk hidup untuk bernapas. Hasil utama pernapasan berupa energi, hasil ini disebarkan ke seluruh bagian tubuh yang berfungsi untuk: pertumbuhan, dan kerja organ tubuh (ber-aktivitas). Zat sisa pernapasan berupa karbon dioksida dan uap air yang akan dikeluarkan dari tubuh.

Volume udara yang kita butuhkan untuk bernapas ketika istirahat berbeda ketika kita kerja keras. Volume tersebut dapat kita ketahui melalui kapasitas paru-paru.

Kapasitas paru-paru dapat diuraikan sebagai berikut:

1. Udara tidal yaitu udara yang keluar masuk paru-paru pada saat pernafasan biasa. Jumlah volume udaranya sebesar 50 ml.

2. Udara komplementer yaitu udara yang masih dapat dihirup setelah inspirasi biasa, Besar volume udaranya 1500 ml.

3. Udara suplementer yaitu udara yang masih dapat dikeluarkan setelah melakukan ekspirasi biasa. Besar volume udaranya sekitar 1500 ml. 4. Kapasitas Vital paru-paru yaitu kemampuan paru-paru untuk

melakukan respirasi sekuat-kuatnya atau merupakan jumlah udara tidal, udara komplementer dan udara suplementer. Jadi besarnya volume kapasitas vital paru-paru kurang lebih 4000 ml.

5. Kapasitas Total paru-paru yaitu seluruh udara yang dapat ditampung oleh paru-paru.

Dari pernyataan di atas, maka dalam sekali bernafas manusia menghirup sebanyak 500 ml udara. Namun, tak semua udara tersebut terdiri dari oksigen. Hanya 20% dari udara tersebut yang berupa oksigen. Sedangkan sisanya, yaitu sekitar 79% berupa nitrogen. Selama 1 menit manusia menghirup udara sekitar


(31)

20 kali (dalam keadaan normal atau tidak melakukan aktivitas berat). Berikut perhitungan yang dilakukan Jumlah udara oksigen yang dihirup dalam sekali bernafas = 20% X 500 ml = 100 ml. Jumlah O2 yang dihirup dalam 1 menit =

100 ml X 20 kali = 2000 ml = 2 l. 1 jam = 60 menit.

1 hari = 24 jam = 24 X 60 menit = 1440 menit.

Jadi dalam sehari manusia menghirup O2 sebanyak = 2 l X 1440 = 2880 l.

2.2. Gs Oxygen Sensor

Sensor yang digunakan adalah sensor gas oksigen jenis KE buatan Figaro Sensor yang dikhususkan dirancang hanya untuk mendeteksi keberadaan gas O2

saja. Sensor jenis ini mempunyai struktur yang sama dengan baterai yang terdiri dari elektroda dan eletrolit. Sensor ini memiliki 2 tipe, yaitu KE-25 dan KE-50. Elektroda dibagi menjadi anoda berupa Pb (timbal) dan katoda yang terbuat dari emas (Ag) serta elektrolit berupa asam lemah atau alkaline. Dibawah ini adalah gambar tampilan fisik Gs Oxygen.

Gmbar 2.1 Tampilan fisik Gs Oxygen

Dari gambar diatas dapat kita ketahui bahwa oksigen yang masuk melalui mulut bawah yang terdapat pada sensor. Dan sensor mengalamai reaksi elektroda. Elektroda emas merupakan sebuah padatan yang berupa selaput yang tidak berongga. Oksigen yang masuk ke dalam sensor, direduksi pada elektroda emas dengan reaksi elektrokimia. Anoda dan katoda dihubungkan dengan sebuah termistor dan resistor. Resistansi dua resistor ini mengubah arus yang terjadi akibat reaksi elektrokimia menjadi tegangan. Besar arus yang mengalir pada dua resistor dipengaruhi oleh banyak oksigen yang tertangkap oleh


(32)

membran elektroda. Tegangan resistansi ini digunakan sebagai keluaran sensor oksigen.

2.3. Mikrokontroller

Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi (program) yang dibuat oleh programmer. Chip tunggal yang dirancang secara spesifik untuk aplikasi-aplikasi kontrol dan bukan untuk aplikasi serbaguna. Perangkat ini seringkali digunakan untuk memenuhui seuatu kebutuhan kontrol tertentu seperti mengendalikan sebuah penggerak melalui progremmer.

Sistem Mikrokontroller

Besaran yang diraba kuantitas yang diukur dari perubahannya; misalnya, suhu, posisi, dll) dikonversi menjadi sinyal listrik yang sesuai dengan mengguanakan sensor dan Output dari sensor. Dilewatkan sebagai sinyal input pada mikrokontroller. Mikrokontroller juga dapat menerima input dari pengguna. Pillihan-pilihan yang ditetapkan pengguna ini tipikalnya meliputi nilai–nilai sasaran bagi berbagi variabel (seperti suhu ruangan yang diinginkan), nilai batas (seperti kecepatan putaran poros maksimum), atau batasan–batasan waktu (seperti waktu ‘hidup’ dan waktu ‘mati’ waktu tunda (delay), dan lain-lain. Pengoperasian mikrokontroller dikendalikan oleh rangkaian instruksi software yang dikenal oleh sebagai program kontrol. Program kontrol bekerja secara terus menerus, memeriksa input dari sensor–sensor, setting–setting pengguna, dan data waktu sebelum mengadakan perubahan pada sinyal–sinyal output yang dikirmkan ke satu atau perangkat terkontrol.

Besaran–besaran terkontrol dihasilkan oleh perangkat-perangkat terkontrol sebagai tanggapan atas sinyal-sinyal output dari mikrokontroller. Perangkat terkontrol biasanya mengkonversi energi dari satu bentuk ke bentuk lainnya. Sebagai contoh, peangkat terkontrol mungkin saja merupakan sebuah pemanas listrik yang merubah energi listrik dari sumber a.c. menjadi energi panas sehingga menghasilkan suatu suhu tertentu (besaran terkontrol). Dalam sebagian besar sistem yang ada, salah pesyaratan yang diperlukan adalah sistem harus


(33)

otomatis atau mengatur-sendiri. Segera setelah diset, sistem semacam ini akan terus bekerja tanpa membutuhkan intervensi operator yang terus-menerus. Output dari sebuah sistem yang mengatur sendiri diumpankan kembali ke inputnya untuk menghasilkan apa yang dikenal sebagai sistem loop-tertutup. Salah satu contoh dari sistem loop-tertutup adalah sistem kontrol pemanasan yang dirancang untuk mempertahankan suhu dan kelembahan ruanganyang konstan dalam sebuah gedung terlepas dari berbagai perubahan kondisi di luar gedung tersebut.

Dalam bahasa yang lebih sederhana, sebuah mikrokontroller harus mampu menghasilkan suatu kondisi yang spesifik pada setiap saluran yang terhubung ke port-port outputnya sebagai tanggapan atas suatu kombinasi tertentu dari kondisi-kondisi yang ada pada masing-masing saluran yang terhubung ke port-port inputnya. Mikrokontroller juga harus memiliki sebuah unit pengelolaan pusat yang mampu melaksanakan operasi-operasi aritmatika, logika, dan pewaktuan sederhana. Sinyal-sinyal port input dapat diturunkan dari sejumlah sumber, di antarnya:

a) Saklar-saklar (termasuk tombol-tombol tekan yang memberikan reaksi dalam sekejap);

b) Sensor-sensor (menghasilkan output-output yang kompatibel dengan level-logika);

c) Keyboard (baik tipe yang dikodekan maupun yang tidak dikodekan).

Sinyal-sinyal port output dapat disambungkan ke sejumlah perangkat di antaranya:

a) Saklar-saklar (termasuk tombol-tombol tekan yang memberikan reaksi dalam sekejap);

b) Sensor-sensor (menghasilkan output-output yang kompatibel dengan level-logika);

c) Keyboard (baik tipe yang dikodekan maupun yang tidak dikodekan).

Perangakt-perangkat input memberikan informasi kepada sistem komputer dari lingkungan di luarnya. Mikrokontroller menggunakan perangkat perangkat input yang jauh lebih sederhana. Perangkat-perangkat ini tidak jauh lebih dari sekedar saklar-saklar atau kontak-kontak yang melaksanakan


(34)

penyambungan dan pemutusan namun terdapat banyak jenis perangkat lainnya yang juga banyak digunakan termasuk diantaranya berbagai jenis sensor yang menyediakan output-ouput level-logika (seperti saklar float, detektor jarak, sensor cahaya,dll).

Penting untuk diperlihatkan bahwa, untuk dapat disambungkan secara langsung ke sebuah port input mikrokontroler, suatu perangkat input harus menyediakan sinyal yang kompertibel logika. Ini disebabkan karena input-input mikrokontroler hanya dapat menerima sinyal-sinyal input digital dengan level tegangan yang sama sebagaimana pada sumber daya logika. Level pertahanan bahwa, 0 V (seringkali disebut dengan Vss dalam kasus mikrokontroller CMOS) dan catu positif (Vdd dalam kasus mikrokontroller CMOS) adalah 5V lebih kurang 5%. Level tegangan pada sekitar 0V mengindikasikan sinyal logika 0 dan tegangan pada level yang kurang lebih sama dengan catu daya positif mengindikasikan sinyal logika1.

Perangkat-perangkat input lainnya dapat meraba besaran-besaran analog (seperti misalnya kecepatan) namun memanfaatkan suatu kode digital untuk mempresentasikan nilai besaran-besaran tersebut sebagai input ke suatu sistem mikrokontroller. Beberapa mikrokontroller menyediakan perangkat pengkonversi analog ke digital (ADC) internal untuk menyederhanakan penyambungan sensor-sensor analog sebagai perangkat input.

Perangkat-perangkat output digunakan untuk mengkomunikasikan informasi atau tindakan-tindakan dari sebuah sistem komputer kepada dunia luar. Pada sistem personal computer, perangkat output yang paling umum adalah perangkat tampilan atau display dll. Sebagaimana perangkat input, sistem mikrokontroller seringkali menggunakan perangkat perangkat output yang jauh lebih sederhana. Perangkat ini bisa jadi tidak hanya sekedar LED, pembangkit suatu piezeolektrik, relay, dan motor. Untuk dapat tersambung langsung ke port output sebuah mikrokontroller, perrangkat output harus karena mampu untuk menerima sinyal kompertibel-logika.

Jika besaran-besaran analog (bukannya operasi ‘mati/hidup’ digital sederhana) dibutuhkan pada output, sebuah perangkat pengkonversi digital ke analog (DAC) akan dibutuhkan. Jika sinyal-sinyal input dan output tidak


(35)

kompatibel-logika (yaitu ketika sinyal-sinyal tersebut berada di luar jangkauan sinyal-sinyal yang dapat disambungkan secara langsung kepada mikrokontroller) sejumlah rangkaian anatrmuka dibutuhkan sebagai tambahan akan dibutuhkan untuk menggeser level tegangan atau menyediakan level penggerak arus tambahan. Sebagai contoh, tersedia sejumlah rangkaian antarmuka yang umum digunakan (relay solid-state) yang akan memungkinkan mikrokontroller untuk berhubungan dengan suatu beban yang tersambung ke sumber a.c. setelah itu adalah mungkin bagi sebuah mikrokontroller kecil ( yang bekerja hanya dengan sumber d.c. 5V ) untuk mengontrol suatu sistem pemanasan terpusat yang beroperasi dengan sumber a.c. 240V.

Pemrograman Mikrokontroller AVR

Pemrograman mikrokontroller AVR dapat menggunakan low level language (assembly) dan high language (C, Basic, Pascal, java dll) tergantung compiler yang digunakan. Bahasa assembler mikrokontroller AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu jenis mikrokontroller AVR sudah dikuasai, maka dengan mudah akan menguasai pemrograman keseluruhan mikrokontroller jenis AVR. Namun bahasa assembler relatif lebih sulit dipelajari daripada bahasa C, untuk pembuatan satu proyek yang besar akan memakan waktu yang sangat lama. Serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibanding bahasa assembler yaitu indepedent terhadap hardware serta lebih mudah untuk menangani project yang besar. Basaha C mempunyai keuntungan-keungtungan yang dipunyai oleh bahasa mein (asemmbly). Hampir semua opersi yang dapat dilakukan oleh bahasa mesin, dapat dilakukan dengan bahsa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C sendiri sebanarnya terletak diantara bahasa pemrograman tingkat tinggi dan assembly.

2.4 Mikrokontroler Atmega16

Fitur-fitur yang dimiliki oleh Atmega 16 adalah mikrokontroller 8 bit yang memiliki kemampuan tinggi dengan daya rendah. arsitektur RISC dengan throughput mencapai 16 MIP pada frekuensi 16MHz, memiliki kapasitas flash


(36)

memory 16Kbyte EEPROM 512 byte dan SRAM 1Kbyte, sluran I/O sebanyak 32 buah yaitu port A, B, C dan D. CPU yang terdiri dari 32 register, unit interupsi intrnal dan eksternal, port USART untuk komunikasi serial, fitur peripheral dengan 3 buah timer/counter dengan kemampuan pembandingan dua (2) buah timer/counter 8 bit dengan prescaler terpisah dan mode compare dan satu (1) buah timer/counter 16 bit dengan precaler terpisah mode campare, dan mode capture, real time counter dengan oscillator tersendiri, 4 chanel PWM, 8 channel 10 bit-ADC, 8 singel-ended channel, 7 differential channel hanya pada kemasan TQFP, 2 differential channel dengan programmable gain 1x, 10x, atau 200x, antarmuka SPI, on-chip analog comparator.

Konfigurasi Pin AVR Atmega16

Gambar berikut ini merupakan susunan kaki standart 40 pin DIP mikrokontroller AVR Atmega16.

Gambar 2.2 Tampilan Fisik Atmega16

Terlihat pada gambar diatas terdapat 4 port yaitu A B C dan D. Keempat porrt tersebut merupakan jalur bi-derectoinal yang semuanya dapat diprogram sebagai input maupun output dengan pilihan intrnal pull-up. Tiap port tersebut mempunyai 3 register bit, yaitu DDxn, PORTxn, PINxn. Huruf x mewakili nama port sedangkan n mewakili nama bit. Bit DDxn terdapat pada I/O address DDRx sedangkan PORTxn terdapat pada I/O address PORTx dn bit PINxn terdapat


(37)

yaitu PORTxn dan PINxn. Port I/O pada mikrokontroller AVR dapat dikonfigurasi sebagai input atau ouput dengan mengubah isi I/O register. Bit data DDxn dalam register DDRx (data derictoin register) menentukan arah pin.

Arsitektur AVR mepunyai dua memori utama yaitu memori data dan memori program selain itu, Atmega16 memiliki meliki memori EPROM untuk menyimpan data. Atmega16 memiliki 16Kbyte on-chip in-system reproggrammable flash memory untuk mennyimpan program. Karena instruktur Atmega16 memiliki 16 atau 32 bit. Flash diatur dalam 18K x 16 bit. Untuk keamanan program, memori program, flash dibagi menjadi dua bagian yaitu bagian program bot dan aplikasi. Boot loader adalah program kecil yang bekerja pada saat up time yang dapat memasukkan ke program aplikasi ke dalam mikroposessor.

Memori AVR Atmega16 terbagi menjadi 3 bagian yaitu 32 buah register umum,64 buah register I/O dan 1Kbyte SRAM internal. General purpose register menempati data alamat terbawah yaitu S00 sampai S1F. Sedangkan memory I/O menempati 64 alamatnnya berikutnya mulai dari $20 hingga $5F. Memory I/O merupakan register yang khusus digunakan mengatur fungsi yang khusus terhadap berbagai pheriperal mikrokontroller seperti control register, timer atau counter fungsi I/O dan sebagainya.1024 alamat memory berikutnya mulai alamat $45F digunakan untuk SRAM internal. Atmega 16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis atau dibacadari memori, ini ketika catu daya yang dimatikan, data yang terakhir ditulis pada memori EEPROM masi tersimpan pada memori ini, atau kata lain EEPROM bersifat nonvolatile alamat EEPROM dari $000 hingga $1FF.

2.5 Codvision AVR

CodeVision AVR merupakan sebuah software yang digunakan untuk memprogram mikrokontroler yang sekarang ini telah umum. 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 di sediakan oleh


(38)

program tersebut. Salah satu compiler program yang umum digunakan sekarang ini adalah CodeVision AVR yang menggunakan bahasa pemrograman C. CodeVision AVR mempunyai suatu keunggulan dari compiler lain, yaitu adanya codewizard, fasilitas ini memudahkan kita dalam inisialisasi mikrokontroler yang akan kita gunakan. Dibawah ini adalah gambar Tampilan Software Code VisionAVR

Gambar 2.3 Tampilan Software CodeVisionAVR

Program Codvision AVR

Untuk megaktifkan micro sistem akusisi data, penerima sinyal control dan sistem transmisi data maka terlebih dahulu mikrokontroller tersebut diberi program dengan cara mendownload program yang terlebih dahulu kita buat dengan bahasa C pada Code Vision AVR. Software Code Vision AVR merupakan C Compiler untuk mikrokontroller AVR. Pada Code Vision telah disediakan editor yang berfungsi untuk membuat program dalam bahasa C, setelah melakukan proses kompilasi kita dapat mengisikan program yang telah dibuat kedalam memori mikrokontroller menggunakan programmer yang telah disediakan oleh Code Vision AVR. Programmer yang didukung oleh Code


(39)

Vision Programmer Cable dapat diintegrasik dengan Code Vision AVR, terlebih dahulu harus dilakukan konfigurasi sebagai berikut :

• Jalankan software Code Vision AVR.

• Pilih menu setting. Programmer.

• Pilih tipe programmer.

• Lalu klik tombol OK.

Catatan: Proses ini hanya dapat dilakukan pada saat ada project yang telah dibuat atau dibuka.

Bahasa Pemrograman CodeVisionAVR

Akar dari bahasa C adalah bahasa BCPL yang dikembangkan. Bahasa C pertama kali digunakan pada komputer Digital Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX. Standar bahasa C yang asli adalah standar dari UNIX. Sistem operasi, kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa C. Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro. Untuk membuat versi-versi tersebut menjadi standar, ANSI (American National Standard Institutes) membentuk suatu komite (ANSI Committee X3J11) pada tahun 1983 yang kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini didasarkan kepada standar UNIX yang diperluas. Bahasa C mempunyai kemampuan lebih dibanding dengan bahasa pemrograman yang lain. Bahasa C merupakan bahasa pemrograman yang bersifat portabel, yaitu suatu program yang dibuat dengan bahasa C pada suatu komputer akan dapat dijalankan pada komputer lain dengan sedikit (atau tanpa) ada perubahan yang berarti. Bahasa C merupakan bahasa yang biasa digunakan untuk keperluan pemrograman sistem, antara lain untuk membuat:

1. Assembler 2. Interpreter 3. Compiler 4. Sistem Operasi

5. Program bantu (utility) 6. Editor


(40)

7. Paket program aplikasi

Beberapa program paket yang beredar seperti dBase dibuat dengan menggunakan bahasa C, bahkan sistem operasi UNIX juga dibuat dengan menggunakan bahasa C. Dalam beberapa literatur, bahasa C digolongkan sebagai bahasa tingkat menengah (medium level language). Penggolongan ini bukan berarti bahasa C kurang ampuh atau lebih sulit dibandingkan dengan bahasa tingkat tinggi (high level language - seperti Pascal, Basic, Fortran, Java, dan lain-lain), namun untuk menegaskan bahwa bahasa C bukanlah bahasa yang berorientasi pada pada mesin yang merupakan ciri dari bahasa tingkat rendah (low level language), yaitu bahasa mesin dan assembly. Pada kenyataannya, bahasa C mengkombinasikan elemen dalam bahasa tingkat tinggi dan bahasa tingkat rendah, yaitu kemudahan dalam membuat program yang ditawarkan pada bahasa tingkat tinggi dan kecepatan eksekusi dari bahasa tingkat rendah.

2.5 Bahasa C

Bahasa yang digunakan dalam Code VisionAVR adalah bahasa C, Bahasa pemrograman C merupakan salah sat Dibuat pada tahun 1972 oleh Dennis Ritchie unt Telephone Laboratories. Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C. Dibawah ini adalah berupa gambar tampilan software bahasa C.


(41)

Gambar 2.4 Tampilan Software Bahasa C

Bahasa C merupakan pengembangan dari bahasa pemrograman B. Kepopuleran C ini pada mulanya tidak dilepaskan dari kepopuleran dari sistem operasi UNIX yang meupakan induk dan aplikasi utama pertamanya. Dalam waktu yang singkat Ctelah menggantikan pemrograman assembler dalam lingkungan UNIX. Tetapi selanjutnya C berkembang ke arah status yang mandiri dan digunakan dalam perusahaan – perusahaan lainyang mengembangkan kompiler – kompiler C untuk lingkunngan nonUNIX. Hingga awal tahun 80-an berbagai versi C untuk mikrokomputer telah banyak banyak beredar di perngkat lunak.

2.5.1 Kerangka Dasar Bahasa Pemrograman C

Bahasa pemrograman C sama seperti bahasa pemrograman lainnya yang memiliki kerangka dasar. Kerangka Dasar Bahasa C adalah sebagai berikut:

• Fungsi main ( )

Fungsi main merupakan fungsi utama yang wajib ada pada saat kita membuat program dengan bahasa C. Dalam sebuah project hanya boleh ada 1 buah fungsi main() saja. Namun dalam bahasa C, tidak membatasi hanya boleh 1 fungsi saja, melainkan kita juga diperbolehkan untuk membuat fungsi-fungsi lain selain fungsi main ( ) yang bisa mempermudah kita dalam membuat sebuah program.

• Deklarasi variabel

Pendeklarasian variabel ini dilakukan untuk mendaftarkan variabel apa saja yang akan kita gunakan dalam program yang kita buat. Pendeklarasian


(42)

variabel ini biasanya sekaligus dengan mencantumkan tipe data dari variabel tersebut.

• Perintah (statement)

Perintah merupakan deretan program yang kita buat dalam sebuah project.

• Akses library

Digunakan untuk mengakses library apa saja yang kita perlukan dalam pembuatan sebuah program.

• Komentar

Komentar merupakan sebuah kalimat yang biasanya dicantumkan oleh seorang programer sebagai sebuah catatan kecil yang mana komentar ini tidak akan ikut di compile atau diproses.

2.5.2 Kelebihan dan Kekurangan Bahasa Pemrograman C

Bahasa C mempunyai beberapa kelebihan dibanding dengan bahasa pemrograman yang lain, yaitu:

Kelebihan

1. C mempunyai operator yang lengkap untuk memanipulasi data.

2. Berbagai struktur data dan pengendalian proses disediakan dalam C, sehingga memungkinkan dibuat program yang terstruktur, bahkan program yang berorientasi pada objek (OOP = Object Orientied Programming).

3. Dibanding dengan bahasa mesin atau rakitan (assembly), C jauh lebih mudah dipahami dan pemrogram tidak perlu tahu detail mesin komputer yang digunakan sehingga tidak menyita waktu dalam menyelesaikan masalah ke dalam bentuk program. C merupakan bahasa yang berorientasi pada permasalahan (objek), dan bukan berorientasi pada mesin.

4. Kecepatan eksekusi C mendekati kecepatan eksekusi program yang dibuat dengan bahasa tingkat rendah, namum kemudahan dalam memprogram setara dengan bahasa tingkat tinggi.


(43)

5. C memungkinkan memanipulasi data dalam bentuk bit maupun byte secara efisien. Disamping itu juga memungkinkan untuk melakukan manipulasi alamat dari suatu data yang dalam C dinamakan pointer.

Kekurangan

Adapun kelemahan --atau lebih tepatnya kesulitan bahasa pemrograman C terutama yang dirasakan oleh pemrogram pemula diantaranya adalah:

1. Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai, yang jika belum familiar akan menimbulkan masalah.

2. Para pemrogram C tingkat pemula umumnya belum pernah mengenal pointer dan tidak terbiasa menggunakannya, padahal keampuhan bahasa C justru terletak pada pointer.

2.6 LCD (Liquid Crystal Display)

Berikut adalah tampilan bentuk fisik LCD yang digunakan pada perancangan alat,

Gambar 2.5. Bentuk Fisik LCD

LCD adalah suatu display dari bahan cairan kristal yang pengoperasiannya menggunakan sistem dot matriks. LCD banyak digunakan sebagai display dari alat alat elektronika seperti kalkulator, multimeter digital, jam digital dan sebagainya. LCD dapat dengan mudah dihubungkan dengan mikrokontroller AVR Atmega16. LCD yang digunakan dalam percobaan ini adalah 2x16 lebar display 2 baris 6 kolom. Yang mempunyai 16 pin konektor.


(44)

Gambar dibawah ini adalah gambar tampilan knfigurasi pin LCD 16 Karakter x 2 Baris.

Gambar 2.6. Konfigurasi Pin LCD 16 Karakter x 2 Baris

Dengan gambar diatas dapt digunakan untuk keperluan antar muka suatu komponen elektronika dengan mikrokontroler perlu diketahui fungsi dari setiap pin yang ada pada komponen tersebut. Adapun konfigurasi pin LCD sebagai berikut:

a. Pin 1 (VSS) : Ground voltage b. Pin 2 (VCC) : +5V

c. Pin 3 (VEE) : Contrast Voltage d. Pin 4 (RS) : Register Select,

0; intruction register 1; data register

e. Pin 5 (R/W) : Read/Write to choose write or read mode 0; write mode

1; read f. Pin 6 (E) : Enable

0; start to lacht data to LCD character 1; disable

g. Pin 7 (D0) : Data bit ke-0 (LSB) h. Pin 8 (D1) : Data bit ke-1 i. Pin 9 (D2) : Data bit ke-2 j. Pin 10 (D3) : Data bit ke-3


(45)

k. Pin 11 (D4) : Data bit ke-4 l. Pin 12 (D5) : Data bit ke-5 m. Pin 13 (D6) : Data bit ke-6 n. Pin 14 (D7) : Data bit ke-7 (MSB) o. Pin 15 (BPL) : Back plane light p. Pin 16 (GND) : Ground Voltage

LCD (Liquid Crystal Display) mempunyai 3 jalur kontrol dan 8 jalur I/O untuk data bus. Tiga jalur kontrol adalah EN, RS dan RW. Jalur EN (enable) digunakan untuk menyatakan pada LCD terjadi pengiriman data. Untuk mengirim data ke LCD jalur ini harus low (0) dan kedua jalur lainnya diset dan data diletakkan pada data bus. Ketika kedua jalur lainnya benarbenar suadah siap, EN dibuat high (1) dan ditunggu untuk beberapa saat dan kemudian di kembalikan ke low (0). Jalur Rs (Register Select) digunakan untuk menyatakan bahwa data dianggap sebagai perintah bila RS low (0). Ketika RS high (1) kondisi ini menyatakan bahwa data yang sedang dikirim adalah data text yang hendak ditampilkan pada layar LCD. Jadi jika untuk menampilkan huruf ‘T’ pada layar, RS harus di set high (1). Jalur RW (read/write) adalah jalur kontrol yang dalam keadaan low (0) memberi informasi bahwa bus data sedang ditulis di LCD. Bila RS high (1) menyatakan bahwa data sedang dibaca dari LCD. Pada data bus delapan data dinyatakn dengan DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7.


(46)

BAB 1 PENDAHULUAN 1.1. Latar Belakang

Pada era modern sekarang ini perkembangan teknologi transportasi semakin hari semakin pesat dan maju baik dari sisi kualitas maupun kuantitas, sehingga membuat para pengguna transportasi kendaraan bebas memilih alat transportasi yang sesuai dengan kondisi dan kebutuhan. Salah satunya adalah sarana transportasi darat, seperti mobil, sepeda motor, serta angkutan darat lainnya. Salah satu penyebab dari banyaknya transpostasi ini adalah polusi yang tersebar luas di udara.

Beberapa waktu lalu telah terjadi kebakaran dan menyebabkan pencemaran diudara yang harusnya tidak kita hirup karena bukan udara segar namun, terpaksa harus dilakukan penghirupan udara yang tidak segar. Ada banyak upaya yang dilakukan untuk menghindari pencemaran udara ini, salah satunya adalah dengan menggunakan masker sebagai penutup hidung agar udara yang menngganggu tidak masuk didalam saluran pernafasan.

Alat yang dibuat dalam skripsi ini digunakan untuk menghitung kadar oksigen agar dapat diketahui berapa banyak atau berapa persen kadar oksigen yang ada diudara saat kondisi kondisi yang diinginkan dan tempat yang diinginkan. Untuk mengetahui kadar oxygen yang baik atau tidaknya untuk dihirup, maka dibuatlah suatu alat ukur kadar oxygen yang mampu menghitung dan menapilkan nilai oxygen di layar LCD dan PC.

Sistem kontrolnya menggunakan mikrokontroler ATMega16 beserta perangkat lunak pemrogramannya, sedangkan sensor Gs Oxygen berfungsi untuk mendeteksi kadar oksigen yang berada diluar ataupun di dalam ruangan. Dari sensor tersebut dapat diperoleh data yang kemudian dikirim ke mikrokontroler ATMega16 untuk diproses. Maka dari semua uraian di atas penulis tertarik untuk mengambil judul :

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O2) MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS MIKROKONTROLER ATMega16 DENGAN TAMPILAN PC ” sebagai judul skripsi.


(47)

1.2. Rumusan Masalah

1. Bagaimana merancang rangkaian agar sensor Gs oxygen dapat mengirim data ke Mikrokontroler ATMega16.

2. Bagaimana menentukan mekanisme dan sistem kerja dari alat ukur kadar oksigen.

3. Bagaimana menentukan pengukuran pada Gs Oxygen menjadi stabil dan layak untuk dipergunakan.

1.3. Batasan Masalah

Untuk membatasi masalah-masalah yang ada, maka penulis membatasi ruang lingkup masalah sebagai berikut:

1. Sistem menggunakan sensor Gs Oxygen yang dikhususkan sebagasi sensor yang mendeteksi gas O2 sebagai pendeteksi kadar Oxygen.

2. Sistem dikontrol oleh sebuah mikrokontroler AVR yang di program dengan bahasa C (CV - AVR).

3. Alat yang digunakan untuk menghitung kadar oksigen disuatu tempat. 4. Program GUI tidak di bahas, hanya sebagai sarana menampilkan grafik. 1.4. Tujuan Penelitian

Tujuan penelitian ini yaitu membuat suatu perangkat alat ukur kadar oksigen yang mampu menghitung kadar oksigen dan mampu menampilkan kadar oksigen di LCD dan PC agar manusia dapat menanam pohon dan menjaga penghijauan disekitarnya.

1.5. Manfaat Penelitian

1. Dapat mengetahui kadar oksigen yang berada disekitar yang kita inginkan. 2. Dapat menghitung dan menampilkan kadar oksigen disuatu tempat di dalam

maupun d iluar ruangan dengan tampilan di LCD dan PC. 1.6. Metodologi Penelitian

Dapat menjelaskan konsep dasar dari penelitian, arti dan guna data infomasi, perumusan masalah, pengumpulan pengelolaan data dan analisa data.


(48)

1.7. Sistematika Penulisan

Untuk memberikan gambaran pada mengenai skripsi ini, secara singkat dapat diuraikan sistematika penulisan sebagai :

BAB 1. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB 2. LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian. Teori pendukung itu antara lain tentang mikrokontroler Atmega16 (hardware dan software), bahasa program yang digunakan, Gs Oxygen sebagai alat pendeteksi, pemrograman dalam mikrokontroller dan catu daya.

BAB 3. PERANCANGAN DAN PEMBUATAN

Analisa rangkaian dan sistem kerja, dalam bab ini dibahas tentang sistem kerja per-blok diagram dan sistem kerja keseluruhan.

BAB 4. PENGUJIAN DAN ANALISA

Pada bab ini akan dibahas pengujian rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktifkan rangkaian, penjelasan mengenai program yang diisikan ke mikrokontroler Atmega16 dan Gs Oxygen.

BAB 5. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari skripsi ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(49)

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O2) MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS MIKROKONTROLLER ATMega16

DENGAN TAMPILAN PC ABSTRAK

Telah dirancang Alat Ukur Kadar Oksigen (O2) Menggunakan Gs Oxygen

KE-25 Sensor Berbasis Mikrokontroller ATMega16 dengan Tampilan PC. Alat ukur ini menghitung kadar oksigen yang sehat dihirup oleh tubuh manusia. Oleh karena itu dibutuhkan suatu perangkat dan sistem yang mampu menghitung kadar oksigen diluar maupun di dalam ruangan. Pada penelitian ini dirancang suatu sistem dengan perangkat alat ukur penghitung kadar oksigen. Dimana sensor Gs Oxygen berfungsi untuk mendeteksi kadar oksigen, kemudian data yang diperoleh dari sensor akan dikirim ke mikrokontroler ATMega16 untuk diproses sehingga mikro akan mengeksekusi berapa perssen besar kadar oksigen yang dideteksi pada tempat yang ditentukan oleh pengguna. Kemudian hasil eksekusi akan ditampilkan dilayar LCD dan PC.


(50)

DESIGN TOOLS TO MEASURE THE CONCENTRATION OF OXYGEN ( O2 ) Gs USING OXYGEN SENSOR TO - 25 ATmega16 BASED ON

MICROCONTROLLER WITH A VIEW PC

ABSTRACT

It has been designed Measuring Levels of Oxygen ( O2 ) Using Gs Oxygen Sensor TO - 25 Microcontroller Based ATmega16 with PC display . This measure calculates the amount of oxygen inhaled by the human body healthy . Therefore it takes a device and a system capable of calculating the levels of oxygen outside and indoors . In this study , designed a system with a timer device measuring instrument oxygen levels . Where Gs Oxygen sensor function to detect levels of oxygen , and then the data obtained from the sensors will be sent to the microcontroller ATmega16 to be processed so that the micro will execute great perssen how oxygen levels were detected in the place specified by the user . Then the execution results are displayed on the screen LCD and PC .

Keywords : Gs Oxygen , ATmega16 microcontroller , LCD and PC.


(51)

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O

2

)

MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS

MIKROKONTROLLER ATMega16 DENGAN TAMPILAN PC

SKRIPSI

JULI SUHARTIKA

140821028

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETUAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2016


(52)

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O

2

)

MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS

MIKROKONTROLLER ATMega16 DENGAN TAMPILAN PC

SKRIPSI

Diajukan

Untuk Melengkapi Tugas dan Memenuhi Syarat Mencapai Gelar Sarjana Sains

JULI SUHARTIKA

140821028

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETUAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2016


(53)

PERSETUJUAN

Judul : Perancangan Alat Ukur Kadar Oksigen (O2) Menggunakan

Gs Oxygen KE-25 Sensor Berbasis Mikrokontroller ATMega16 dengan Tampilan PC

Kategori : Skripsi

Nama : Juli Suhartika

Nomor Induk Mahasiswa : 140821028

Program Studi : Sarjana (S1) Fisika Instrumentasi Departemen : Fisika

Fakultas : Matematika dan Ilmu Pengetahuan Alama (FMIPA) Universitas Sumatera Utara

Disetujui di Medan, 27 Juli 2016

Diketahui/Disetujui oleh

Departemen Fisika FMIPA USU

Ketua Pembimbing

Dr. Marhaposan Situmorang Dr Bisman Perangin-Angin M.Eng.Sc

NIP.195510301980031003 NIP. 195609181985031002 ,


(54)

PERNYATAAN

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O2) MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS MIKROKONTROLLER ATMega16

DENGAN TAMPILAN PC SKRIPSI

Saya mengakui bahwa Skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya

Medan, Juli 2016

Juli Suhartika 140821028


(55)

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O2) MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS MIKROKONTROLLER ATMega16

DENGAN TAMPILAN PC ABSTRAK

Telah dirancang Alat Ukur Kadar Oksigen (O2) Menggunakan Gs Oxygen

KE-25 Sensor Berbasis Mikrokontroller ATMega16 dengan Tampilan PC. Alat ukur ini menghitung kadar oksigen yang sehat dihirup oleh tubuh manusia. Oleh karena itu dibutuhkan suatu perangkat dan sistem yang mampu menghitung kadar oksigen diluar maupun di dalam ruangan. Pada penelitian ini dirancang suatu sistem dengan perangkat alat ukur penghitung kadar oksigen. Dimana sensor Gs Oxygen berfungsi untuk mendeteksi kadar oksigen, kemudian data yang diperoleh dari sensor akan dikirim ke mikrokontroler ATMega16 untuk diproses sehingga mikro akan mengeksekusi berapa perssen besar kadar oksigen yang dideteksi pada tempat yang ditentukan oleh pengguna. Kemudian hasil eksekusi akan ditampilkan dilayar LCD dan PC.


(56)

DESIGN TOOLS TO MEASURE THE CONCENTRATION OF OXYGEN ( O2 ) Gs USING OXYGEN SENSOR TO - 25 ATmega16 BASED ON

MICROCONTROLLER WITH A VIEW PC

ABSTRACT

It has been designed Measuring Levels of Oxygen ( O2 ) Using Gs Oxygen Sensor TO - 25 Microcontroller Based ATmega16 with PC display . This measure calculates the amount of oxygen inhaled by the human body healthy . Therefore it takes a device and a system capable of calculating the levels of oxygen outside and indoors . In this study , designed a system with a timer device measuring instrument oxygen levels . Where Gs Oxygen sensor function to detect levels of oxygen , and then the data obtained from the sensors will be sent to the microcontroller ATmega16 to be processed so that the micro will execute great perssen how oxygen levels were detected in the place specified by the user . Then the execution results are displayed on the screen LCD and PC .

Keywords : Gs Oxygen , ATmega16 microcontroller , LCD and PC.


(57)

DAFTAR ISI

Halaman

Persetujuan ... ...i

Pernyataan……….ii

Penghargaan ... iii

Abstrak ... iv

Abstract...v

Daftar Isi...vi

Daftar Gambar ... viii

Daftar Tabel ... ix

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 2

1.4 Tujuan Masalah ... 2

1.5 Manfaat Penelitian ... ...3

BAB II LANDASAN TEORI 2.1 Oxygen ... 5

2.2 Gs Oxygen Sensor...……… ... ….7

2.3 Mikrokontroller…….. ... 8

2.4 Mikrokontroler ATMega16 ... 12

2.5 Code Vision AVR ... 14

2.6 Bahasa C ... 17

2.6 LCD (Liquid Crystal Display) ... 20

BAB III PERANCANGAN DAN SISTEM KERJA RANGKAIAN 3.1 Diagram Block ... 23

3.2 Perancangan Pengendali Sistem ... 25

3.2.1 RangkaianPower Supply…………. ... 25

3.2.2 Sensor ... 27

3.2.3 Mikrokontroler...29

3.2.4 USB-TO-TTL... ... ...30

3.3 Flowchart... ... ...32

3.4 Perancangan Algoritma Program... ... 33


(58)

BAB IV PENGUJIAN ALAT DAN ANLAISA

4.1 Pengambilan Data...34

4.1.1 Pengujian Rangkaian Mikrokontroller ATMega16...34

4.1.2 Pengujian dan Analisa Sensor Oksigen KE-25...35

4.2 Pengujian dan Analisa Sensor Interface GUI...37

4.3 Pengujian Rangkaian Interfacing LCD 2x16...38

BAB V PENUTUP 5.1 Kesimpulan ... 40

5.2 Saran ... 40 DAFTAR PUSTAKA


(59)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Tampilan Fisik Gs Oxygen 7

Gambar 2.2 Tampilan Fisik Atmega16 13

Gambar 2.3 Tampilan Software CodeVisionAVR 15

Gambar 2.4 Tampilan Software Bahasa C 18

Gambar 2.5 Bentuk Fisik LCD 20

Gambar 2.6 Konfigurasi Pin LCD 16 Karakter x 2 Baris 21

Gambar 3.1 Diagaram Blok Rangkaian 23

Gambar 3.2 Rangkaian Skematik Power Supply 25

Gambar 3.3 Skematik Rangkaian Dalam Gs Oxygen KE-25 27 Gambar 3.4 Mekanisme Skematik Rangkaian Dalam Gs Oxygen KE-25 27 Gambar 3.5 Sistem Kerja Pada Rangkaian Dalam Gs Oxygen KE-25 28 Gambar 3.6 Rangkaian Skematik Sistem Minimum ATmega16 29

Gambar 3.7 Flowchart 32

Gambar 3.8 Tampilan awal GUI Delphi 34

Gambar 3.9 Gambar Rangkain Keseluruhan 34


(60)

DAFTAR TABEL

Halaman Tabel 4.1 Data pengujian respon sensor Oksigen KE-25 di Ruangan 36 Tabel 4.2. Data pengujian sensor Oksigen KE-25 di beberapa lokasi 37


(1)

PERANCANGAN ALAT UKUR KADAR OKSIGEN (O2) MENGGUNAKAN Gs OXYGEN KE-25 SENSOR BERBASIS MIKROKONTROLLER ATMega16

DENGAN TAMPILAN PC ABSTRAK

Telah dirancang Alat Ukur Kadar Oksigen (O2) Menggunakan Gs Oxygen

KE-25 Sensor Berbasis Mikrokontroller ATMega16 dengan Tampilan PC. Alat ukur ini menghitung kadar oksigen yang sehat dihirup oleh tubuh manusia. Oleh karena itu dibutuhkan suatu perangkat dan sistem yang mampu menghitung kadar oksigen diluar maupun di dalam ruangan. Pada penelitian ini dirancang suatu sistem dengan perangkat alat ukur penghitung kadar oksigen. Dimana sensor Gs Oxygen berfungsi untuk mendeteksi kadar oksigen, kemudian data yang diperoleh dari sensor akan dikirim ke mikrokontroler ATMega16 untuk diproses sehingga mikro akan mengeksekusi berapa perssen besar kadar oksigen yang dideteksi pada tempat yang ditentukan oleh pengguna. Kemudian hasil eksekusi akan ditampilkan dilayar LCD dan PC.


(2)

DESIGN TOOLS TO MEASURE THE CONCENTRATION OF OXYGEN ( O2 ) Gs USING OXYGEN SENSOR TO - 25 ATmega16 BASED ON

MICROCONTROLLER WITH A VIEW PC

ABSTRACT

It has been designed Measuring Levels of Oxygen ( O2 ) Using Gs Oxygen Sensor TO - 25 Microcontroller Based ATmega16 with PC display . This measure calculates the amount of oxygen inhaled by the human body healthy . Therefore it takes a device and a system capable of calculating the levels of oxygen outside and indoors . In this study , designed a system with a timer device measuring instrument oxygen levels . Where Gs Oxygen sensor function to detect levels of oxygen , and then the data obtained from the sensors will be sent to the microcontroller ATmega16 to be processed so that the micro will execute great perssen how oxygen levels were detected in the place specified by the user . Then the execution results are displayed on the screen LCD and PC .

Keywords : Gs Oxygen , ATmega16 microcontroller , LCD and PC.


(3)

DAFTAR ISI

Halaman

Persetujuan ... ...i

Pernyataan……….ii

Penghargaan ... iii

Abstrak ... iv

Abstract...v

Daftar Isi...vi

Daftar Gambar ... viii

Daftar Tabel ... ix

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Masalah ... 2

1.4 Tujuan Masalah ... 2

1.5 Manfaat Penelitian ... ...3

BAB II LANDASAN TEORI 2.1 Oxygen ... 5

2.2 Gs Oxygen Sensor...……… ... ….7

2.3 Mikrokontroller…….. ... 8

2.4 Mikrokontroler ATMega16 ... 12

2.5 Code Vision AVR ... 14

2.6 Bahasa C ... 17

2.6 LCD (Liquid Crystal Display) ... 20

BAB III PERANCANGAN DAN SISTEM KERJA RANGKAIAN 3.1 Diagram Block ... 23

3.2 Perancangan Pengendali Sistem ... 25

3.2.1 RangkaianPower Supply…………. ... 25

3.2.2 Sensor ... 27

3.2.3 Mikrokontroler...29

3.2.4 USB-TO-TTL... ... ...30

3.3 Flowchart... ... ...32

3.4 Perancangan Algoritma Program... ... 33


(4)

BAB IV PENGUJIAN ALAT DAN ANLAISA

4.1 Pengambilan Data...34

4.1.1 Pengujian Rangkaian Mikrokontroller ATMega16...34

4.1.2 Pengujian dan Analisa Sensor Oksigen KE-25...35

4.2 Pengujian dan Analisa Sensor Interface GUI...37

4.3 Pengujian Rangkaian Interfacing LCD 2x16...38

BAB V PENUTUP 5.1 Kesimpulan ... 40

5.2 Saran ... 40 DAFTAR PUSTAKA


(5)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Tampilan Fisik Gs Oxygen 7

Gambar 2.2 Tampilan Fisik Atmega16 13

Gambar 2.3 Tampilan Software CodeVisionAVR 15

Gambar 2.4 Tampilan Software Bahasa C 18

Gambar 2.5 Bentuk Fisik LCD 20

Gambar 2.6 Konfigurasi Pin LCD 16 Karakter x 2 Baris 21

Gambar 3.1 Diagaram Blok Rangkaian 23

Gambar 3.2 Rangkaian Skematik Power Supply 25

Gambar 3.3 Skematik Rangkaian Dalam Gs Oxygen KE-25 27

Gambar 3.4 Mekanisme Skematik Rangkaian Dalam Gs Oxygen KE-25 27 Gambar 3.5 Sistem Kerja Pada Rangkaian Dalam Gs Oxygen KE-25 28

Gambar 3.6 Rangkaian Skematik Sistem Minimum ATmega16 29

Gambar 3.7 Flowchart 32

Gambar 3.8 Tampilan awal GUI Delphi 34

Gambar 3.9 Gambar Rangkain Keseluruhan 34


(6)

DAFTAR TABEL

Halaman Tabel 4.1 Data pengujian respon sensor Oksigen KE-25 di Ruangan 36 Tabel 4.2. Data pengujian sensor Oksigen KE-25 di beberapa lokasi 37