Pengujian Sensor Arah Angin dengan Tampilan LCD

Gambar 5.4 Blok diagram pengujian sensor arah angin Realisasi switch yang digunakan sebagai sensor arah angin dapat dilihat pada gambar 5.5 Gambar 5.5 Switch pada sensor arah Bahasa yang digunakan untuk membuat program pembacaan sensor arah angin adalah bahasa assembly .Cuplikan program untuk sensor arah angin adalah sebagai berikut: Startarah: Jnb SensorUtara,BukanUtara ;Jika SensorUtara bit 0 lompat ke BukanUtara Mov DPTR,PesanUtara ;Copy data PesanUtara ke DPTR Lcall Posisi2 ;panggil subrutin Posisi2 Ljmp baca ;lompat ke baca BukanUtara: Jnb SensorTimurLaut,BukanTimurLaut; Jika SensorTimurLaut bit 0 lompat ke BukanTimurLaut Mov DPTR,PesanTimurLaut ;Copy PesanTimurLaut ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca BukanTimurLaut: Jnb SensorTimur,BukanTimur ;Jika SensorTimur bit lompat ke BukanTimur Mov DPTR,PesanTimur ;Copy PesanTimur ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca AT89S51 LCD Sensor Arah Voltmeter Port 2 Port 0 Bagian switch yang dapat berputar BukanTimur: Jnb SensorTenggara,BukanTenggara;Jika SensorTenggara bit 0 lompat ke BukanTenggara Mov DPTR,PesanTenggara ;Copy PesanTenggara ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca BukanTenggara: Jnb SensorSelatan,BukanSelatan;Jika SensorSelatan bit 0 lompat ke BukanSelatan Mov DPTR,PesanSelatan ;Copy PesanSelatan ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca BukanSelatan: Jnb SensorBaratDaya,BukanBaratDaya;Jika SensorBaratDaya bit 0 lompat ke BukanBaratDaya Mov DPTR,PesanBaratDaya ;Copy PesanBaratDaya ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca BukanBaratDaya: Jnb SensorBarat,BukanBarat ;Jika SensorBarat bit lompat ke BukanBarat Mov DPTR,PesanBarat ; Copy PesanBarat ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca BukanBarat: Jnb SensorBaratLaut,BukanBaratLaut; Jika SensorBaratLaut bit 0 lompat ke BukanBaratLaut Mov DPTR,PesanBaratLaut ;Copy PesanBaratLaut ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 Ljmp baca ;lompat ke baca BukanBaratLaut: Mov DPTR,CariArah ;Copy CariArah ke DPTR Lcall Posisi2 ;panggil subrutin posisi2 jmp Startarah ;lompat ke Startarah PesanUtara: DB ARAH:Utara 000 PesanTimurLaut: DB ARAH:Tm.Laut 045 PesanTimur: DB ARAH:Timur 090 PesanTenggara: DB ARAH:Tenggara135 PesanSelatan: DB ARAH:Selatan 180 PesanBaratDaya: DB ARAH:Br.Daya 225 PesanBarat: DB ARAH:Barat 270 PesanBaratLaut: DB ARAH:Br.Laut 315 CariArah: DB MencariArahAngin dst.................. Penjelasan mengenai cuplikan program di atas adalah sebagai berikut: Pembacaan sensor pertama kali dimulai dari sub rutin StartArah yang merupakan subrutin untuk membaca sensor utara. Jika sensor utara port 2.0 masih dalam kondisi low bit 0 maka langkah selanjutnya langsung melompat ke sub rutin BukanUtara. Tapi jika sensor utara dalam kondisi high bit1 maka dilanjutkan dengan langkah meng- copy isi PesanUtara ke dalam data pointer DPTR. PesanUtara merupakan salah satu isi data base kalimat yang akan ditampilkan di LCD. Langkah selanjutnya yaitu memanggil sub rutin Posisi2. Sub rutin ini merupakan rangkaian perintah – perintah untuk menampilkan data pada LCD. Pada sub rutin ini diatur agar PesanUtara ditampilkan pada baris kedua LCD. Setelah sub rutin Posisi2 selesai dilaksanakan maka pada LCD akan muncul tulisan ” ARAH:Utara 000 ”. Setelah muncul informasi mengenai arah di LCD langkah selanjutnya yaitu memanggil sub rutin baca. Sub rutin baca merupakan rangkaian perintah untuk membaca sensor kecepatan port 1.0 dan output rangkaian timer port1.1. Seperti yang disebutkan sebelumnya, jika sensor utara dalam kondisi low bit 0 dan ternyata sensor Timur Laut dalam kondisi high bit1 maka ke dalam data pointer DPTR yang di- copy -kan adalah isi PesanTimurLaut. Langkah berikutnya hampir sama dengan sub rutin StartArah yaitu memanggil subrutin Posisi2 sehingga pada LCD akan tampil kalimat” ARAH:Tm.Laut 045 ”. Apabila sensor utara dan sensor timur laut ternyata dalam kondisi low bit 0 maka dilanjutkan dengan membaca sensor timur. Jika sensor timur juga ternyata dalam kondisi low bit 0 maka dilanjutkan dengan pembacaan sensor – sensor lainnya secara berurutan yaitu sensor tenggara, sensor selatan, sensor barat daya, sensor barat, dan terakhir sensor barat laut. Pembacaan sensor berlanjut sampai salah satu sensor terbaca dalam kondisi high bit1. Setelah ditemukan sensor yang dalam kondisi high bit1 maka DPTR diisi dengan pesan dari data base arah angin yang sesuai. Namun apabila pembacaan dari sensor utara hingga sensor barat laut tidak ada ditemukan satupun sensor yang dalam kondisi low bit 0 maka pada DPTR di- copy pesan CariArah sehingga pada saat ditampilkan di LCD akan muncul tulisan ” MencariArahAngin ”. Tabel hasil pengujian sensor arah dapat dilihat pada tabel 5.2. Tabel 5.2 Pengujian sensor arah ARAH YANG DIUJI PORT AT89S51 TEGANGAN TULISAN PADA LCD UTARA 2.0 4,8 V ARAH UTARA 000 TIMUR LAUT 2.1 4,8 V ARAH TIMUR LAUT 045 TIMUR 2.2 4,8 V ARAH TIMUR 090 TENGGARA 2.3 4,8 V ARAH TENGGARA 135 SELATAN 2.4 4,8 V ARAH SELATAN 180 BARAT DAYA 2.5 4,8 V ARAH BARAT DAYA 225 BARAT 2.6 4,8 V ARAH BARAT 270 BARAT LAUT 2.7 4,8 V ARAH BARAT LAUT 315 - - 0 V MENCARI ARAH ANGIN Foto hasil pengujian sensor arah seperti terlihat pada gambar 5.6. Gambar 5.6 Tampilan LCD pada saat pengujian sensor arah Dari hasil pengujian terhadap sensor arah angin seperti yang ditunjukkan oleh gambar 5.6 dan tabel 5.2 maka rangkaian sensor arah angin telah bekerja sesuai dengan hasil rancangan penulis pada Bab IV.

5.2.3 Pengujian Timer

Sesuai dengan rancangan pada bab IV, rangkaian timer berfungsi mengatur waktu untuk memproses data bit yang ada pada register mikrokontroler AT89S51 agar dapat ditampilkan pada LCD. Timer diatur agar data kecepatan angin dapat ditampilkan pada LCD tiap 3 detik. Untuk men- trigger agar port 1.1 mengenali sinyal dari rangkaian timer maka port 1.1 harus diberi logika high bit 1 minimal sekitar 0,5 detik. Dari rumus 2.1 dan 2.2 untuk menghitung panjang bit yang ditulis pada bab II adalah tidak mungkin membuat output IC 555 dalam kondisi low lebih lama dan kondisi high lebih singkat. Untuk itu diperlukan suatu inverter yang dapat membalikkan kondisi output IC 555 dari kondisi high ke low dan begitu juga sebaliknya dari kondisi low ke high . Dengan cara demikian kondisi high yang diberikan ke port 1.1 mikrokontroler AT89S51 dapat diatur menjadi lebih singkat dibandingkan kondisi low -nya. Inverter yang digunakan di dalam rangkaian ini yaitu IC 7404. Pada saat ouput rangkaian timer dalam kondisi low maka sensor kecepatan angin akan membaca dan menyimpan bit 1. Setelah ouput rangkaian timer dalam kondisi high barulah data dari sensor kecepatan angin itu diproses untuk mengetahui arah angin. Untuk memudahkan pengamatan kondisi logika pada output rangkaian timer maka dipasang komponen Light Emiting Diode LED sebelum dan sesudah IC 7404. Apabila output dalam kondisi high maka LED akan menyala dan jika output dalam kondisi low maka LED akan padam. Blok diagram pengujian timer dapat dilihat pada gambar 5.7. Gambar 5.7 Blok diagram pengujian rangkaian timer Dari perhitungan dalam perancangan di Bab IV diatur sehingga port 1.1 mikrokontroler AT89S51 mendapat bit 0 selama sekitar 2 detik dan mendapat bit 1 selama sekitar 1 detik. Untuk mengukur lama bit tersebut digunakan peralatan oscilloscope . Selain itu juga dilakukan pengujian dengan cara mengamati kondisi AT89S51 Timer Voltmeter Port 1.1