Anda di halaman 1dari 23

Draft

PENGENDALIAN TEMPERATUR RUANGAN BERBASIS


MIKROKONTROLER ATMEGA8535

Sofian Yahya

Kelompok Keahlian Pengendalian Daya & Mesin Listrik


Departemen Teknik Elektro - Politeknik Negeri Bandung
Januari 2010
PENGENDALIAN TEMPERATUR RUANGAN BERBASIS
MIKROKONTROLER ATMEGA8535

I. Pendahuluan
Penggunaan mikrokontroler sangat luas, tidak hanya untuk akuisisi data melain-
kan juga untuk pengendalian motor-motor listrik, peralatan kantor, peralatan rumah
tangga, automobil, dan sebagainya. Hal ini disebabkan mikrokontroler merupakan
sistem mikroprosesor (yang didalamnya terdapat CPU, ROM, RAM dan IO) yang
telah terpadu pada satu keping, selain itu komponennya murah dan mudah diperoleh
di pasaran.
Aplikasi pengendalian/monitoring temperatur banyak digunakan dalam kehidup-
an sehari-hari, seperti pada peralatan kesehatan (inkubator bayi), proses kualitas
produksi pertanian/perkebunan (pengeringan teh, pengeringan kayu), ruang penga-
waten produksi perikanan, dan lain sebagainya.
Tujuan tulisan ini adalah membuat suatu simulator untuk mengendalikan tem-
peratur suatu ruangan dengan cara mengatur kerja fan dan pemanas pada setting
temperatur tertentu. Pengendalian akan dilakukan dengan mikrokontroler ATMega
8535, sedangkan sensor temperatur plant dengan menggunakan LM35DZ.

II. Landasan Teori


2.1 Mikrokontroler ATMega 8535

Perkembangan teknologi elektronika, khususnya dunia mikroelektronika telah maju


dengan pesat. Penemuan silikon menyebabkan bidang ini mampu memberikan sum-
bangan yang amat berharga bagi perkembangan teknologi elektronika. Atmel meru-
pakan salah satu vendor yang mengembangkan dan memasarkan produk mikro-
elektronika yang produknya banyak digunakan oleh para perancang di bidang elek-
tronika. Salah satu produknya adalah mikrokontroler, mikrokontroler generasi terak-
hir yang banyak di pasaran adalah AVR (Alf and Vegard’s Risc processor).
Mikrokontroler AVR ini memiliki arsitektur RISC (Reduce Instruction Set Computing)
delapan bit, di mana semua instruksi dikemas dalam kode 16-bit (16 bits word) dan
sebagian besar instruksi dieksekusi dalam 1 (satu ) siklus clock.
Secara umum, AVR dapat dikelompokkan dalam 4 kelas, yaitu keluarga ATTiny,
keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membe-
dakan masing-masing kelas adalah memori, peripheral dan fungsinya. Salah satu
mikrokontroler AVR yang sering dipakai adalah ATMega8 dan ATMega 8535.

2.1.1 Arsitektur ATmega 8535

Gambar 2.1 Blok Diagram fungsional ATmega8535


Dari gambar 2.1 dapat dilihat bahwa ATmega8535 memiliki bagian sebagai berikut:
1. Saluran I/O sebanyak 32 buah yaitu pada Port A, Port B, Port C dan Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga buah timer/counter dengan kemampuan pembanding.
4. CPU yang terdiri atas 32 register.
5. Watchdog timer dengan osilator internal
6. SRAM sebesar 512 byte.
7. Memori flash sebesar 8kb dengan kemampuan Read While Write.
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 512 byte yang dapat deprogram saat operasi.
11. Antarmuka komparator analog.
12. Port USART untuk komunikasi serial.

2.1.2 Fitur ATmega 8535


Kapabilitas detail ATmega8535 adalah sebagai berikut:
1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal
16Mhz.
2. Memori flash sebesar 8kb, SRAM sebesar 512 byte dan EEPROM
(Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.
3. ADC internal dengan fidelitas 10bit sebanyak 8 channel.
4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mpbs.
5. Enam pilihan mode sleep menghemat penggunaan daya listrik

2.1.3 Konfigurasi Pin ATmega 8535


Konfigurasi pin ATMega8535 bisa dilihat pada gambar 2.2, dari gambar ter-
sebut dapat dijelaskan secara fungsional konfigurasi pin ATMega8535 sebagai
berikut:
1. VCC : Supply tegangan digital.
2. GND : Ground
3. Port A : Port A sebagai input analog ke A/D konverter. Port A juga sebagai 8-
bit bi-directional port I/O, jika A/D konverter tidak digunakan.
Pin-pin port dapat menyediakan resistor-resistor internal pull-up.
Ketika port A digunakan sebagai input dan pull eksternal yang
rendah akan menjadi sumber arus jika resistor- resistor pull-up
diaktifkan. Pin-pin port A adalah tri-state ketika kondisi reset
menjadi aktif sekalipun clock tidak aktif.
4. Port B : Port B adalah port I/O 8-bit bi-directional dengan resistor-resistor
internal pull-up. Buffer output port B mempunyai karaketristik drive
yang simetris dengan kemampuan keduanya sink dan source yang
tinggi. Sebagai input, port B yang mempunyai pull eksternal yang
rendah akan menjadi sumber arus jika resistor- resistor pull-up
diaktifkan. Pin-pin port B adalah tri- state ketika kondisi reset
menjadi aktif sekalipun clock tidak aktif.
5. Port C : Port C adalah port I/O 8-bit bi-directional dengan resistor-resistor
internal pull-up. Buffer output port C mempunyai karaketristik drive
yang simetris dengan kemampuan keduanya sink dan source yang
tinggi. Sebagai input, port C yang mempunyai pull eksternal yang
rendah akan menjadi sumber arus jika resistor- resistor pull-up
diaktifkan. Pin-pin port C adalah tri-state ketika kondisi reset menjadi
aktif seklipun clock tidak aktif. Jika antarmuka JTAG enable,
resistor-resistor pull-up pada pin-pin PC5(TDI), PC3(TMS), PC2
(TCK) akan diktifkan sekalipun terjadi reset.
6. Port D : Port D adalah port I/O 8-bit bi-directional dengan resistor-resistor
internal pull-up. Buffer output port D mempunyai karaketristik drive
yang simetris dengan kemampuan keduanya sink dan source yang
tinggi. Sebagai input, port D yang mempunyai pull eksternal yang ren-
dah akan menjadi sumber arus jika resistor-resistor pull-up diaktif-
kan. Pin-pin port D adalah tri- state ketika kondisi reset menjadi aktif
seklipun clock tidak aktif.
7. Reset : Sebuah low level pulsa yang lebih lama daripada lebar pulsa mini-
mum pada pin ini akan menghasilkan reset meskipun clock tidak
berjalan.
8. XTAL1 : Input inverting penguat Oscilator dan input intenal clock operasi
rangkaian.
9. XTAL2 : Output dari inverting penguat Oscilator.
10. AVCC : Pin supply tegangan untuk PortA dan A/D converter. Sebaiknya
eksternalnya dihubungkan ke VCC meskipun ADC tidak diguna-
kan. Jika ADC digunakan seharusnya dihubungkan ke VCC melalui
low pas filter.
11. AREF : Pin referensi analog untuk A/D konverter.

Gambar 2.2 Pin ATmega8535

2.1.4 Port sebagai input/output digital

ATmega16 mempunyai empat buah port yang bernama PortA, PortB, PortC,
dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan
internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn,
dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili
nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O
address PORTx, dan bit PINxn terdapat pada I/O address PINx. Bit DDxn dalam
regiter DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset
1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi
sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin
input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up,
PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port
adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin
terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila
PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port
akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0,
PORTxn=0) ke kondisi output high
(DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi
pull-up enabled (DDxn=0, PORTxn=1)atau kondisi output low (DDxn=1,
PORTxn=0). Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya,
selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara
sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah,
maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up
dalam semua port. Peralihan dari kondisi input dengan pull- up ke kondisi output
low juga menimbulkan masalah yang sama. Kita harus menggunakan kondisi tri-
state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0)
sebagai kondisi transisi.
Tabel 1.1 Konfigurasi pin port

Bit 2 – PUD : Pull-up Disable

Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan
walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up
(DDxn=0, PORTxn=1).

2.1.5 Port sebagai Analog Digital Converter (ADC)


ATMega8535 mempunyai ADC internal dengan fitur sebagai berikut:





• !
• " " !
• #
• $ "

• % "
Untuk menjembatani antara mikrokontroler dengan dunia analog, maka
sinyal informasi yang berbentuk analog tersebut harus terlebih dahulu dikonversi
menjadi digital, sehingga mikrokontroler dapat memanipulasi data tersebut. Untuk
mengubah sinyal analog tersebut menjadi digital, maka diperlukan perangkat yang
dinamakan ADC.
Dalam mikrokontroler AVR ATMega 8535 di dalamnya terdapat fasilitas ADC
sebesar 10 bit. Dengan ADC ini, maka dapat membuat sistem tanpa melakukan
tambahan rangkaian eksternal. Dengan demikian maka, sistem hardware yang akan
dirancang akan lebih minimalis, dan juga tentunya menghemat energi. ADC pada
mikrokontroler AVR menyatu pada port mikrokontroler, sehingga bila kita ingin
memanfaatkan fasilitas ADC, maka kita tidak bisa menggunakan port yang
bersangkutan untuk port I/O. Untuk mengaktifkan fasilitas ADC, maka harus
mengeset register-register yang ada pada ADC. Pada mikrokontroler AVR, referensi
untuk tegangan ADC dapat dipilih sesuai dengan yang diinginkan (dengan tegangan
referensi maksimum 5 volt). Tegangan yang terbaca merupakan sensor arus yang
diubah dari yang semula fungsi arus menjadi fungsi tegangan. Perhitungan nilai
yang terbaca dihitung dengan menggunakan rumus:

( AV − Offset ) x 2 n
DN =
Span
Dimana: AV = nilai analog
Offset = nilai analog minimum
Span = Selisih antara nilai maksimum dengan minimum
n = Jumlah bit dalam kode digital
2.1.6 Codevision AVR C. Compiler
Codevision AVR C. Compiler (CVAVR) merupakan kompiler bahasa C untuk
AVR. Kompiler ini cukup memadai untuk belajar AVR, karena selain mudah
penggunaannya juga didukung berbagai fitur yang sangat membantu dalam
pembuatan software untuk keperluan pemrograman AVR.
CVAVR ini dapat mengimplementasikan hampir semua instruksi bahasa C
yang sesuai dengan arsitektur AVR, bahkan terdapat beberapa keunggulan
tambahan untuk memenuhi keunggulan spesifik dari AVR. Hasil kompilasi objek
CVAVR bisa digunakan sebagai source debug dengan AVR studio debugger dari
ATMEL.

2.2 Transducer (LM35-DZ)


Transducer LM35 memiliki karakteristik sebagai pengubah besaran
temperatur (tipe DZ bekerja dalam satuan Celcius) ke besaran tegangan dalam Volt
DC. Tranducer ini akan mengeluarkan tegangan 10mV setiap derajat kenaikan
temperatur. Contohnya apabila temperatur pada thermometer menunjukan 30°C,
maka ukuran tegangan keluarannya adalah 0,3V. Pada suplai tegangan 5V, LM35
mampu mendeteksi temperatur minimum 2°C dan temperatur maksimum 150°C.
Tingkat akurasinya kurang lebih 1/4°C pada
temperatur ruang.

Gambar 2.3 Bentuk fisik LM35 DZ. Gambar 2.4 Grafik perbandingan tegangan
Keluaran dengan temperatur pada LM35
Grafik perubahan tegangan yang dikeluarkan adalah semakin tinggi temperaturnya,
maka semakin tinggi pula tegangan yang dikeluarkan.

2.3 Pemanas
Pemanas merupakan suatu alat yang menghasilkan panas dari suatu
hambatan yang dialiri arus listrik. Dengan besar hambatan yang tetap, panas yang
dihasilkannya pun konstan. Pada alat ini sistem pemanas disimulasikan dengan
lampu halogen. Jika panas tersebut terus-menerus diberikan pada suatu ruangan
tertutup, maka temperatur dalam ruangannya akan meningkat walaupun udara
panas yang dihembuskan alat tersebut konstan. Semakin lama waktu
penghembusannya, maka semakin panas pula temperatur udara dalam ruangan
tersebut.

2.4 Kipas Ventilasi


Kipas merupakan alat yang dapat menghembuskan udara, sehingga menghasilkan
angin. Kipas digerakkan dengan motor listrik sederhana, yang apabila diberi
tegangan akan menginduksi belitan kemudian bergerak karena adanya fluks medan
magnet.
Kipas ventilasi pada sistem rumah kaca digunakan untuk mendinginkan temperatur
udara apabila terlalu tinggi. Selain itu, kipas tersebut juga berguna untuk sirkulasi
udara dari luar ke dalam. Kipas ini dipasang pada bagian atas dari ruangan, karena
angin yang dihasilkan diharapkan dapat rata menyebar keseluruh ruangan.

2.5 Optocoupler dan Relay

Optocoupler adalah suatu Integraded Circuit (IC) yang meskipun secara fisik
menjadi satu, tetapi sebenarnya di dalamnya terdiri dari dua bagian yang terpisah
antara antara bagian cahaya dengan bagian deteksi sumber cahaya. Pada
Optocoupler terdapat isolasi elektris, yaitu kondisi yang terisolasi antara masukan
dan keluarannya (electrical isolation). Penggunaannya memungkinkan untuk
memisahkan dua bagian dengan tegangan kerja berbeda.
Gambar 2.5 Pin Optocoupler 4N25

Bagian pemancar atau transmitter dibangun dari sebuah led infra merah
untuk mendapatkan ketahanan yang lebih baik daripada menggunakan led biasa.
Sensor ini bisa digunakan sebagai isolator dari rangkaian tegangan rendah
kerangkaian tegangan tinggi.
Penggunaan dari Optocoupler tergantung dari kebutuhannya. Ada berbagai
macam bentuk, jenis, dan type. Seperti MOC 3040 atau 3020, 4N25 atau 4N33dan
sebagainya. Optocoupler type 4N25 ini mempunyai tegangan isolasi sebesar 2500
Volt dengan kemampuan maksimal led dialiri arus fordward sebesar 80 mA. Namun
besarnya arus led yang digunakan berkisar antara 15mA - 30 mA dan untuk
menghubungkan-nya dengan tegangan +5 Volt diperlukan tahanan pembatas.

Relay berfungsi untuk menghubungkan atau memutus aliran arus listrik yang
dikontrol dengan memberikan tegangan dan arus tertentu pada koilnya. Relay yang
digunakan relay DC dengan tegangan koil 5V DC, arus yang diperlukan sekitar 140
mA.

2.6 LCD

LCD merupakan peralatan yang dapat menampilkan hasil (output) dari


mikrokontroler. LCD juga bisa diartikan sebagai alat interaksi antara manusia
dengan mikrokontroler. LCD terdapat berbagai macam tipe. LCD ini mengkonsumsi
daya yang sangat rendah.
Gambar 2.6 LCD

Tabel 1.2 Fungsi 16 Pin LCD

"# "#
"# $ !
% & "' & $
( )* "' * +$
+ )* "'
, )* "'
)* "'
)* "'
)* "'
)*% "'
)*( "'
- .* !
% / 0 1 * !
D1-D7 pada LCD berfungsi untuk menerima data dari mikrokontroler. Untuk
menerima data, pin 5 pada LCD (RD) harus berlogika 0 (low), dan berlogika 1(high)
untuk mengirim data mikrokontroler. Setiap kali menerima / mengirim data, untuk
mengaktifkan LCD diperlukan sinyal E (Chip Enable) dalam bentuk perpindahan
logika 1 ke logika 0.
Sedangkan pin Register Selector (RS), berguna untuk memilih
Instruction Register (IR) atau Data Register (DR). Jika nilai RS Low (0) dan RD Low
(0), maka kan dilakukan operasi penulisan data ke DDRAM atau CGRAM.
Sedangkan jika RS berlogika High(1) dan RD berlogika High (1), akan membaca
data dari DDRAM atau CGRAM ke register DR. Karakter yang akan ditampilkan ke
display disimpan di memori DDRAM. Lokasi karakter yang akan ditampilkan ke
display mempunyai alamat tertentu pada memori DDRAM.

Gambar 2.7 Set up LCD dengan CodeVisionAVR

Contoh program menampilkan tulisan di LCD:


// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

// Declare your global variables here


void main(void)
{
lcd_init(8);
lcd_gotoxy(0,0);
lcd_putsf("Sofian");
lcd_gotoxy(0,1);
lcd_putsf("Yahya");
while (1)
{
// Place your code here
};
}

III. Perancangan dan Implementasi

Rangkaian pengendali temperatur ruangan Berbasis Mikrokontroler ATMega-


8535 dirancang sebagai sistem kontrol yang bekerja secara otomatis dengan lup
tertutup (otomatic closed-loop control system). Sistem ini berfungsi sebagai pen-
dingin ruangan yang bekerja secara otomatis berdasarkan range temperatur yang
telah ditetapkan (Gambar 3.1) .

Gambar 3.1 Sistem Pengendali Temperatur Berbasis Mikrokontroler


Mikrokontroler sebagai pengendali, mendapatkan masukan range temperatur yang
akan dijadikan acuan di dalam proses. Range temperatur tersebut merupakan
temperatur ruangan yang akan terus dipertahankan, yang memiliki temperatur batas
atas dan temperatur batas bawah, sedangkan temperatur yang akan dijadikan
pembanding adalah temperatur ruangan yang diindera oleh sensor secara berkala
dan terus menerus (real-time). Hasil penginderaan temperatur oleh sensor yang
berupa data analog dikonversikan terlebih dahulu oleh ADC (analog to digital
conversion) ke dalam bentuk data digital. Dalam sistem ini sensor dan ADC
berfungsi sebagai elemen ukur. Bila temperatur ruangan yang diindera lebih kecil
dari temperatur batas bawah, maka alat pemanas diperintahkan untuk bekerja oleh
pengendali, sebaliknya bila temperatur melebihi batas atas maka pengendali akan
memerintahkan fan untuk bekerja. Besar kecilnya nilai galat akan mempengaruhi
kinerja dari kendalian berdasarkan instruksi yang diberikan oleh pengendali.
Semakin besar nilai galat, maka semakin besar pula beban kerja dari kendalian
untuk menurunkan temperatur ruangan. Saat mulai diaktifkan, sistem pengendali
temperatur ruangan berbasis mikrokontroler ini akan mengontrol temperatur ruangan
secara terus-menerus sampai sistem ini dimatikan.

3.1 Perangkat Keras


3.1.1 Rangkaian Mikrokontroler & LCD

Rangkaian mikrokontroler yang digunakan pada simulasi sistem pemanas


ruangan ini adalah Stater kit DT-COMBO AVR-51, yang merupakan development
tool yang bisa digunakan untuk mikrokontroler ATMega8535.
Liquid Crystal Display (LCD) yang digunakan pada stater kit ini adalah LCD
dengan karakter 8 kolom x 2 baris dengan LCD controller kompatibel HD44780.
Gambar 3.2 Rangkaian LCD
3.1.2 Rangkaian Optocoupler dan Relay

Gambar 3.3 Rangkaian Optocoupler dan Relay

Nilai resistor basis yang diperlukan:


Transistor 2N3904: DC = 100
IC sat = 140 mA
VOH = 4,2 V
VBE = 0,7 V
Maka,
IC sat 140 mA
I sat = = = 1,4 mA
DC 100
IB = 5. I sat = 5. 1,4 mA = 7 mA
VOH − VBE 4,2 − 0,7
RB = = = 500
IB 7 mA
Umumnya resistor yang mudah diperoleh dipasaran ialah 270 dan 470 ,
jadi digunakan resistor 470 sebagai RB atau R2. Sedangkan berdasarkan hasil
percobaan nilai resistor R1, R3, dan R4 adalah:
R1 = 470
R3 = 470
R4 = 10 k

3.2 Perangkat Lunak

Mikrokontroler melakukan proses pengeksekusian program secara internal.


Program yang dibuat dengan menggunakan perangkat lunak CodeVisionAVR yang
berbasis bahasa C, program dituliskan ke dalam flash memory ATMega8535.
Program ini berfungsi untuk membaca, mengolah data yang diterima dari port
masukan, dan mengirimkan data yang telah diolah melalui port keluaran sesuai
dengan alurnya berdasarkan algoritma yang telah disusun (Lihat gambar 3.4).
!

"

# ) $ %&
' $$(

* # )
& ' +(

, )
$ ' +(

Gambar 3.4 Diagram Alir Program Pengendali Temperatur


Dibawah ini merupakan penggalan dari program untuk Pengendalian Temperatur
Ruang dengan Mikrokontroler ATMega8535.
/*****************************************************
Project : Pengaturan Temperatur
Version : V01
Date : Januari 2010
Author : Sofian Yahya

Comments: Temperatur dijaga konstan antara 30 s.d 36


derajat celcius. Bila Temp lebih dari 36
derajat FAN ON dan bila kurang dari 30 drjt
Lampu Halogen (Heater) ON.
Chip type : ATmega8535
Program type : Application
Clock frequency : 11,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/

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

// Alphanumeric LCD Module functions


#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

#define ADC_VREF_TYPE 0x60

// Read the 8 most significant bits


// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here
char buf[33]; //deklarasi variabel buf untuk LCD

void main(void)
{
// Declare your local variables here
unsigned int ADC_sum,ADC_output, i,temp_skrg,temp_skrg1;

PORTA=0x00;
DDRA=0x00;

PORTB=0x00;
DDRB=0xFF;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

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

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

MCUCR=0x00;
MCUCSR=0x00;

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


TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 687,500 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;

// LCD module initialization


lcd_init(8);
lcd_gotoxy(0,0);
lcd_putsf("Temp : ");

while (1)
{
// Place your code here
delay_ms(900); // Tunda 900 ms;
ADC_sum=0; // Inisialisasi ADC_sum;
for (i=0;i<10;i++) // Mulai untuk menjumlahkan 10 ;
{ // samples ADC;
delay_ms(10); // Ambil sample ADC setiap 10 ms
ADC_sum+=read_adc(0); // Baca Output ADC dari PA0
// dan jumlahkan ke ADC_sum
}
ADC_output=ADC_sum/10; // Rata-rata Output ADC

temp_skrg=("%.2i ",ADC_output);
temp_skrg1= temp_skrg*2;
lcd_gotoxy(0,1);
sprintf(buf,"%-2u%cC",abs(temp_skrg1),0xdf); //menyimpan string ke SRAM
lcd_puts(buf); //menampilkan ke LCD

if(ADC_output<0xf)
{PORTB=0xfd;} // Bila Temp kecil 30 derajat
// PORTB.0 Heater "ON"
if((ADC_output>0xf)&&(ADC_output<0x12))
{PORTB=0xff;} // Bila Temp ada antara 30 s.d 36 derajat
// LED PORTB "OFF"
if(ADC_output>0x12)
{PORTB=0xfe;} // Bila Temp besar dari 36 derajat
// LED PORTB.1 Fan "ON"
}
}

IV. Pengujian
Pengujian dilakukan dengan memasang pin-pin LM35DZ ke mikrokontroler yang te-
lah diisi dengan program utama dan memanaskan sensor untuk mendapatkan peru-
bahan pada outputnya.
Tabel 4.1 Pengujian LM35DZ
Temp LCD Vout LM35 Hex
(º C) (Volt)
24 0,242 C
26 0,268 D
28 0,282 E
30 0,307 F
32 0,322 10
34 0,343 11
36 0,360 12
38 0,380 13
40 0,402 14
42 0,422 15
44 0,442 16
Berdasarkan data pengujian seperti diperlihatkan pada tabel diatas, LCD dapat
mampu menunjukkan nilai temperatur yang disensor oleh LM35DZ tidak jauh dari
spesifikasi yaitu sebesar 10mV/ºC.

Anda mungkin juga menyukai