BAB IV HASIL DAN PEMBAHASAN
4.2. Pengamatan Sistem
4.2.6. Pengujian ADC
Pengujian yang dilakukan untuk mengetahui apakah alat dapat bekerja dengan baik dalam mengukur suhu atau tidak. Pengujian pertama adalah pengujian ADC internal ATMEGA8535, yang dilakukan dengan cara memberikan tegangan masukan pada pin masukan ADC. Tegangan masukan yang diberikan ini dibatasi dengan tegangan maksimal adalah tegangan referensi internal ADC, yaitu 2,5v (hasil pengukuran). Besarnya nilai tegangan masukan ini kemudian akan disimpan di EEPROM ATMEGA8535, dan nilai
yang tersimpan di dalam EEPROM ATMEGA8535 inilah yang kemudian dibandingkan dengan tegangan masukan. Dan hasil pengujiannya dapat dilihat pada table 4.6.
Tabel 4.6 Perbandingan Tegangan Masukan dan Data di Memori Tegangan Masukan ADC
(volt) Data di Memori Selisih Data
0 0.068 0.068 nilai tegangan masukan dengan nilai yang tersimpan pada EEPROM ATMEGA8535, yang mana rata-rata selisihnya adalah 0,0686. Yang berarti setiap tegangan masukan yang diterima, ADC akan membaca nilai tersebut dan ditambahkan 0.0686.
Pada pengujian ADC yang dilakukan selanjutnya adalah mengukur tegangan keluaran dari LM35 dan membandingkan dengan suhu yang terukur.
Tabel 4.7 Perbandingan Data Suhu dan Tegangan Keluaran LM35 Suhu
Dari hasil pengujian antara suhu yang terdeteksi dengan tegangan keluaran dari LM35 tersebut dapat dilihat bahwa LM35 bekerja sesuai dengan dasar teori, yaitu perubahan suhu setiap 1°C sama dengan perubahan tegangan sebesar 10mv.
Setelah menguji setiap bagian, langkah selanjutnya adalah mengukur suhu menggunakan LM35 yang langsung terhubung dengan sistem, dimana sistem akan menyimpan data suhu ke dalam EEPROM ATMEGA8535. Data di dalam EEPROM ATMEGA8535 tersebut kemudian dibandingkan dengan suhu yang terukur menggunakan thermometer dan juga tegangan keluaran LM35 yang diukur menggunakan multimeter.
Hasil pengujian yang dilakukan menggunakan thermometer dan multimeter dapat dilihat pada tabel 4.8 berikut ini.
Tabel 4.8 Perbandingan Antara Data Tersimpan dan Data Terukur Data Suhu Tersimpan
(°C)
Data Suhu Terukur (°C)
38.7 31
41.75 35
49 42
56.75 50
70.5 63
86.75 80
103.5 96
121.5 115
135.75 128
141 134
Jika dari semua data suhu yang tersimpan di EEPROM ATMEGA8535 dikurangi dengan nilai 0.0686 (volt) atau 6,86 (°C), kemudian dilihat selisihnya dengan suhu sebenarnya, maka diperoleh data bahwa kemungkinan perbedaan suhu terukur dan suhu tersimpan sebesar 1°C.
KESIMPULAN
Dari pembahasan dan pengujian dari alat yang telah dibuat berdasarkan hasil rancangan, maka pada bab ini dapat diambil kesimpulan dan beberapa saran yang berguna untuk pengembangan alat.
5.1 Kesimpulan
1. Pemilihan mode penguncian pintu otomatis atau manual yang dipengaruhi indikator kunci mobil dapat berjalan dengan baik.
2. Reed switch yang digunakan sebagai sensor pintu dapat mendeteksi buka dan tutup pintu dengan baik.
3. Rangkaian timer eksternal astable timer 555 dapat memberikan keluaran yang baik, kecuali untuk keluaran T
H= 15s karena proses pengisian dan pengosongan yang berjalan dengan tidak sempurna.
4. Selisih waktu pada indikator keamanan yang menggunakan timer internal tidak bekerja sesuai dengan perancangan.
5. Data ADC yang tersimpan di EEPROM ATMEGA8535 selisih maksimal 1ºC.
5.2 Saran
Pengembangan lebih lanjut pada alat ini dapat dilakukan dengan lebih mengaplikasikan dan menyesuaikan pada perangkat mobil dalam keadaan yang sesungguhnya.
Pemahaman dalam hal penggunaan timer internal sangat membantu keberhasilan dalam
pembuatan alat ini. Selain itu, salah satu faktor keberhasilan dalam pembuatan suatu alat
terletak pada komponen alat yang sesuai dengan perancangan, kesesuaian ini dapat diperoleh
dengan melakukan pengukuran awal komponen.
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Thomas Joko Lelana
Nomor Mahasiswa : 045114064
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universi-tas Sanata Dharma karya ilmiah saya yang berjudul :
PENGENDALI UTAMA CAR IMMOBILIZER DENGAN RFID BERBASIS ATMEGA8535
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, me-ngalihkan dalam ben-tuk media lain, mengelolanya dalam benben-tuk pangkalan data, mendistribusikan secara terba-tas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tan-pa perlu meminta ijin dari saya maupun memberikan royalti ketan-pada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 9 Maret 2010 Yang menyatakan
( Thomas Joko Lelana)
LAMPIRAN
Perbandingan Data Tegangan Masukan dan Data ADC Tersimpan
Tegangan masuk 0 V
Data tersimpan 07 0 = 0000 0111 0000 = 0000 0111 00 xx = 28
= 2.5
1024 28 x
= 0.068
Tegangan masuk 0.72 V
Data tersimpan 50 C = 0101 0000 1100 = 0101 0000 11 xx = 323
= 2.5
1024 323 x
= 0.788 Data ADC yang tersimpan
Data ADC yang tersimpan
Tegangan 1v = 1.074
Data tersimpan 6E 0 = 0110 1110 0000 = 0110 1110 00 xx = 440
= 2.5
1024 440 x
= 1.074
Tegangan 1.20v + 1.267
Data tersimpan 81 C = 1000 0001 1100 = 1000 0001 11 xx = 28
= 2.5
1024 519 x
= 1.267 Data ADC yang tersimpan
Data ADC yang tersimpan
Tegangan 1.846
Data tersimpan C1 C = 1100 0001 1100 = 1100 0001 11 xx = 28
= 2.5
1024 775x
= 1.892
Perbandingan Data Suhu Terukur dan Data ADC Tersimpan
Saat Suhu = 31°C
26 C = 0010 0110 1100 = 0010 0110 11 xx = 155
56 . 1024 2
155 x
Vinput
387 . 0
Vinput v = 38.7°C Data ADC yang tersimpan Data ADC yang tersimpan
Saat Suhu = 35°C Data ADC yang tersimpan Data ADC yang tersimpan
Saat Suhu = 50°C Data ADC yang tersimpan
Data ADC yang tersimpan
Saat Suhu = 80°C Data ADC yang tersimpan
Data ADC yang tersimpan
Saat Suhu = 115°C Data ADC yang tersimpan
Data ADC yang tersimpan
Saat Suhu = 134°C
8D 0 = 1000 1101 0000 = 1000 1101 00 xx = 564
56 . 1024 2
564 x
Vinput
41 . 1
Vinput v = 141°C Data ADC yang tersimpan
Listing Program
//==================================================
//
// File Name : '1-1'
// Title : ATmega 8535 in Car Immobilizer RFID // Author : Thomas Jangis
// Created : 2009-06-04 // Revision : 2009-03-02
// Target MCU : Atmel AVR ATMEGA8535 //
//==================================================
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/interrupt.h>
#include <compat/deprecated.h>
#include <inttypes.h>
#include <stdio.h>
#include <util/delay.h>
//
volatile unsigned char counter_ind=0;
volatile unsigned char var_indi;
volatile unsigned char sta_rfid, sta_ind=0;
volatile unsigned char rfid;
volatile unsigned int sta_mode=0;
volatile unsigned int sta_maling=0;
volatile unsigned long int baca_adc1=0, baca_adc2=0;
volatile unsigned char data_adc1=0, data_adc2=0;
volatile unsigned int alamat=0;
//=========================================================
// init timer internal void timer_init(void) {
TCCR0|=(0<<WGM01)|(0<<WGM00)|(0<<COM01)|(0<<COM00)|(1<<
CS02)|(0<<CS01)|(1<<CS00);
TCNT0=0X3C;
TIMSK=(0<<OCIE0)|(1<<TOIE0);
TIFR=0x00;
}
//interupsi timer internal ISR (TIMER0_OVF_vect) {
if (sta_ind==1) {
TCNT0=0XB1;
sbi(PORTC,0);
if (counter_ind<20) {
counter_ind++;
//
if (counter_ind>=10)
{cbi(PORTC,0);}
else if (counter_ind<10) {sbi(PORTC,0);}
}
else if (counter_ind>=20) {counter_ind=0;}
}
else if (sta_ind==0) {
cbi(PORTC,0);
} }
// INIT DELAY void delay_ms(int ms) {
for (int i=0; i<=ms;i++) {
_delay_ms(1);
};
}
// INIT ADC void adc_init(void) {
ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX3)|(0<<MU X2)|(0<<MUX1)|(0<<MUX0);
ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE);
}
// BACA RFID void baca(void) {
sta_rfid=0; //nilai awal status rfid //
if(bit_is_set(PIND,7)) //baca RFID signal {
delay_ms (100); //tunda utk memastikan if(bit_is_set(PIND,7)) //uji ulang
{ sta_rfid = 1; //jika on, status=1 } }
//kesimpulan if (sta_rfid==1) { rfid=1; } else
{ rfid=0; } }
// MODE ALERT void alert(void) {
sta_ind=1;
sei();
if ((sta_mode==0) | (sta_mode==1))
{
sta_mode=2;
sbi(PORTC,5); // buzzer sbi(PORTC,6); // hazard delay_ms(400);
cbi(PORTC,5);
cbi(PORTC,6);
}
cbi(PORTC,7); // ig_sw mati sbi(PORTC,1); // pintu1 tutup sbi(PORTC,2); // pintu2 tutup sbi(PORTC,3); // pintu3 tutup sbi(PORTC,4); // pintu4 tutup //
// cek sensor pintu
if ((bit_is_set(PINB,0)) | (bit_is_set(PINB,1)) | (bit_is_set(PINB,2)) | (bit_is_set(PINB,3)))
{
sbi(PORTC,6); // hazard sbi(PORTC,5); // Alarm sta_maling=1;
//sbi(PORTD,6); // lampu ruang nyala }
}
// MODE NON ALERT void non_alert(void) {
sta_ind=0;
sei();
//cbi(PORTC,0); // mati indikator if (sta_maling==1)
{
sta_maling=0;
cbi(PORTC,5); // matikan Alaram cbi(PORTC,6); // matikan hazard cbi(PORTD,6); //lampu ruang padam }
if ((sta_mode==0) | (sta_mode==2)) {
sta_mode=1;
sbi(PORTC,5); // buzzer sbi(PORTC,6); // hazard
//sbi(PORTD,6); // lampu ruang nyala delay_ms(200);
cbi(PORTC,5);
cbi(PORTC,6);
} //
//POSISI kunci mobil
if(bit_is_clear(PIND,5)) // cek kunci starter {
//AUTOMATIC OPERATION
//================================================
//cek orang yg mengunci pintu
eeprom_write_byte(1,0); // memberi nilai nol pada alamat 1 eeprom_write_byte(0,0); // memberi nilai nol pada alamat 1 if(bit_is_set(PINA,1))
{ sbi(PORTC,1); }
if(bit_is_set(PINA,2))
{ sbi(PORTC,2); }
if(bit_is_set(PINA,3))
{ sbi(PORTC,3); }
if(bit_is_set(PINA,4))
{ sbi(PORTC,4); }
//cek pintu ada yang tertutup?
if ((bit_is_set(PINC,1)) | (bit_is_set(PINC,2)) | (bit_is_set(PINC,3)) | (bit_is_set(PINC,4)))
{ delay_ms(200); } //kalau tdk ada masalah
cbi(PORTC,1); // pintu1 buka cbi(PORTC,2); // pintu2 buka cbi(PORTC,3); // pintu3 buka cbi(PORTC,4); // pintu4 buka }
else {
//MANUAL OPERATION
//================================================
if(bit_is_set(PINA,1)) // PINTU 1
{ sbi(PORTC,1); }
else if(bit_is_clear(PINA,1))
{ cbi(PORTC,1); }
if(bit_is_set(PINA,2)) //PINTU 2
{ sbi(PORTC,2); }
else if(bit_is_clear(PINA,2))
{ cbi(PORTC,2); }
if(bit_is_set(PINA,3)) // PINTU 3
{ sbi(PORTC,3); }
else if(bit_is_clear(PINA,3))
{ cbi(PORTC,3); }
if(bit_is_set(PINA,4)) //PINTU 4
{ sbi(PORTC,4); }
else if(bit_is_clear(PINA,4))
{ cbi(PORTC,4); }
//
//Akses ADC
//baca ADC 10 bit baca_adc1= ADCW;
if(baca_adc1 > baca_adc2)
{
baca_adc2 = baca_adc1;
data_adc1 = ADCH;
data_adc2 = ADCL;
eeprom_write_byte((unsigned char *)0,data_adc1);
eeprom_write_byte((unsigned char *)1,data_adc2);
} }
//================================================
sbi(PORTC,7); // ig_sw nyala }
int main(void) {
//inisialisasi
PORTA=0XFF;
DDRA=0X00;
PORTB=0XFF;
DDRB=0X00;
DDRD=0x02;
PORTD=0xF7;
DDRC=0xFF;
PORTC=0x00;
sta_mode=0;
sta_maling=0;
//panggil adc
adc_init();
timer_init();
//loop truz while(1) {
baca(); //baca RFID if (rfid==1)
{ non_alert(); } else if(rfid==0)
{ alert(); } }
return(0);
}