Perancangan Alat Ukur Kecepatan dan Arah Angin Berbasis Mikrokontroler ATMega16A

(1)

PERANCANGAN ALAT UKUR KECEPATAN DAN

ARAH ANGIN BERBASIS MIKROKONTROLER

ATMEGA16A

TUGAS AKHIR

NURHAMIDAH RIZKI LUBIS

112411055

PROGRAM STUDI D-3 METROLOGI DAN

INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

PERANCANGAN ALAT UKUR KECEPATAN DAN

ARAH ANGIN BERBASIS MIKROKONTROLER

ATMEGA16A

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya

NURHAMIDAH RIZKI LUBIS

112411055

PROGRAM STUDI D-3 METROLOGI DAN

INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN


(3)

2014

PERSETUJUAN

Judul : Perancangan Alat Ukur Kecepatan Dan Arah Angin Berbasis Mikrokontroler ATMega16A

Kategori : Tugas Akhir

Nama : Nurhamidah Rizki Lubis

Nomor Induk Mahasiswa : 112411055

Program Studi : Diploma Tiga (D-3) Metrologi Dan Instrumentasi Departemen : Fisika

Fakultas : Matematika Dan Ilmu Pengetahuan Alam

Universitas Sumatera Utara

Disetujui di Medan, Juli 2014 Komisi Pembimbing:

Disetujui Oleh Ketua Jurusan.

D3 Metrologi Dan Instrumentasi FMIPA USU Pembimbing,

Dr.Diana Alemin Barus, M.Sc Dr. Kurnia Sembiring, M.S NIP. 196607291992032002 NIP.195801311986011001


(4)

PERNYATAAN

PERANCANGAN ALAT UKUR KECEPATAN DAN ARAH

ANGIN BERBASIS MIKROKONTROLER ATMEGA16A

TUGAS AKHIR

Saya mengakui bahwa Tugas Akhir ini adalah hasil karya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2014

NURHAMIDAH RIZKI LUBIS 112411055


(5)

PENGHARGAAN

Alhamdulillahirobbil’alamin,

Segala puji dan syukur bagi Allah Subhanahuwata’ala yang telah melimpahkan barokah, rahmat, hidayah-Nya dan menganugerahkan kemudahan serta kelancaran sehingga penulis dapat menyelesaikan penulisan tugas proyek ini sesuia waktu yang telah ditetapkan. Sholawat dan salam semoga senantiasa tercurahkan kepada Rasulullah Sallallahu’alaihiwassalam sang pembawa petunjuk dan selalu menjadi inspirasi dan teladan bagi penulis

Tugas Akhir ini disusun untuk melengkapi persyaratan dalam mencapai gelar Ahli Madya pada Program Studi Diploma Tiga (III) Fisika Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

Adapun judul Tugas Akhir ini adalah

PERANCANGAN ALAT UKUR KECEPATAN DAN ARAH

ANGIN BERBASIS MIKROKONTROLER ATMEGA16A

Penulis menyadari bahwa tersusunnya Tugas Akhir ini dari Do’a, perhatian, bimbingan, motivasi dan dukungan berbagai pihak, sehingga dengan keikhlasan dan kerendahan hati pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Bapak Dr. Sutarman, M.Sc, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

2. Bapak Dr. Marhaposan Situmorang, selaku Ketua Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera


(6)

3. Ibu Dr. Diana Alemin Barus M.sc, selaku Ketua Program Studi D-III Metrologi dan Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

4. Ibu Dra. Ratna Askiah S., M.Si, selaku Sekretaris Program Studi D-III Metrologi Dan Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

5. Seluruh Dosen dan Karyawan Program Studi Diploma Tiga (III) Metrologi Dan Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

6. Seluruh teman-teman D3 Metrologi dan Instrumentasi yang telah mendukung dan membantu penulis menyelesaikan tugas akhir.

7. Rhobby Maulana, Dwi Budi Prasetyo, Teguh Triantoro, Reza Al-Kautsar, Hamdan Hamid Siregar dan Bang Oki beserta pengurus anggota UKM Robotik SIKONEK Universitas Sumatera Utara.

8. Dan semua pihak yang telah membantu penulis namun tidak dapat disebutkan satu per satu.

Penulis menyadari sepenuhnya bahwa dalam pembuatan Tugas Akhir ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifatnya membangun dalam penyempurnaan Tugas Akhir ini.

Semoga laporan ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.

Amin Yaa Rabbal’alamin

Medan, Juli 2014 Hormat Kami,


(7)

PERANCANGAN ALAT UKUR KECEPATAN DAN ARAH

ANGIN BERBASIS MIKROKONTROLER ATMEGA16A

ABSTRAK

Dalam penelitian ini telah dilakukan perancangan system yang digunakan untuk mengetahui kecepatan dan arah angin dengan menggunakan sensor proximity berbasis mikrokontroler ATMega 16A. Sensor Proximity adalah alat sensor yang digunakan untuk membedakan antara garis hitam dengan lantai putih dan kemudian sensor akan memanfaatkan sifat cahaya yang akan dipantulkan jika mengenai benda berwarna terang dan akan diserap jika mengenai benda berwarna gelap.

Sensor ini menggunakan sumber cahaya yaitu LED (Light Emiting Diode) yang akan memancarkan cahaya merah. Dan untuk menangkap pantulan cahaya LED, kita gunakan photodiode. Jika sensor berada diatas garis hitam maka photodioda akan menerima sedikit sekali cahaya pantulan. Tetapi jika sensor berada diatas garis putih maka photodioda akan menerima banyak cahaya pantulan. Setelah itu akan diproses oleh mikrokontroler dan ditampilkan pada LCD dalam bentuk kecapatan angin dan juga arah angin.


(8)

DAFTAR ISI

Halaman

Persetujuan ...i

Pernyataan ...ii

Penghargaan ...iii

Abstrak ...iv

Daftar Isi ...v

Daftar Tabel ...viii

Daftar Gambar...ix

BAB I. PENDAHULUAN 1.1 Latar Belakang ...1

1.2 Rumusan Masalah ...2

1.3 Batasan masalah ...2

1.4 Tujuan Penulisan ...3

1.5 Manfaat Perancangan ...3

BAB II. LANDASAN TEORI 2.1 Teori Umum ...4

2.2 Angin ...4

2.3 Anemometer ...5

2.3.1 Prinsip Kerja Anemometer ...6

2.4 Sensor ...7

2.4.1 Proximity ...8

2.4.2 Photodioda ...9

2.4.3 LED ...11

2.5 Mikrokontroler ATMega16A ...12

2.6 LCD (Liquid Crystal Digital Display) ...17

BAB III. METODE PENELITIAN 3.1 Diagram Blok Rangkaian ...20


(9)

3.4Rangkaian Sensor Proximity ...23 3.5 Rangkaian Alat Secara Keseluruhan ...25 3.6 Flowchart pada Mikrokontroler ...26

BAB IV. HASIL DAN PEMBAHASAN

4.1 Pengujian Rangkaian Kecepatan Dan Arah Angin ...28

BAB V. KESIMPULAN DAN SARAN

5.1 Kesimpulan ...29 5.2 Saran ...29

DAFTAR PUSTAKA


(10)

DAFTAR TABEL

Halaman

Tabel 2.1 Konfigurasi Pin Port ... 16

Tabel 3.1 Port Rangkaian Minimun Sistem ... 22

Tabel 4.1 Hasil Pengukuran Kecepatan Angin ... 28


(11)

DAFTAR GAMBAR

Halaman

Gambar 2.1Baling Baling untuk menentukan arah angin ...4

Gambar 2.2Prinsip Kerja Sensor Proximity ...6

Gambar 2.3Rangkaian photodiode ...7

Gambar 2.4 Simbol Dan Bentuk Fisik LED ...8

Gambar 2.5 Mikrokontroler ATmega 16A ...9

Gambar 2.6 Pin-Pin ATMega 16A Kemasan 40 Pin ...10

Gambar 2.7 LCD (Liquid Crystal Display ...12

Gambar 3.1.Diagram Blok Sistem Secara Keseluruhan ...15

Gambar 3.2.Rangkaian Mikrokontroler ATMega8535 ...16

Gambar 3.3.Rangkaian LCD ...17

Gambar 3.4. Rangkaian Sensor Proximity ...17 Gambar 3.5. Rangkaian Keseluruhan Alat Ukur Kecepatan dan Arah Angin .18 Gambar 3.6 Flowchart pada Mikrokontroler ...


(12)

PERANCANGAN ALAT UKUR KECEPATAN DAN ARAH

ANGIN BERBASIS MIKROKONTROLER ATMEGA16A

ABSTRAK

Dalam penelitian ini telah dilakukan perancangan system yang digunakan untuk mengetahui kecepatan dan arah angin dengan menggunakan sensor proximity berbasis mikrokontroler ATMega 16A. Sensor Proximity adalah alat sensor yang digunakan untuk membedakan antara garis hitam dengan lantai putih dan kemudian sensor akan memanfaatkan sifat cahaya yang akan dipantulkan jika mengenai benda berwarna terang dan akan diserap jika mengenai benda berwarna gelap.

Sensor ini menggunakan sumber cahaya yaitu LED (Light Emiting Diode) yang akan memancarkan cahaya merah. Dan untuk menangkap pantulan cahaya LED, kita gunakan photodiode. Jika sensor berada diatas garis hitam maka photodioda akan menerima sedikit sekali cahaya pantulan. Tetapi jika sensor berada diatas garis putih maka photodioda akan menerima banyak cahaya pantulan. Setelah itu akan diproses oleh mikrokontroler dan ditampilkan pada LCD dalam bentuk kecapatan angin dan juga arah angin.


(13)

BAB I

PENDAHULUAN

1.1Latar Belakang

Pada zaman dahulu semua orang menentukan kecepatan dan arah angin masih secara manual tapi seiring degan perkembangan zaman orang hanya memanfaatkan teknologi-teknologi untuk menentukan kecepatan dan arah angin. Keadaan cuaca sangat berpengaruh dalam mengatur masalah transportasi terutama transportasi udara dan laut. Untuk itu diperlukan sebuah alat yang dapat memantau cuaca yang mudah untuk dipahami oleh siapa saja terutama para pemberi jasa layanan transportasi udara dan laut. Sehingga hal ini diharapkan dapat mengurangi resiko kecelakaan yang diakibatkan oleh masalah cuaca. Seiring dengan itu semua maka dibuatlah alat untuk mengukur kecepatan dan arah angin.

Sensor yang digunakan untuk penentu kecepatan kincir dan arah pergerakan angin adalah sensor proximity yang terdiri dari photodiode dan LED. Sistem kendali pada alat pengukur kecepatan dan arah angin ini menggunakan mikrokontroler yaitu sebagai pusat pengolahan data yang hasilnya akan ditampilkan pada LCD . Oleh karena itu, maka dibuatlah Tugas Akhir yang berjudul “Perancangan Alat Ukur Kecepatan dan Arah Angin Berbasis Mikrokontroller ATMega16A”


(14)

1.2Rumusan Masalah

Rumusan masalah dalam laporan Tugas Akhir ini yaitu bagaimana cara mewujudkan alat pengukur kecepatan dan arah angin yang seoptimal mungkin dengan menggunakan sensor proximity, Mikrokontroler ATMega 16A sebagai pusat kendalinya, software pemrogramannya dan LCD sebagai tampilannya.

1.3Batasan Masalah

Agar permasalahan yang dibahas dalam laporan Tugas Akhir ini tidak menyimpang jauh dari pokok pembahasan, maka dalam penulisan laporan Tugas Akhir dengan judul “Alat Pengukur Kecepatan dan Arah Angin Berbasis Mikrokontroler ATMega16A” ini ditetapkan pokok-pokok permasalahan yang akan dibahas sebagai berikut:

a. Hanya menggunakan sensor proximity dengan metode reflexy cahaya sebagai pengukur kecepatan dan arah angin.

b. Tidak menggunakan optocoupler, karena sudah banyak terdapat penelitian yang menggunakan sensor optocoupler tersebut. Jadi penulis memanfaatkan proximity sensor sebagai pengukuran kecepatan dan arah angin.

c. Hanya menggunakan 3 buah perbedaan warna pada pembacaan arah angin dengan asumsi perbedaan warna sebagai pembaca pergerakan ke kanan maupun ke kiri dari pembacaan mata angin.

d. Menggunakan mikrokontrol ATMega16A sebagai alat pengendali. e. Menggunakan LCD sebagai penampil hasil pengukuran.


(15)

1.4Tujuan Penulisan

Adapun tujuan dari penelitian ini adalah sebagai berikut:

a. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma Tiga (D-3) Metrologi dan Instrumentasi FMIPA Universitas Sumatera Utara.

b. Merancang suatu alat yang akurat dalam pengukuran kecepatan dan arah angin kemudian ditampilkan pada LCD dengan menggunakan Mikrokontroler ATMega 16A.

1.5 Manfaat Penulisan

Adapun manfaat penulisan ini antara lain :

a. Dapat dipergunakan untuk memantau keadaan cuaca

b. Dapat berfungsi sebagai alat pengukur arah dan kecepatan angin secara digital

c. Perancangan dan pembuatan alat ini dapat dimanfaatkan untu mengetahui data-data mengenai arah dan kecepatan angin dalam bidang penerbangan meteorologi.


(16)

BAB II

TINJAUAN PUSTAKA

2.1 Teori Umum

Pada penulisan ini akan dibahas teori yang berhubungan langsung dengan instrumentasi dalam perancangan ”Sistem Mengukur Kecepatan Dan Arah Angin” yang meliputi perangkat keras dan perangkat lunak yaitu antara lain : teori angin, anemometer, Mikrokontroller Atmega 16A, sensor proximity dan Programnnya.

2.2 Angin

Menurut Ance Gunarsih Kartasapoetra, Angin merupakan gerakan atau perpindahan massa udara dari satu tempat ke tempat lain secara horizontal. Massa udara adalah udara dalam ukuran yang sangat besar yang mempunyai sifat fisik (temperatur dan kelembapan) yang seragam dalam arah yang horizontal.Gerakan angin berasal dari daerah yang bertekanan tinggi ke daerah yang bertekanan rendah. Angin juga mempunyai arah dan kecepatan. Arah angin dilihat dari mana arah angin itu datang, misalnya dari barat disebut angin barat.

Angin adalah gerak nisbi terhadap permukaan bumi. Gerak atmosfer terhadap permukaan bumi ini memiliki dua arah yaitu arah horizontal dan arah vertikal. Kedua gerak atmosfer ini disebabkan oleh ketidaksetimbangan radiasi bersih, kelembaban dan momentum di antara lintang rendah dan lintang tinggi di satu pihak dan di antara permukaan bumi dan atmosfer di pihak lain.

Adapun faktor-faktor yang mempengaruhi gerak atmosfer itu sendiri yaitu topografi, distribusi antara permukaan daratan dan lautan, serta arus laut,Gerak


(17)

atmosfer yang umum adalah gerak horizontal, karena daerah yang diliputinya jauh lebih luas dan kecepatan horizontalnya jauh lebih besar daripada vertikalnya. Akan tetapi yang merupakan sumber pembentukan awan konvektif dan curahan yang berperan penting dalam menentukan cuaca dan iklim adalah gerak vertikal. Perubahan cuaca di atas permukaan bumi pada dasarnya adalah hasil dari gerak atmosfer atau gerak udara.yaitu gerak yang dihasilkan oleh berbagai gaya yang bekerja pada paket udara.

2.3 Anemometer

Anemometer adalah alat yang digunakan untuk mengukur arah dan kecepatan angin. Umumnya pengamatan angin permukaan (horizontal wind speed) adalah rata-rata pengamatan selama periode 10 s/d 60 menit sesuai dengan kebutuhan Forecast. Statistik klimatologi biasanya memerlukan data rata-rata pengamatan untuk setiap jam, rata-rata periode siang hari dan periode malam hari. Untuk laporan sypnotic pengamatan dilakukan dalam rata-rata 10 menit.

Satuan meteorologi dari kecepatan angin adalah Knots (Skala Beaufort). Sedangkan satuan meteorologi dari arah dan mata angin adalah 0 –360 . Anemometer harus ditempatkan di daerah terbuka. Alat ini juga dapat digunakan untuk mengukur kecepatan angin dalam satuan m/s, km/jam, mil/jam, knots.

Agar dapat membandingkan pengamatan angin yang dilakukan di berbagai tempat, maka pemasangan anemometer dan vane tidak boleh sesukanya. Alat ini dipasang tinggi yang sama di atas tanah terbuka. Tanah terbuka adalah lapangan dengan benda (Pohon, rumah, dll) yang berjarak 10 kali lebih tinggi benda itu dari tiang anemometer. Tinggi yang telah di setujui adalah 10 meter. Arah angin


(18)

diukur dengan wind vane. Kecepatan angin diukur dengan wind speed anemometer.

Gambar 2.1 :Baling Baling untuk menentukan arah angin

Hubungan antara masing-masing satuan ini adalah: 1. 6.28 m/s = 22.08 km/jam =2.25 mil/jam. 2. 1 m/s = 3.6 km/jam = 2 knots.

3. 1 km/jam = 10.36 m/s = 0.62 mil/jam. 4. 1 mil/jam = 0.447 m/s = 1.6 km/jam. 5. 1 knots = 0.5 m/s = 1.8 km/jam.

2.3.1 Prinsip Kerja Anemometer

Angin mengadakan tekanan yang kuat pada bagian tekanan yang kuat pada baling-baling yang berbentuk cekung (mangkuk). Bagian yang cekung akan berputar ke satu arah. Poros yang berputar dihubungkan dengan dynamo kecil. Bila baling-baling berputar maka terjadi arus listrik yang besarnya sebanding dengan kecepatan putaran. Besarnya arus listrik dihubungkan dengan


(19)

galvanometer yang telah ditera dengan satuan kecepatan dalam knots, m/s, km/h dan beaufort.

2.4 Sensor

Sensor adalah suatu peralatan yang berfungsi untuk mendeteksi gejala – gejala atau sinyal – sinyal yang berasal dari perubahan suatu energi seperti energi listrik, energi fisika, energi kimia, energi biologi, energi mekanik dan sebagainya.

Suatu peralatan yang memberitahukan kepada sistem kontrol tentang apa yang sebenarnya terjadi dinamakan sensor atau juga dikenal sebagai transduser. Sebagai contoh tubuh manusia mempunyai sistem sensor luar biasa yang memberitahukan kepada otak manusia secara terus menerus dengan gambar – gambar yang layak dan lengkap di sekitar lingkungan. Untuk sistem kontrol si pembuat harus memastikan parameter apa yang dibutuhkan untuk dimonitor sebagai contoh : posisi, temperatur, dan tekanan, kemudian tentukan sensor dan rangkaian data interface untuk melakukan perkerjaan ini. Sebagai contoh, kita ingin mengukur aliran cairan dalam suatu pipa dengan menggunakan flowmeter, atau kita ingin mengukur aliran secara tidak langsung dengan melihat seberapa lama cairan mengisi suatu tangki dengan ukuran tertentu.

Kebanyakan sensor bekerja dengan mengubah beberapa parameter fisik seperti temparatur atau posisi ke dalam sinyal listrik. Ini sebabnya mengapa sensor juga dikenal sebagai transduser yaitu suatu peralatan yang mengubah energi dari satu bentuk ke bentuk yang lain.


(20)

Sensor biasanya dikategorikan melalui pengukur dan memegang peranan penting dalam pengendalian proses pabrikasi modern.,sensor memberikan ekivalen otomatisasi industri.

2.4.1Proximity

Sensor Proximity merupakan alat sensor yang digunakan untuk membedakan antara garis hitam dengan lantai putih. Sensor proximity ini dapat dikalibrasi untuk menyesuaikan pembacaan sensor terhadap kondisi pencahayaan ruangan. Sehingga pembacaan sensor selalu akurat. sensor ini biasanya kebanyakan di gunakan pada robot robot tipe Robot Line Tracker.

Sensor proximity bisa juga dibuat sendiri. Prinsip kerjanya sederhana, hanya memanfaatkan sifat cahaya yang akan dipantulkan jika mengenai benda berwarna terang dan akan diserap jika mengenai benda berwarna gelap. Sebagai sumber cahaya kita gunakan LED (Light Emiting Diode) yang akan memancarkan cahaya merah. Dan untuk menangkap pantulan cahaya LED, kita gunakan photodiode. Jika sensor berada diatas garis hitam maka photodioda akan menerima sedikit sekali cahaya pantulan. Tetapi jika sensor berada diatas garis putih maka photodioda akan menerima banyak cahaya pantulan. Berikut adalah ilustrasinya :


(21)

Gambar 2.2. Prinsip Kerja Sensor Proximity

Sifat dari photodioda adalah jika semakin banyak cahaya yang diterima, maka nilai resistansi diodanya semakin kecil. Dengan melakukan sedikit modifikasi, maka besaran resistansi tersebut dapat diubah menjadi tegangan. Sehingga jika sensor berada diatas garis hitam, maka tegangan keluaran sensor akan kecil, demikian pula sebaliknya.

Agar dapat dibaca oleh mikrokontroler, maka tegangan sensor harus disesuaikan dengan level tegangan TTL yaitu 0 – 1 volt untuk logika 0 dan 3 – 5 volt untuk logika 1. Hal ini bisa dilakukan dengan memasang operational amplifier yang difungsikan sebagai komparator. Output dari photodioda yang masuk ke input inverting op-amp akan dibandingkan dengan tegangan tertentu dari variable resistor VR. Tegangan dari VR inilah yang kita atur agar sensor proximity dapat menyesuaikan dengan kondisi cahaya ruangan.

2.4.2. Photodioda

Photodioda merupakan sebuah dioda dengan sambungan pn yang dipengaruhi cahaya di dalam kerjanya. photodioda digunakan sebagai penangkap gelombang cahaya yang dipancarkan oleh infrared. Besarnya tegangan atau arus listrik yang


(22)

dihasilkan oleh photodiode tergantung besar kecilnya radiasi yang dipancarkan oleh infrared.

Sebuah photodioda dapat dijabarkan sebagai sumber arus terkendali cahaya, atau sebagai konverter cahaya ke arus, apabila diinginkan. Jika cahaya jatuh mengenai permukaan peka cahaya pada photodioda akan timbul sedikit arus dari katoda ke anoda yang besarnya sebanding dengan kuat cahaya yang melaluinya. Berikut gambar rangkaian photodiode ditunjukkan pada gambar 2.3 :

Gambar 2.3 rangkaian photodiode

Anoda pada sebuah dioda yang tidak terhubung akan semakin positif dari katoda sampai tegangan pada kedua terminal tersebut menyebabkan diode ke katoda, dalam keadaan seimbang. Kedua arus ini saling meniadakan dan akan muncul tegangan pada dioda. Bila tegangan bias mundur pada photodioda itu dihilangkan, pembawa muatan minoritas akan mengalir kembali jika hubungan disinari. Ini mengakibatkan kenaikan jumlah hole pada bagian P dan jumlah elektron pada bagian N. Tetapi tegangan barier adalah negatif pada bagian P dan positif pada bagian N. sehingga pembawa minoritas akan mengalir untuk mengurangi tegangan barier itu. Bila ada tegangan luar dipasangkan pada terminal


(23)

dioda maka pembawa minoritas akan kembali ke bagian semula melalui rangkaian luar. Elektron-elektron melewati hubungan dari P ke N sekarang mengalir keluar melalui terminal N menuju ke terminal P.

2.4.3 LED

LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan cahaya pada saat mendapat arus bias maju (forward bias). LED dapat memancarkan cahaya karena menggunakan dopping galium, arsenic dan phosporus. Jenis doping yang berbeda diata dapat menhasilkan cahaya dengan warna yang berbeda.

LED merupakann salah satu jenis dioda, sehingga hanya akan mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya apabil diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan dioda pada umumnya, kemampuan mengalirkan arus pada LED cukup rendah yaitu maksimal 20 mA. Apabila LED dialiri arus lebih besar dari 20 mA maka LED akan rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebagai pembatas arus. Simbol dan bentuk fisik dari LED dapat dilihat pada gambar berikut :


(24)

Dari gambar diatas dapat kita ketahui bahwa LED memiliki kaki 2 buah seperti dengan dioda yaitu kaki anoda dan kaki katoda. Pada gambar diatas kaki anoda memiliki ciri fisik lebih panjang dari kaki katoda pada saat masih baru, kemudian kaki katoda pada LED ditandai dengan bagian body LED yang di papas rata. Kaki anoda dan kaki katoda pada LED disimbolkan seperti pada gambar diatas. Pemasangan LED agar dapat menyala adalah dengan memberikan tegangan bias maju yaitu dengan memberikan tegangan positif ke kaki anoda dan tegangan negatif ke kaki katoda. Konsep pembatas arus pada dioda adalah dengan memasangkan resistor secara seri pada salah satu kaki LED.

2.5 Mikrokontroler ATMega 16A

Gambar 2.5 Mikrokontroler ATmega 16A

ATmega16A adalah sebuah CMOS 8-bit mikrokontroler berbasis AVR dengan arsitektur RISC. AVR dapat mengeksekusi sebuah instruksi dengan 1 siklus clock, sehingga ATmega16A dapat mencapai sekitar kecepatan eksekusi 1 MIPS per Hz. Oleh karena itu ATmega16A mengoptimisasi konsumsi daya VS kecepatan pemroses.


(25)

ATmega16A memiliki fungsi yang sebagian besar sama dengan ATmega16. Perbedaan antara kedua piranti ini terdapat pada “Electrical Characteristics” dan “Typical Characteristics”, dimana ATmega16A memiliki karakteristik yang lebih baik, salah satunya adalah dapat digunakan pada supply tegangan yang lebih lebar, yaitu pada 2.7 sampai 5.5 V. Selain itu ATmega16A juga memiliki konsumsi daya yang lebih rendah daripada ATmega16.

Berikut adalah beberapa fitur dari ATmega16A :

1. Advanced RISC architecture.

2. Memori flash (Program) dengan kapasitas hingga 16KB dengan ketahanan 1000 kali penulisan.

3. Memori EEPROM berkapasitas 512B dengan ketahanan 100.000 kali penulisan.

4. Memori SRAM dengan kapasitas 1KB.

5. Independen Lock Bit.

6. Pengunci untuk keamanan data terprogram. 7. Antarmuka JTAG.

8. Dua buah 8 bit counter/ timer dengan prescaler dan mode pembanding. 9. Satu buah 16 bit counter/ timer dengan prescaler, mode pembanding dan

mode capture.

10.Real Time Counter dengan on-chip oscillator terpisah. 11.4 kanal PWM.

12.8 kanal 10-bit ADC. 13.TWI.


(26)

15.Maser/slave SPI.

16.Programmable Watchdog timer dengan on-chip oscillator terpisah.

17.Power-on reset dan programmable Brown-out detection.

18.Internal RC Oscillator terkalibrasi. 19.Internal dan eksternal Interrupt. 20.6 mode sleep.

21.32 Programmable I/O.

22.Tegangan operasi 2.7 – 5.5 V.

23.Speed grades dengan range 0 – 16 MHz.

Gambar 2.6 Pin-Pin ATMega 16A Kemasan 40 Pin

Pin-pin pada ATMega16 dengan kemasan 40-pin DIP (dual inline package) ditunjukkan oleh gambar 2.. Guna memaksimalkan performa, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). 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


(27)

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 register 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. Harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.


(28)

Tabel 2.1 Konfigurasi Pin Port

Serial pada ATMega16

Universal synchronous dan asynchronous pemancar dan penerima serial adalah suatu alat komunikasi serial sangat fleksibel.

Jenis yang utama adalah :

1. Operasi full duplex (register penerima dan pengirim serial dapat berdiri sendiri)

2. Operasi Asychronous atau synchronous

3. Master atau slave mendapat clock dengan operasi synchronous 4. Pembangkit baud rate dengan resolusi tinggi

5. Dukung frames serial dengan 5, 6, 7, 8 atau 9 Data bit dan 1 atau 2 Stop bit 6. Tahap odd atau even parity dan parity check didukung oleh hardware 7. Pendeteksian data overrun

8. Pendeteksi framing error

9. Pemfilteran gangguan (noise) meliputi pendeteksian bit false start dan pendeteksian low pass filter digital

10. Tiga interrupt terdiri dari TX complete, TX data register empty dan RX complete.


(29)

12. Mode komunikasi double speed asynchronous

2.6. LCD (Liquid Crystal Display)

Gambar 2.7 LCD (Liquid Crystal Display)

Display elektronik merupakan salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik. Material LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan


(30)

Dalam modul LCD terdapat mikrokontroler yang berfungsi sebagai pengendali tampilan karakter LCD. Mikrokontroler pada suatu LCD dilengkapi dengan memori dan register. Memori yang digunakan mikrokontroler internal LCD adalah : DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada. CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM. Register control yang terdapat dalam suatu LCD diantaranya adalah. Register perintah yaitu register yang berisi perintah-perintah dari mikrokontroler ke panel LCD pada saat proses penulisan data atau tempat status dari panel LCD dapat dibaca pada saat pembacaan data. Register data yaitu register untuk menuliskan atau membaca data dari atau ke DDRAM. Penulisan data pada register akan menempatkan data tersebut ke DDRAM sesuai dengan alamat yang telah diatur sebelumnya. Pin, kaki atau jalur input dan kontrol dalam suatu LCD diantaranya adalah :

1. Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit.

2. Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika


(31)

low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data.

3. Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data.

4. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar. 5. Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 volt.

Adapun yang digunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang akan digunakan untuk menampilkan status kerja alat. Fitur yang disajikan dalam LCD ini adalah :

a. Terdiri dari 16 karakter dan 2 baris. b. Mempunyai 192 karakter tersimpan. c. Terdapat karakter generator terprogram. d. Dapat dialamati dengan mode 4-bit dan 8-bit. e. Dilengkapi dengan back light.


(32)

BAB III

PERANCANGAN ALAT DAN PROGRAM

3.1 Diagram Blok Rangkaian

Secara keseluruhan sistem untuk mengukur kecepatan dan arah angin terdiri dari beberapa bagian yang ditunjukkan pada gambar 3.1 diagram block.

Gambar 3.1 Diagram Blok Sistem Secara Keseluruhan

Secara keseluruhan alat ini terdiri dari 2 sensor, yaitu sensor kecepatan angin dan sensor arah angin. Kedua sensornya menggunakan sensor proximity namun perbedaannya ialah arah angin langsung dihubungkan ke mikrokontroler ATMega16 dengan menggunakan modul ADC yakni membaca perubahan tegangan. Tegangan tersebut berasal dari 3 buah warna karnaval, ketika cahaya yang diberikan kepada 3 buah warna tersebut, akan direfleksi dengan perbedaan jumlah cahaya yang dikembalikannya. Jumlah cahaya yang berbeda-beda inilah


(33)

yang diterima oleh photodioda yang mengakibatkan terjadinya perubahan nilai tegangan yang terbaca. Pembacaan nilai yang berbeda inilah yang digunakan untuk menentukan arah angin. Arah angin yang ditampilkan hanya menunjukkan 8 mata angin yakni diantaranya adalah Timur, Tenggara, Selatan, Barat Daya, Barat, Barat Laut, Utara, Timur Laut.

Untuk sensor kecepatan , karena tegangan tidak menunjukkan logika 1/0 maka digunakan modul komparator untuk membandingkan logika 1 & 0, yakni dimana rangkaian komparator tersebut dapat diatur untuk mendapatkan nilai tengah sebagai pembanding logika 1/0, lalu dihubungnkan ke mikrokontroler ATMega16 dan dibaca sebagai counter atau pencacah kecepatan angin. Kedua sensor ini diproses menggunakan mikrokontroler yang kemudian hasilnya ditampilkan pada display LCD.

3.2 Rangkaian Mikrokontroler ATMega16A

Minimum sistem merupakan bagian utama dari pembuatan alat ini, pada bagian ini terdiri dari mikrokontroller garmbar rangkaian dapat dilihat sebagai berikut :


(34)

Gambar 3.2. Rangkaian Mikrokontroler ATMega 16A

Port yang digunakan pada rangkaian minimum sistem yaitu pada tabel 3.1 dibawah ini:

Tabel 3.1 Port Rangkaian Minimum Sistem

PORT Pin Yang Digunakan Fungsinya

A Baca Data Analog

B Pencacah kecepatan

angin


(35)

3.3 Rangkaian LCD (Liquid Crystal Display)

Rangkaian skematik konektor yang dihubungkan dari LCD (liquid crystal display) ke mikrokontroler dapat dilihat pada gambar dibawah ini :

Gambar 3.3 Rangkaian LCD

Liquid crystal display (LCD) merupakan sejenis crystal yang akan

berpendar jika diberi tegangan tertentu, sehingga perpendaran tersebut dapat diatur untuk membentuk karakter, angka, huruf dan lain sebagainya. Liquid crystal display (LCD) yang digunakan dalam penelitian tugas akhir ini adalah menggunakan liquid crystal display (LCD) dengan banyak baris dan karakter adalah 2x16 seperti pada gambar 3.3.

3.4 Rangkaian Sensor Proximity

Sensor proximity biasanya digunakan untuk mendeteksi suatu benda. Prinsip kerja sensor ini adalah memanfaatkan photodioda atau phototransistor yang berfungsi sebagai alat sensor yang berguna merasakan adanya perubahan


(36)

intensitas cahaya infra merah /led. Pada saat cahaya infra merah belum mengenai photodioda, resistansi pada photodioda sangat besar atau bisa diasumsikan tak hingga atau bagaikan saklar terbuka sehingga tidak ada arus yang mengalir, sehingga transistor berada pada posisi cut off (terbuka). Pada penelitian ini proximity yang dirancang dengan menggunakan metode reflex atau pantulan cahaya, yakni dimana cahaya yang dipancarkan oleh led dipancarkan ke media berwarna hitam dan putih dan kemudian cahaya yang kembali akan mengalami perubahan yakni apabila cahaya mengenai daerah putih maka cahaya yang kembali akan diterima photodioda seluruhnya namun sebaliknya jika cahaya mengenai daerah hitam maka cahaya yang kembali akan diredam oleh daerah hitam tersebut dan diterima oleh photodioda. Perbedaan berkas cahaya yang diterima oleh photodioda inilah nantinya yang akan mempengaruhi tegangan keluaran yang diberikan oleh sensor ke modul komparator maupun ke ADC dari mikrokontroller.


(37)

3.5 Rangkaian Alat Secara Keseluruhan

Dalam sistem pengukur kecepatan arus air ini perancangan rangkaian meliputi minimum sistem ATMega16, perancangan pembanding (komparator) proximity sensor dan perancangan display LCD. Untuk menghindari kesalahan dalam sistem, maka sistem ini dibuat dalam board PCB yang terpisah.

Dari gambar dibawah ini penulis menjelaskan bahwa rangkaian yang akan dibuat menggunakan mikrokontroler ATMega16, sensor proximity dan LCD. Mikrokontroler merupakan pemroses dari sistem tersebut, sensor proximity sebagai sensor yang dapat menjadi pengirim sinyal dan penerima sinyal, Liquid Crystal Display (LCD) berfungsi menampilkan data yang dikirim oleh mikrokontroler ATMega 16A.


(38)

3.6 Flowchart pada Mikrokontroler

Konsep pemograman pada pengujian kecepatan dan arah angin ini dapat digambarkan dengan menggunakan diagram alir seperti dibawah ini :


(39)

BAB IV

HASIL DAN PEMBAHASAN

4.1.1 Pengujian Rangkaian Kecepatan Dan Arah Angin

Pengambilan data di lakukan pada tempat terbuka di Gedeung Fakultas Teknik USU Medan pada tangal 15 Juli 2014 pada Pukul 13.30 – 14.00. Dilakukan dengan 3 kali pengujian sehingga mendapat nilai rata-rata sebagai berikut :

Tabel 4.1 Hasil Pengukuran Kecepatan Angin Ketinggian

Pengujian

Pengujian 1 Pengujian 2 Pengujian 3 Nilai Rata-rata

5 m 0,3 m/s 0,5 m/s 0,5 m/s 0,4 m/s

7 m 0,5 m/s 1,1 m/s 0,8 m/s 0,8 m/s

10 m 0,8 m/s 1,1 m/s 1,6 m/s 1,2 m/s

12 m 1,9 m/s 2,2 m/s 2,4 m/s 2,1 m/s

15 m 2,7 m/s 2,4 m/s 3,2 m/s 2,7 m/s

Tabel 4.2 Hasil Pengukuran Arah Angin Waktu Pengambilan Data

(Jam)

Arah Datangnya Angin

06.30 Selatan

08.30 Tenggara

10.30 Timur


(40)

14.30 Utara

16.30 Barat Laut

18.30 Barat


(41)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

1. Alat yang digunakan dapat berfungsi dengan baik, sensor kecepatan dan arah angin sesuai dengan setting point yang diberikan. Dengan menggunakan sensor proximity dan diteruskan ke sistem, dapat diketahui kecepatan dan arah angin tersebut dari LCD.

2. Hasil pembacaan data kecepatan angina menunjukkan adanya perubahan yang belum konsisten yang diakibatkan dari kondisi cuaca maupun angin di daerah sekitar yang mengakibatkan perbedaan pembacaan untuk setiap pengujiannya.

3. Alat ukur kecepatan dan arah angin yang menggunakan sensor proximity sangat efektif bagi para pelajar yang ingin mengetahui lebih banyak ilmu tentang kecepatan dan arah angin,dan dapat melakukan dengan alat ini yang sangat mudah dalam pembuatan dan bahan yang dibutuhkan juga terjangkau, dan menghasilkan keakuratan yang tidak jauh berbeda dengan current meter.

5.2. Saran

Beberapa hal yang dapat disarankan dari pelaksaan tugas akhir ini adalah : 1. Untuk perancangan alat ukur kecepatan angina ini lebih lanjut sebaiknya

digunakan sensor dengan pengaruh gesekan sekecil mungkin

2. Dilakukan desain ulang pada hardware(perancangan perangkat kerasnya)termasuk pemilihan sensor dan mikrokontrollernya agar didapatkan


(42)

rangkaian yang lebih sempurna dan handal, serta tahan terhadap kondisi hujan maupun panas. Seperti halnya pada kecepatan angin.

3. Disarankan untuk menggunakan sensor kompas untuk mendapatkan hasil maupun pembacaan yang lebih akurat.


(43)

DAFTAR PUSTAKA

Barry,Gwoollard,1998. Elektronika Praktis. Cetakan Kedua, Jakarta.PT.Praditya Paramitha.

Bayong Tjasyono HK,2008.Meteorologi Terapan.:Bandung.ITB press

Malvino.AlbertPaul,Ph.D&Donald P.Leach,Ph.D. 2002 .Prinsip Prinsip Elektronika. Jilid satu.:Bandung.Salemba tehnik.

Prawirowardoyo,Susilo.1996.Meteorologi. Bandung.Penerbit ITB: Petruzella, Frank D., 1996. Elektronik Industri. Yogyakarta: Andi

Rahmat ,Rafiudin.2007.Belajar sendiri mikrokontroller AVR seri at mega 8535,

Yogyakarta.Andi Yogyakarta

Shrader.L.Robert.1989.Komunikasi Elektronika.Edisi kelima.Jilid 1.Jakarta: Erlangga

Zbar,Paul,B .1989. Industrial Electronic A-Text-Lab Manual. Third Edition Mc grawn Hill- book company:Newyork

Wisda, Riri maifitriono. 2006 Perancangan Alat Ukur Kecepatan Dan Arah Angin Berbasis Mikrokontroller AT89S52 Skripsi. Medan.Indonesia: Universitas Sumatera Utara.Tidak dipublikasikan

Alat Penunjuk Arah Angin Dan Pengukur Kecepatan Angin- Berbasis Mikrokontroller AT89C5 Teknik Elekro.Universitas Diponegoro. Diakses pada 23 februari 2012

pada 8 Juli 2014


(44)

(45)

Program Kecepata n dan Arah Angin

/***************************************************** This program was produced by the

CodeWizardAVR V2.05.3 Standard Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version :

Date : 08/07/2014 Author : user Company : free Comments:

Chip type : ATmega16A Program type : Application

AVR Core Clock frequency: 16,000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 256

*****************************************************/ #include <mega16a.h>

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

// Alphanumeric LCD functions #include <alcd.h> char buff[32]; char arah[8][10]={"Utara","TimurLaut","Timur","Tenggara","Selatan","BaratDaya"," Barat","BaratLaut"}; int i,temp,c_temp,dir,last_c=1,index=0,time=0,count; int batas1=850; int batas2=650; float v;

//150 cm 9 count 0.62 sec //1.5/0.62

//0,2688172043010753

// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) {


(46)

// Place your code here }

// Timer1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) { time++; count=TCNT0; if(time>4) { v=count*0.2688172; PORTD=0x80; lcd_clear();

sprintf(buff,"Speed %d",temp); lcd_gotoxy(0,0); lcd_puts(buff); sprintf(buff,"%.1fm/s %s",v,arah[index]); lcd_gotoxy(0,1); lcd_puts(buff); delay_ms(1000); time=0; TCNT0=0; } count=0; TCNT1=0; }

#define ADC_VREF_TYPE 0x40 // Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here void main(void)


(47)

PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0xC0;

// Timer/Counter 0 initialization // Clock source: T0 pin Rising Edge // Mode: Fast PWM top=0xFF // OC0 output: Disconnected TCCR0=0x4F;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 2000,000 kHz // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x02; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1A=50000; OCR1BH=0x00; OCR1BL=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x11;

// ADC initialization


(48)

// ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

// Alphanumeric LCD initialization // Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTC Bit 1

// RD - PORTC Bit 2 // EN - PORTC Bit 3 // D4 - PORTC Bit 4 // D5 - PORTC Bit 5 // D6 - PORTC Bit 6 // D7 - PORTC Bit 7 // Characters/line: 16 lcd_init(16); for(i=0;i<3;i++) { PORTD=0x80; delay_ms(500); PORTD=0x40; delay_ms(500); } i=0; lcd_gotoxy(0,0); lcd_putsf("Iki_Lubis"); delay_ms(1000); lcd_clear(); TCNT0=0;

// Global enable interrupts #asm("sei")

//int batas1=850; //int batas2=650; while (1)

{ temp = read_adc(0);

if(temp > batas1) //Hitam c_temp = 1; else

{

if(temp > batas2 && temp < batas1) //Ungu c_temp = 2;


(49)

c_temp = 3; }

dir = last_c - c_temp; // dir = 2-3 = 1 if(dir==-2)dir=1;

if(dir==2)dir=-1;

last_c = c_temp;

index = index+dir; // index = 0+-1 = 0 if(index<0)index=7;

if(index>7)index=0;

PORTD=0x00;

delay_ms(50); }


(50)

(51)

(1)

// Place your code here }

// Timer1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) { time++; count=TCNT0; if(time>4) { v=count*0.2688172; PORTD=0x80; lcd_clear();

sprintf(buff,"Speed %d",temp); lcd_gotoxy(0,0); lcd_puts(buff); sprintf(buff,"%.1fm/s %s",v,arah[index]); lcd_gotoxy(0,1); lcd_puts(buff); delay_ms(1000); time=0; TCNT0=0; } count=0; TCNT1=0; }

#define ADC_VREF_TYPE 0x40 // Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here void main(void)


(2)

PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0xC0;

// Timer/Counter 0 initialization // Clock source: T0 pin Rising Edge // Mode: Fast PWM top=0xFF // OC0 output: Disconnected TCCR0=0x4F;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 2000,000 kHz // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x02; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1A=50000; OCR1BH=0x00; OCR1BL=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x11;

// ADC initialization


(3)

// ADC Voltage Reference: AVCC pin // ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84;

// Alphanumeric LCD initialization // Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTC Bit 1

// RD - PORTC Bit 2 // EN - PORTC Bit 3 // D4 - PORTC Bit 4 // D5 - PORTC Bit 5 // D6 - PORTC Bit 6 // D7 - PORTC Bit 7 // Characters/line: 16 lcd_init(16); for(i=0;i<3;i++) { PORTD=0x80; delay_ms(500); PORTD=0x40; delay_ms(500); } i=0; lcd_gotoxy(0,0); lcd_putsf("Iki_Lubis"); delay_ms(1000); lcd_clear(); TCNT0=0;

// Global enable interrupts #asm("sei")

//int batas1=850; //int batas2=650; while (1)

{ temp = read_adc(0);

if(temp > batas1) //Hitam c_temp = 1; else

{

if(temp > batas2 && temp < batas1) //Ungu c_temp = 2;


(4)

c_temp = 3; }

dir = last_c - c_temp; // dir = 2-3 = 1 if(dir==-2)dir=1;

if(dir==2)dir=-1;

last_c = c_temp;

index = index+dir; // index = 0+-1 = 0 if(index<0)index=7;

if(index>7)index=0;

PORTD=0x00;

delay_ms(50); }


(5)

(6)