HASIL DAN PEMBAHASAN
4.3 Analisis Perubahan Suhu
0 0.02 0 50 100 150 200 Tinggi badan (cm)
Gambar 4.2 Grafik hubungan antara Error dengan Tinggi badan
b 2 bahwa suhu media rambatan gelombang
4.3 Analisis Perubahan Suhu
Pengujian alat pengukur tinggi badan ini dilakukan dengan suhu ruangan yang tetap. Seperti dijelaskan pada ba
berpengaruh pada cepat rambat gelombang ultrasonik sehingga berpengaruh terhadap akurasi data.
Tiap 1°C kecepatan rambat gelombang naik 0,6 m/s. Pengaruh perubahan suhu terhadap hasil pengukuran bisa dilihat pada tabel 4.1, dengan pengujian pengukuran yang dilakukan pada suhu ruangan 25°C, dibandingkan dengan hasil yang diperoleh pada suhu 28°C.
Tabel 4.1 Data pengukuran pada suhu 25°C dan 28°C No TB (cm) L (cm) Tteori (ms) T 1 (ms) T 2 (ms) E 1 (ms) E 2 (ms) 1 190 10 0.575 0.6 1.1 0.025 0.525 2 180 20 1.15 1.15 1.56 0 0.41 3 170 30 1.725 1.73 2.08 0.005 0.355 4 160 40 2.3 2.3 2.56 0 0.26 5 150 50 2.875 2.86 3.3 0.015 0.425 6 140 60 3.45 3.47 3.96 0.02 0.51 7 130 70 4.025 4.1 4.48 0.075 0.455 8 120 80 4.6 4.6 5.12 0 0.52 9 110 90 5.175 5.2 5.76 0.025 0.585 10 100 100 5.75 5.9 6.32 0.15 0.57
dengan TB = data tinggi badan sebenarnya
L = jarak tranduser dengan obyek ukur sebenarnya
T2 = tunda waktu pengukuran pada suhu 25°C pada suhu 28ºC
an pada suhu 28ºC memiliki error rata-rata 0,031 ms,
.4 Analisis Perangkat Lunak (Software)
Perangkat lunak pada pengukur tinggi badan belum selesai dibuat, sehingga lat tidak bisa berfungsi untuk mengukur tinggi obyek. Program yang belum
uat antara lain :
r dengan jarak obyek ke
Program untuk mengatur kerja moto
Program untuk membandingkan pulsa yang dihasilkan optocoupler dengan ja byek randuse u progr osisi
T1 = tunda waktu pengukuran pada suhu 28°C
E1 = error pengukuran
E2 = error pengukuran pada suhu 25ºC
Dari tabel 4.1 dapat diketahui bahwa suhu berpengaruh terhadap hasil pengukuran. Pengukur
sedangkan untuk pengukuran pada suhu 25ºC memiliki error rata-rata 0,461 ms. Jadi pengukuran yang memiliki akurasi data yang baik adalah pengukuran yang dilakukan pada suhu 28ºC.
4 a dib
1. Program untuk mengurangkan tinggi alat uku tranduser.
2. r.
3.
rak o ke t r ata am p LCD.
Program yang dah di awali dengan m ukan isasi 0 yang difungsikan sebagai tim it, hal ilakuk enga berikan nilai 21H pada register TMOD, seperti gambar ang m akan hasil simulasi dari inisialisas er. K dian re r TL0 dan TH0 direset dengan diisi nilai 00H,
tin programnya adalah sebagai berikut:
00H 00H
su buat di elak inisial timer er 16 b ini d an d n mem
4.3 y erup i tim emu giste
ru
Init_Timer:
MOV TMOD,#21H ;isi TMOD dengan 21H
Reset_Timer:
MOV TH0,#00H ;register TH0 = #
MOV TL0,#00H ;register TL0 = #
RET
Gambar 4.3 Inisialisasi Timer
er 0 berisi 0000 dan TCON 00 yang artinya timer 0 belum lisasi Timer sesuai dengan yang diharapkan, bahwa
delay waktu
JB P3.2,$ ; Tunggu sampai ada sinyal
SETB P1.0 ; Tranduser non aktif
Pada gambar 4.3, Tim aktif, program untuk inisia
Timer yang dipakai adalah Timer 0. Rutin program selanjutnya adalah melakukan inisialisasi penampil LCD dan menempatkan kursor LCD pada posisi awal yaitu Init_LCD dan posisiAwal_LCD:. Penghitungan waktu oleh timer dimulai dengan memberi nilai logika 0 pada port P1.0, yaitu setelah rutin
sehingga penerima ultrasonik menerima sinyal sebanyak 10 kali selesai dilaksanakan, rutin programnya adalah sebagai berikut:
CLR P1.0 ; Tranduser aktif
LCALL Delay_Ultrasonic ; Tunggu sinyal sampai 10x
SETB TR0 ; Timer 0 aktif
CLR TR0 ; Timer 0 tidak aktif
Gambar 4.4 Kondisi tranduser pemancar aktif
Gambar 4.4 merupakan hasil simulasi dari pemberian logika 0 pada port P1.0, sehingga tranduser ultrasonik sebagai pemancar aktif. Pemancar aktif sampai mengirim sinyal sebanyak 10 kali yang diatur dengan pemanggilan LCALL Delay_Ultrasonic, rutin programnya adalah sebagai berikut:
Delay_Ultrasonic: MOV TH0,#0FEH MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 LCALL Reset_Timer RET
Gambar 4.5 Kondisi timer: (a) saat akan memancarkan sinyal , (b) setelah memancarkan sinyal 10 kali
a b
Pemberian data FEF0 pada Timer 0 seperti pada gambar 4.5a digunakan sebagai awal nilai cacahan, instruksi JNB TF0,$ akan mencacah sampai Timer 0 mengalami overflag seperti keadaan Timer pada gambar 4.5b. Kemudian Timer 0 diset kekeadaan tidak aktif seperti keadaan Timer 0 pada gambar 4.3, pada kondisi ini rutin LCALL Delay_Ultrasonic telah selesai dikerjakan. Rutin LCALL Delay_Ultrasonic yang dibuat sudah sesuai dengan perancangan yang berfungsi untuk memancarkan sinyal sebanyak 10 kali. Dengan instruksi SETB TR0
Timer 0 akan ak yang masuk ke mikrokontroller. Gambar 4.6 merupakan kondisi Timer saat aktif, Timer 0 berisi
sonik yang sesuai tif kembali untuk mencacah sampai ada sinyal
data 08FC yang merupakan contoh lamanya tunda waktu saat sinyal dipancarkan sampai diterima oleh tranduser penerima. Setelah tranduser penerima menerima sinyal, maka P3.2 akan menjadi logika 0 dan P1.0 akan berlogika 1, seperti pada gambar 4.7 yang merupakan hasil simulasi kerja tranduser ultra
dengan perancangan.
Gambar 4.6 Kondisi Timer saat menerima sinyal
Gambar 4.7 Kondisi ada sinyal input dan tranduser pemancar non aktif
Timer 0 akan berhenti menghitung setelah pin P3.2 menerima sinyal low
(penerima menerima sinyal gelombang ultrasonik), selanjutnya nilai cacahan pada gister TL0 dan TH0 dikonversikan ke dalam suatu nilai dengan satuan waktu mikrodetik. Konversi ini perlu dilakukan karena mikrokontroler AT89S51 menggunakan kristal dengan frekuensi 11,0592 MHz sehingga waktu yang diperlukan untuk menaikkan satu nilai cacahan pada timer 0 tidak tepat 1 mikrodetik. Rutin untuk konversi sebagai berikut:
MOV Pengali,#0DAH ; 01A7DAH = 108506d
MOV Pengali+1,#0A7H
MOV Pengali+2,#01H
ACALL Perkalian ; panggil fungsi perkalian
ACALL CopyHasilke_Operand ; simpan hasil
MOV P d Pembagi+1,#086H MOV Pembagi+2,#01H MOV Pembagi+3,#00H ACALL Pembagian re embagi,#0A0H ; 0186A0H = 100000 MOV 51
Gambar 4.8 Kondisi IRAM sebelum perkalian
RAM untuk dikalikan dengan 01A7DAh ilai cacahan pada timer tidak tepat 1 mikrodetik. ubrutin untuk Perkalian dan CopyHasilke_Operand masih error belum bisa menghitung sehingga DATA2 yang merupakan hasil perkalian masih salah, seperti pada gambar 4.9 yang seharusnya berisi 980AE00E yang kemudian dibagi 100000 untuk mendapatkan DATA3 pada gambar 4.10 yang seharusnya berisi BF09.
Data pada Timer 0 dipindah ke I seperti pada gambar 4.8, karena n S
Gambar 4.9 Simulasi IRAM untuk pembagi 100000
Setelah didapatkan data3 yang merupakan nilai konversi waktu, langkah selanjutnya adalah menghitung jarak benda dalam sentimeter berdasarkan persamaan cepat rambat gelombang dengan mengalikan 347 m/s seperti pada gambar 4.10, karena sinyal yang diterima adalah sinyal pantulan dari obyek maka nilai jarak yang didapat harus dibagi dengan 2 seperti pada gambar 4.11, sehingga menghasilkan DATA5 seperti pada gambar 4.12, rutin programnya sebagai berikut: ACALL CopyHasilke_Operand MOV Pengali,#8CH MOV Pengali+1,#87H MOV Pengali+2,#00H ACALL Perkalian ACALL CopyHasilke_Operand MOV Pembagi,#80H MOV Pembagi+1,#84H MOV Pembagi+2,#1EH ACALL Pembagian
Gambar 4.10 Simulasi IRAM untuk perkalian 347 m/s
an kecepatan dan membagi 2 jarak yang perkalian dan pembagian asih menghasilkan data yang bernilai 0.
Program untuk mengalikan waktu deng
dihasilkan gagal dibuat hal ini dikarenakan progam m
Gambar 4.11 Simulasi IRAM untuk pembagi 2
Gambar 4.12 Simulasi Hasil Pembagian 2
Nilai jarak yang dihasilkan berdasarkan program diatas masih dala bentuk format heksadesimal sehingga perlu dikonversikan menjadi format b al. Program asemblernya sebagai berikut: Konversi_Bilangan: MOV HexDec_Ptr,#HexDec_Buff Konversi_Lagi: ACALL CopyHasilke_Operand MOV Pembagi,Dasar_Bilangan MOV Pembagi+1,#10H MOV Pembagi+2,#00H
obyek (DATA5) dengan tranduser ultrasonik m
ilangan desim
ACALL Pembagian MOV R0,HexDec_Ptr MOV @R0,SisaBagi MOV A,HasilBagi MOV R0,#HasilBagi MOV R1,#Pembagi ACALL Perbandingan INC HexDec_Ptr JC Konversi_Selesai AJMP Konversi_Lagi Konversi_Selesai: MOV R0,HexDec_Ptr MOV @R0,HasilBagi MOV A,HasilBagi RET
Semua proses an dan pembagian, namun karena subrutin perkalian dan pembagian gagal maka data yang dihasilkan
Data Simulasi Perhitungan
perhitungan menggunakan subrutin perkali
bernilai 0, untuk perbandingan berapa nilai data yang seharusnya dihasilkan bisa dilihat pada tabel 4.2.
Tabel 4.2 Perbandingan Data hasil Simulasi dengan Perhitungan
DATA2 00000000 980AE00E DATA3 00000000 0000BF09 DATA4 00000000 740D2905
DATA5 0000 002B
Setelah didapatkan nilai desimalnya, maka nilai desimal tersebut dikirimkan rutin sebagai berikut:
ta ke LCD belum berhasil menampilkan yang didapat masih error.
ke penampil LCD melalui pemanggilan LoopKirimPesan_LCD: Mov A,#00H Movc A,@A+DPTR Cjne A,#0FH,Kirim_LCD Ret Kirim_LCD: Acall Kirim_Karakter Inc Dptr Ajmp LoopKirimPesan_LCD ………..
Program untuk menampilkan da data, hasil keluaran