Anda di halaman 1dari 10

UAS FISIKA INSTRUMENTASI

PENGENDALI HEATER DENGAN MENGGUNAKAN


MICROCONTROLLER AT89C51

Disusun Oleh :

Dika Reza Pahleva (140310160095)

UNIVERSITAS PADJADJARAN
2018
PENGENDALI HEATER DENGAN MENGGUNAKAN
MICROCONTROLLER AT89C51
1. Pendahuluan

Besaran temperatur merupakan besaran fisis penting untuk diketahui nilainya secara
pasti. Sebagai contoh dalam bidang peternakan untuk menentukan nilai besaran suhu eraman
pada telur ayam optimum pada suhu 37,8°C. Hal tersebut jika dimonitoring oleh peternak sangat
tidak memungkinkan mengingat suhu dalam eraman harus dijaga konstan.

Aplikasi lain dalam bidang pembangunan dalam elevator (Lift), menggunakan TPS
(temperature powerful sensors) digunakan dalam sebuah control panel pada sebuah elevator yang
telah dipasang thermostat untuk mengatur panas. Sistem tersebut bekerja ketika temperature pada
control panel pada lift mengalami suhu yang meningkat. Aktuator yang digunakan merupakan
MQT8K 60YB yang akan menyalakan kipas ketika temperature mencapai 60°C dan kipas akan
mati ketika temperature mencapai 55°C

2. Software dan Hardware


2.1.Software
Software yang digunakan yaitu Proteus 8 Professional

Gambar 1. Tampilan awal Proteus 8 Professional


2.2.Hardware

Hardware (komponen) untuk membuat sistem kendali heater berupa komponen aktif dan
komponen fasif dalam elektronika.
Gambar Nama hardware dan Fungsi
2 kapasitor dengan nilai kapasitansi
33 pF (untuk mengatur clock dari
mikroprosesor)
Crystal 12 MHz, untuk
meningkatkan clock dari
mikrocontroler
Mikrocontroller AT89C51
merupakan mikrocontroler 8 bit yang
berfungsi untuk mengatur proses
pada sistem

LCD, untuk menampilkan nilai suhu


dari sensor dan suhu setpoint

ADC 0808, berfungsi sebagai


konversi besaran fisis (dalam hal ini
tegangan) menjadi besaran digital
(berupa biner), ADC yang digunakan
merupakan ADC 8 bit

IC 741 (Op –Amp) berfungsi sebagai


penguat tegangan, dalam hal ini
digunakan rangkaian non inverting
dengan faktor penguatan 3,3
IC ULN 2803, untuk menyalakan
relay menyalakan atau mematika
tingkat sinyal yang lebih tinggi di
sisi yang berlawanan

Dua buah resistor (R2 = 14 kΩ) dan


(R1 = 6 kΩ), sebagai faktor penguat
bekerja sama dengan op-amp
Oven, berfungsi sebagai heater yang
dilengkapi dengan sensor suhu yang
bekerja sama seperti LM35 dan
memiliki resolusi yang sama

Dua buah push – button, untuk set


point suhu dinaikan atau diturunkan
nilai setpointnya

Relay yang berfungsi sebagai saklar


otomatis

Lm35 berfungsi sebagai sensor suhu


yang dipakai

Setiap komponen diatas memiliki perannya masing – masing, sebagai contoh untuk sensor yang
dipakai yaitu lm35. Sementara itu digunakan juga pengkondisi sinyal (dalam hal ini sinyal
dikuatkan), setelah itu sinyal hasil penguatan ini akan dimasukan kedalam ADC 0808 untuk
dikonversi menjadi besaran digital dan kemudian akan masuk melalui mikrocontroler,
Mikrocontroler akan memberikan keputusan berupa sinyal tinggi dan rendah akan disampaikan
kepada Aktuator, selain itu juga hasil pengukuran mikrocontroler ini akan disimpan atau
ditampilkan pada layar LCD. Untuk kontrolnya digunakan tombol push button.
3. Rangkaian Komponen
3.1.Sensor
Sensor yang digunakan berada dalam oven lm 35, sensor lm 35 sendiri memiliki resolusi
10 mV/°C, apabila sistem pengendali heater dibuat antara suhu 0°C - 150°C, maka
tegangan maksimum yang hanya dikeluarkan oleh lm 35 adalah 1,5 Volt.

3.2. Rangkaian pengkondisi sinyal


Rangkaian pengkondisi sinyal berupa dua resistor yang memiliki besar 6 kΩ dan 14 kΩ,
serta dilengkapi dengan IC 741 (Op – amp). Jenis pengkondisi sinyal yang digunakan
adalah penguat non – inverting.

Gambar 2. Penguat non inverting

Penguatan yang terjadi adalah:

Apabila nilai numerik tersebut dimasukan, maka penguatannya bernilai 3,3. Hal tersebut
dilakukan agar tegangan output maksimum LM35 sebesar 5 V.
3.3. Rangkaian ADC
ADC yang digunakan berupa ADC 0808 yang memiliki 8 bit data.

Gambar 3. ADC 0808

Dengan menggunakan clock sebesar 100 Hz dan perhitungan umum untuk rumus ADC
adalah:

Vout = tegangan keluaran ADC (V)


n = jumlah byte
N = bit ADC
Vref = tegangan referensi (V)
Sebagai contoh untuk nilai n = 1 byte, dan untuk ADC 8 bit (N = 8) dengan Vref = 5 V,
maka untuk kenaikan setiap 1 byte adalah sekitar 19,6 mV tiap kenaikan satu bitnya.

3.4. Rangkaian Mikrocontroller


Mikrocontroller yang digunakan adalah AT89C51 yang akan memproses sinyal digital
yang diberikan oleh ADC melalui Port 0. Output nilai dari sensor akan ditampilkan pada
LCD, dan pengaturan akan dilakukan oleh tombol push button, sedangkan untuk
aktuatornya akan dialirkan tengangan sesuai dengan nilai dari suhu yang terbaca oleh
sensor.
Gambar 4. Mikrocontroller AT89C51

3.5.Output dan Aktuator


Untuk Output sendiri ditampilkan pada LCD sedangkan untuk actuator menggunakan
relay yang berfungsi sebagai saklar otomatis yang akan menyalakan heater.

Gambar 5. LCD dan Relay

4. Rangkaian Proteus & source code program 4.1.Rangkaian proteus

Gambar 6. Sistem rangkaian pengotrol suhu


4.2.Source code program
; **********************************************************************

adc_data EQU P0 ; Port input ADC


lcd EQU P1 ; Port output LCD
oe EQU P2.0 ; Pin Output Buffer
eoc EQU P2.1 ; Pin End Of Conversion
start EQU P2.2 ; Pin Start Conversion
ale EQU P2.3 ; Pin Address Latch Enable
rs EQU P2.6 ; Pin Register Select
en EQU P2.7 ; Pin Enable Signal
aktuator EQU P2.4 ; Pin kendali aktuator (logic)
t_up EQU P3.2 ; Tombol setting T naik
t_down EQU P3.3 ; Tombol setting T turun

ORG 000H ; R0 = Nilai Temperatur Set


; R1-R3 = Nilai temporary, delay
; R4-R6 = Nilai Hasil Konversi
; R7 = Nilai Temperatur Sensor
; **********************************************************************

def: MOV adc_data, #0FFH ; Port 0 sebagai input


SETB eoc ; EOC sebagai input
CLR ale ; ALE sebagai output
CLR oe ; OE sebagai output
CLR start ; start sebagai output
CLR aktuator ; Aktuator sebagai output
init: LCALL lcdint ; Inisialisasi LCD
MOV R0, #100 ; Nilai Tset awal 100 degC
input: MOV C, t_up
JNC naik
MOV C, t_down
JNC turun
JMP adc
naik: MOV A, R0 ; Tset naik 1 degC
INC A
MOV R0, A
JMP adc

turun: MOV A, R0 ; Tset turun 1 degC


DEC A
MOV R0, A
adc: SETB ale ; Set aktif ALE
SETB start ; Mulai konversi
CLR ale
CLR start
JB eoc, $ ; Tunggu sampai akhir konversi
JNB eoc, $
SETB oe ; Set baca sinyal
MOV R7, adc_data ; Simpan data di R7
send: MOV SCON, #52H
MOV TMOD, #20H
MOV TH1, #-26 ; Set baud rate 1200
SETB TR1
MOV A, R7
MOV SBUF, A ; Kirim nilai ADC temperatur

MOV A, R7 ; Konversi data ADC menjadi Temperatur (dT=10degC)


MOV B, #17
DIV AB
MOV B, #10
MUL AB
MOV R7, A

line1: MOV A, #00H ; Tampilan baris 1


LCALL adrs
MOV DPTR, #txt1
LCALL wr_str
MOV A, R7
LCALL conv
LCALL dsply

line2: MOV A, #40H ; Tampilan baris 2


LCALL adrs
MOV DPTR, #txt2
LCALL wr_str
MOV A, R0
LCALL conv
LCALL dsply

out: MOV A, R7
MOV B, R0
CJNE A, B, less ; Cek nilai R0 (Tset) dan R7 (Tsensor)
JMP over ; R7=R0, loncat ke over
less: JNC over
CLR aktuator ; R7<R0, aktuator mati
JMP wait
over: SETB aktuator ; R7>R0, aktuator nyala

wait: lcall ldelay ; Tunggu tampilan stabil


LJMP input

; **********************************************************************

conv: MOV B, #10 ; Konversi HEX-to-ASCII (+30H)


DIV AB
MOV R6, B ; Satuan
MOV B, #10
DIV AB
MOV R5, B ; Puluhan
MOV R4, A ; Ratusan
RET
dsply: MOV A, R4 ; Most significant digit
ADD A, #30H
CALL wr_chr
mov A, R5
ADD A, #30H
CALL wr_chr
mov A, R6 ; Least significant digit
ADD A, #30H
CALL wr_chr
MOV A, #0DFH
CALL wr_chr
MOV A, #'C'
CALL wr_chr
RET
lcdint: MOV A, #38H ; Set Fungsi LCD
LCALL wr_cmd
MOV A, #0CH ; Display ON/OFF dan kursor
LCALL wr_cmd
MOV A, #06H ; Mode input karakter
LCALL wr_cmd
RET
lcdclr: MOV A, #01H ; Hapus tampilan LCD
LCALL wr_cmd
RET

wr_cmd: CLR RS ; Tulis command LCD


MOV P1, A
SETB EN
CLR EN
LCALL delay
RET

wr_chr: SETB RS ; Tulis karakter


MOV P1, A
SETB EN
CLR EN
LCALL delay
RET
wr_str: MOV R1, #0 ; Tulis string
rpt: MOV A, R1
MOVC A, @A+DPTR
JZ exit
LCALL wr_chr
INC R1
LJMP rpt
exit: RET

adrs: ADD A, #80H ; Go to address


LCALL wr_cmd
RET

delay: MOV TMOD, #11H ; Aktifkan Timer Mode Control (SFR)


MOV TH0, #HIGH(-3000) ; Delay Timer
MOV TL0, #LOW(-3000)
SETB TR0
JNB TF0, $
CLR TF0
CLR TR0
RET

ldelay: MOV R1, #0 ; Delay loop


MOV R2, #0
MOV R3, #0
dly1: DJNZ R1, dly1
dly2: DJNZ R2, dly2
dly3: DJNZ R3, dly3
RET
txt1: DB 'T_SENSOR = ',0H ; String
txt2: DB 'T_SET = ',0H
end

5. Analisa
Ketika simulasi dimulai, temperatur dapat diset sesuai dengan apa yang diinginkan, untuk
suhu sensor sendiri akan naik seiring dengan heater dipanaskan, ketika mencapai suhu
yang telah diset, relay akan berpindah saklar dan kemudian heater akan mati. Ketika suhu
mulai turun lagi, heater akan menyala kembali menjaga suhu yang telah di set (diatur).
Apabila ingin mengubah suhu setpointnya dapat dilakukan dengan cara menaikan atau
menurunkan tombol push button yang digunakan.