Pengujian Sensor Kecepatan Angin dengan Tampilan LCD
transistor
terdapat sebuah lempeng propeler yang dapat bergerak berputar.
Output
rangkaian sensor kecepatan angin dihubungkan dengan port 1.0 mikrokontroler AT89S51.
Apabila lempeng propeler tepat tegak lurus terhadap
tranceiver
infra merah maka sinar infra merah akan terhalang oleh lempeng sehingga sinar infra
merah tersebut tidak dapat diterima oleh
phototransisto
r. Jika
phototransistor
tidak menerima sinar infra merah maka
output
rangkaian sensor inframerah yang masuk ke mikrokontroler AT89S51 adalah bit 1. Begitu juga sebaliknya, jika
lempeng penghalang sudah tidak lagi menghalangi sinar infra merah dari
infrared emitting diode
menuju
phototransistor
maka
output
rangkaian sensor kecepatan angin yang masuk ke mikrokontroler AT89S51 adalah bit 0.
Untuk menguji bekerja tidaknya sensor kecepatan ini dilakukan dengan pengukuran tegangan pada port 1.0 mikrokontroler AT89S51. Pada saat
phototransistor
terhalang lempeng dan tidak menerima sinyal infra merah maka port 1.0 mikrokontroler AT89S51 harus mendapat bit 1 yang ditandai dengan
menyalanya LED dan sebaliknya pada saat
phototransistor
tidak terhalang lempeng maka pada port 1.0 mendapat bit 0 dan LED padam.
Diagram blok pengujian rangkaian sensor kecepatan angin dapat dilihat pada gambar 5.9.
Gambar 5.9 Blok diagram pengujian sensor kecepatan angin
Untuk mengetahui kecepatan angin, maka harus ada data mengenai hubungan kecepatan angin dengan jumlah putaran
propeler
kincir angin yang dirancang. Data ini akan menjadi dasar dalam pembuatan
data base software
anemometer digital yang akan di-
download
ke dalam mikrokontroler AT89S51. Untuk mendapatkan data korelasi antara kecepatan angin dan jumlah putaran
AT89S51 LCD
Sensor Kecepatan
Voltmeter
Port 1.0 Port 0
propeler
maka penulis melakukan uji banding dengan peralatan anemometer yang ada di Stasiun Meteorologi dan Geofisika yang secara rutin telah dikalibrasi.
Tabel 5.4 Korelasi kecepatan angin dan jumlah putaran propeler dalam 3 detik
.
KECEPATAN ANGIN Knots
JUMLAH PUTARAN
0,5 1
1 2
1,5 3,5
2 4
2,5 5,5
3 6
3,5 7
4 8
5 10,5
6 12
Data mengenai korelasi antara kecepatan angin dan jumlah putaran
propeler
diperoleh dengan cara menghitung jumlah putaran
propeler
dalam jangka waktu 3 detik pada saat kecepatan tertentu. Pengukuran juga tidak dapat
dilakukan pada semua
level
kecepatan mengingat kecepatan angin yang tidak menentu dan ada kecepatan angin yang bersifat ekstrim yang sangat jarang
terjadi. Hasil pengukuran korelasi antara kecepatan angin dan jumlah putaran
propeler
dapat dilihat pada tabel 5.5 dan grafik 5.1.
2 4
6 8
10 12
14
0,5 1
1,5 2
2,5 3
3,5 4
4,5 5
5,5 6
Putaran
Grafik 5.1 Korelasi kecepatan angin dan jumlah putaran propeler dalam 3 detik
.
Kecepatan angin Jml.
Putaran
knot
Setelah diperoleh data korelasi antara kecepatan angin dan jumlah putaran
propeler
langkah selanjutnya yaitu menggunakan data pada tabel 5.5 sebagai acuan dalam membuat
software data base
kecepatan angin. Karena data mengenai korelasi antara kecepatan angin dan jumlah putaran
propeler
tidak lengkap maka data kecepatan yang tidak tercantum pada tabel 5.5 dibuat dengan perkiraan
korelasi data secara
linier
. Cuplikan program untuk kecepatan angin adalah sebagai berikut:
baca: clr
P1.0 ;port 1.0 dibuat kondisi low
jnb P1.0,cek
;jika P1.0 low maka lompat ke cek jnb
P1.0, ;jika P1.0 high maka tunggu hingga low lg
inc r5 ;R5 + 1
call cek ;panggil cek
cek: jb P1.1,speed_0;jika P1.1 high lompat ke speed_0
call speed_z ;panggil speed_z
speed_z: CJNE R4,0b,speed_1
;jika isi R4 ≠ nol lompat ke speed_1
Mov DPTR,kecepatan_0 ;isi DPTR pesan kecepatan_0 Lcall Posisi ;panggil Posisi
Ljmp Startarah ;loncat ke Startarah
speed_0: mov
a,r5 ;copy data R5 ke accumulator
mov r4,a
;copy data accumulator ke R4 mov
r5,0 ;kosongkan R5
CJNE R4,0b,speed_1 ;jika R4
≠ nol lompat ke speed_1 Mov DPTR,kecepatan_0 ;isi DPTR pesan kecepatan_0
Lcall Posisi ;panggil Posisi
Ljmp Startarah ;loncat ke Startarah
speed_1: CJNE R4,1,speed_2
;jika isi R4 ≠ 1 lompat ke speed_2
Mov DPTR,kecepatan_1 ;isi DPTR pesan kecepatan_1 Lcall Posisi
;panggil Posisi Ljmp Startarah
;loncat ke Startarah speed_2:
CJNE R4,2,speed_3 ;jika isi R4
≠ 2 lompat ke speed_3 Mov DPTR,kecepatan_2 ;isi DPTR pesan kecepatan_2
Lcall Posisi ;panggil Posisi
Ljmp Startarah ;loncat ke Startarah
speed_3: CJNE R4,3,speed_4
;jika isi R4 ≠ 3 lompat ke speed_4
Mov DPTR,kecepatan_3 ;isi DPTR pesan kecepatan_3 Lcall Posisi
;panggil Posisi Ljmp Startarah
;loncat ke Startarah kecepatan_0:
DB 0.0knot calm
kecepatan_1: DB
0.5knot calm kecepatan_2:
DB 1.0knot calm
dst ...........................................
Berikut adalah penjelasan mengenai cuplikan program di atas: Setelah anemometer berhasil melakukan pembacaan arah mata angin,
langkah berikutnya yaitu menghitung kecepatan angin. Pertama kali yang dilakukan adalah me-
reset
port 1.0 menjadi berlogika 0. Langkah selanjutnya yaitu mikrokontroler AT89S51 akan menunggu input bit 1 pada port 1.0 yang
berasal dari sensor kecepatan angin. Apabila port 1.0 masih dalam kondisi low maka langsung loncat ke subrutin cek untuk memeriksa apakah pada port 1.1 telah
menerima input dari
timer
.Apabila pada port 1.0 nantinya diterima bit 1 maka ditunggu sampai bit ini kembali ke kondisi
low
kembali. Hal ini bertujuan untuk memisahkan antara bit 1 dengan bit lainnya karena pada kecepatan tertentu
panjang bit 1 yang diterima tentunya juga berbeda-beda. Hal ini juga bertujuan untuk mengenali jika pada suatu saat sensor kecepatan angin dalam kondisi
nyangkut. Setelah bit 1 kembali lagi ke kondisi
low
maka mikrokontroler AT89S51 akan melakukan
increment
terhadap isi register R5 data R5 +1. Langkah ini untuk menghitung dan menyimpan bit 1 yang telah terbaca di register R5. Setelah
itu dilanjutkan dengan sub rutin cek. Sub rutin ini berfungsi mengecek port 1.1 apakah sudah menerima bit 1 dari rangkaian
timer
. Jika yang diterima masih bit 0 maka langkah dilanjutkan ke speed_z. Langkah ini bertujuan pada saat aneometer
pertama kali dihidupkan dan belum ada data kecepatan angin yang diproses karena belum menerima bit 1 dari
timer
maka pada LCD ditampilkan kecepatan saat itu adalah 0 knot.
Jika pada saat sub rutin cek dijalankan ternyata port 1.1 telah menerima bit 1 dari rangkaian
timer
maka langkah selanjutnya langsung loncat ke sub rutin speed_0. Pada sub rutin speed_0 data dari register R5 di-
copy
ke
accumulator
A untuk kemudian di-
copy
ke register R4. Setelah data di-
copy
ke R4 kemudian data di R5 dihapus
reset
untuk mulai menghitung bit 1 dari awal lagi yang akan digunakan untuk menghitung kecepatan angin pada 3 detik berikutnya.
Langkah berikutnya yaitu membandingkan data jumlah bit yang telah di-
copy
ke R4 dengan
data base
kecepatan angin. Jika misalnya ternyata di R4 tercatat ada 1 buah bit 1 dalam 3 detik maka sub rutin yang cocok adalah sub rutin
speed_1 dan pada
data pointer
DPTR akan di-
copy
pesan kecepatan_1. Setelah itu dilanjutkan dengan memanggil sub rutin posisi yang berisi rangkaian perintah
untuk menampilkan pesan di DPTR pada baris pertama LCD. Setelah pesan mengenai kecepatan angin dan kategori angin berhasil ditampilkan di LCD maka
langkah berikutnya yaitu loncat kembali ke Startarah untuk mulai lagi pembacaan arah angin.
Softwar
e yang sudah benar dan lengkap kemudian di-
download
ke dalam mikrokontroler AT89S51 dengan
ISP flash programing
. Hasil dari pengujian rangkaian sensor kecepatan angin dapat dilihat pada
tabel 5.5.
Tabel 5.5 Hasil pengujian sensor kecepatan
KONDISI PHOTOTRANSISTOR
TEGANGAN Port 1.0 KONDISI LED Tidak terhalang
0 V Padam
Terhalang propeler 2,74 V
Menyala
Foto pengujian rangkaian sensor kecepatan angin dapat dilihat pada gambar 5.10
Gambar 5.10 Gambar pengukuran tegangan sensor kecepatan angin
Dari hasil pengujian rangkaian sensor kecepatan angin didapat hasil yang sesuai dengan rancangan pada bab IV sehingga anemometer digital dapat
digunakan untuk mengukur kecepatan angin. 2,74 Volt
Sensor infra merah
propeler