10 Juli 2012

Dan Cahaya pun Mengukur Kecepatan...

Kali ini aku mau coba share tugas kuliahku yang cukup menguras pikiran, tenaga maupun duit (hihihi). Semester lalu, saya mengambil mata kuliah perancangan instrumentasi dan mendapatkan tugas untuk membuat sebuah alat yang dikembangkan dengan otak (prosesor) at mega 8535. Saya tergabung dengan 3 teman saya, yaitu Ridho sang programmer, Resa yang jago buat hardware, dan Daru yang gokil anaknya. Kami diberi kesempatan, untuk bebas mengembangkan dan membuat alat sesuai dengan kreasi kita. Dengan batas waktu penyusunan proposal, pembuatan hardware, programming, troubleshooting, pembuatan casing, sampai presentasi dan demo alat selama 1 semester dan budget yang harus ditekan seminimal mungkin, kami memutuskan untuk membuat Alat Pengukur Kecepatan berbasis Mikrokontroler AT Mega 8535 dengan menggunakan laser pointer dan sensor photodiode.

Ilustrasi by http://zonawaktu.blogspot.com


Lalu, bagaimana pancaran sinar dari laser pointer, dapat mengukur kecepatan sebuah benda. Simak ulasan saya berikut ini...



Dalam mengerjakan tugas tersebut, saya bersama teman-teman sekelompok menggunakan mikrokontroler ATMEGA 8535 untuk merancang suatu alat ukur kecepatan. Dengan harapan, pengembangan pemanfaatannya dapat diaplikasikan di jalan-jalan tol. Sehingga para penegak hukum dapat dengan mudah dan segera menindak para pengemudi yang terbukti melaju melebihi atau mengurangi batas kecepatan yang diijinkan. Alat ini terdiri atas 2 rangkaian trasmitter dan 2 rangkaian receiver. Dua rangkaian receiver dipasang dengan jarak tertentu. Receiver 1 berfungsi untuk menentukan waktu kejadian dan untuk start menghitung waktu. Receiver 2 untuk menghentikan perhitungan waktu pada receiver 1. Kemudian kedua receiver tersebut dihubungkan dengan mikrokontroler ATMEGA 8535 dan data yang masuk akan diolah dan ditampilkan pada LCD.

Masih pada bingung ya? Saya coba perjelas, alat ini dikembangkan dengan prinsip dasar fisika, dimana jika sebuah benda melintasi sebuah jarak dengan waktu tertentu maka dapat diketahui kecepatan dari benda tersebut. Secara matematis,
V = S / t

Dalam sistem peralatan yang direncanakan, variabel S diperoleh dari jarak 2 sensor dan receiver. Sedangakan t merupakan selang waktu saat benda melintasi sensor 1 sampai sensor 2. Sehingga dari besaran-besaran itu, data akan diolah dalam microcontroler dan dihasilkan variabel v yang menunjukkan kecepatan benda.

Dalam sistem ini juga direncanakan, adanya pengaturan batas kecepatan maksimum. Jika kecepatan benda terukur melebihi batas kecepatan yang ditentukan, maka akan keluar peringatan sirene atau bunyi buzzer.

Bagaimana, sudah mempunyai gambaran ? Sekarang saya coba menerangkan prinsip kerjanya. Blok digram alat yang direncanakan adalah sebagai berikut :


Penjelasan dari diagram blok tersebut adalah sebagai berikut.
 Laser dalam alat ini berfungsi untuk memberi kondisi logika satu kepada sensor. Laser dipilih karena intensitas pancaran cahayanya tidak berkurang walaupun dipancarkan pada jarak yang cukup jauh.

 Sensor disini berfungsi untuk mengetahui apakah cahaya dari laser tertutup oleh benda ataukah tidak. Rangkaian sensor ini tersusun atas photodioda, resistor.

 Mikrokontroler adalah pusat kendali dari alat ini. Komponen ini akan mengubah input dari sensor menjadi output berupa bunyi buzzer.

 Tombol berfungsi untuk mengatur batas kecepatan yang akan dideteksi yang ada di lcd.

 LCD (Liquid Crystal Display) digunakan untuk menampilkan kecepatan dari kendaraan yang akan dideteksi.

 Buzzer digunakan untuk menghasilkan suara alarm. Buzzer akan aktif jika mobil yang melintas melaju dengan kecepatan diatas batas dari pengaturan pendeteksi kecepatan.

Sketsa Desain Alat :


Jadi ceritanya gini, pada mulanya, sinar laser pointer akan ditujukkkan tepat pada sensor. Dalam hal ini, sensor photodiode  terkena cahaya. Sehingga  photodiode  akan bersifat sebagai sumber tegangan dan nilai resistansinya akan menjadi kecil. Akibatnya akan ada arus bocor yang mengalir ke ADC mikrokontroler. Namun, ketika benda melintasi sistem, maka dalam selang waktu tertentu, sinar laser pointer akan terhalang dan tidak mampu menjangkau sensor. Dalam hal ini, photodiode tidak terkena cahaya, maka nilai resistansinya akan besar atau dapat diasumsikan tak hingga. Perbedaan nilai resistan photodiode inilah yang menjadi interupsi dan pemicu bagi prosesor mikrokontroler mulai dan berhenti mencacah waktu.

Sekarang sudah jelaskan ? Mari kita mulai melayout rangkaianan skematik untuk membuat hardware alat.

Tampilan skematik hardware alat

Untuk melayout skematik diatas, kami menggunakan software EAGLE Layout Editor versi 5.9.0. Adapun hasil layounya, adalah sebagai berikut :

Tampilan layout hardware alat

Tampilan layout (siap print) hardware alat

Setelah proses pembuatan hardware selesai, kami buat listing programnya menggunakan bahasa basic dengan software Bascom-AVR. Adapun listing program sudah saya cantumkan pada akhir postingan ini.


Setelah program didownload,dan dibuat casing, maka tampilannya sebagai berikut :
Tampilan Alat Pengukur Kecepatan berbasis Mikrokontroler AT Mega 8535

Cara Pengoperasian
• Sambungkan alat dengan catu daya DC 12V

• Tekan tombol on/off

• Tunggu berapa saat, saat muncul tulisan “batas kecepatan” atur batas yang dikehendaki (settingan default 50 cm/s), dengan menekan tombol up atau down.. Jika sudah yakin, kemudian tekan tombol ok.

• Dengan laser pointer, sorot sinar tepat pada permukaan sensor .

• Alat akan menampilkan batas kecepatan yang telah diatur. Jika benar, tekan tombol ok.

• Lewatkan benda yang mau diukur kecepatannya secara berurutan dimulai dari sensor 1 ke sensor 2.

• Kecepatan benda akan terukur, jika meleibihi batas yang diatur, buzzer akan berbunyi.

• Tekan tombol reset untuk mengulang.


Kelebihan
• Portable, alat berdimensi kecil dan ringan. Sehingga dapat dengan mudah dibawa kemana saja.

• Hasil pengukuran dalam sekejap dapat ditampilkan.

• Batas kecepatan maksimal dapat diuah-ubah.

• Dilengkapi dengan fitur sirene yang akan berbunyi jika kecepatan benda melebih batas yang diatur.

Kekurangan
• Laser pointer harus diarahkan dengan tepat pada sensor.

• Benda yang diukur harus melintasi jangkauan sinar laser pointer.

• Hasil pengukuran hanya ditampilkan dalam satuan Cm/second.

• Pengaturan batas kecepatan hanya dapat dilakukan pada range 25-75 Cm/second.


Listing Program :
$regfile = M32def.dat
$crystal = 1000000

Dim Detik As Byte , A As Integer , B As Single , Kec As String * 10 , In1 As Word , In0 As Word , Waktu As Single , Lama As String * 10 , Batas As Byte , Final As Byte , Up As Integer , Down As Integer , Oke As Integer , Cancel As Integer
Config Portc = Output , Porta = Input , Portb = Input , Portd = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Adc = Single , Prescaler = Auto
Detik = 0
Portb = 255
Batas = 50
Portd = 0

Start Adc

Main:
Cls
Lcd "Speed Test"
Lowerline
Lcd "ELINS 2009"
Wait 1
Cls
Lcd "Kelompok 5"
Lowerline
Lcd "MANTAB"
Wait 1
Cls
Lcd "Pilih Batas Speed"
Goto Menu

Menu:
Cls
Lcd "Batas Kecepatan ="
Lowerline
Lcd Batas ; " cm/s"
Oke = 0
Up = 0
Down = 0
Cancel = 1

Do
Debounce Pinb.0 , 0 , Rutin_up , Sub
Debounce Pinb.1 , 0 , Rutin_down , Sub
Debounce Pinb.2 , 0 , Rutin_oke , Sub
Debounce Pinb.3 , 0 , Rutin_cancel , Sub
Debounce Pinb.4 , 0 , Rutin_reset , Sub
Loop
End

Utama:
Cls
Lcd "Tunggu Input"
A = 0
Do
In0 = Getadc(0)
If In0 > 500 Then
Goto Mulai
End If
Loop
End

Mulai:
While A < 100000 Incr Detik Waitms 10 Waktu = Detik / 100 Lama = Fusing(waktu , "#.##") Cls Lcd "Waktu = " ; Lama ; " s" A = A + 1 In1 = Getadc(1) If In1 > 500 Then
Goto Berhenti
End If
Wend
Return

Berhenti:
Up = 1
Down = 1
Oke = 1
Cancel = 1
B = 10 / Waktu
Kec = Fusing(b , "#.##")
Cls
Lcd "Kec = " ; Kec ; " cm/s"
Lowerline
Lcd "Lagi?"
Final = B
If Final > Batas Then
Portd = &H0F
End If
A = 1001
Detik = 0
Return

Rutin_up:
If Up = 0 Then
Incr Batas
Goto Menu
End If
Return

Rutin_down:
If Down = 0 Then
Decr Batas
Goto Menu
End If
Return

Rutin_oke:
If Oke = 0 Then
Cls
Lcd "Mulai Batas ="
Lowerline
Lcd Batas ; " cm/s"
Oke = 1
Up = 1
Down = 1
Cancel = 0
Else
If Oke = 1 Then
Goto Utama
End If
End If
Return

Rutin_cancel:
If Cancel = 0 Then
Oke = 0
Up = 0
Down = 0
Goto Menu
End If
Return

Rutin_reset:
Batas = 50
Goto Main
Return








Bagikan ke :

Facebook Google+ Twitter Digg Technorati Reddit

Artikel Yang Berhubungan



5 komentar:

Anonim mengatakan...

Program dengan bahasa c ada gak?
terima kasih

Argo Satrio mengatakan...

Wah maaf saya hanya menyiapkan program dalam bahasa basic. Jika anda berminat, saya bisa mengirimkan proposal dan laporan hasil pembuatan alat ini. Disitu ada flowchart program. Jika anda menguasai pemrograman bahasa C dan melihat flowchart program yang kami buat, mungkin anda bisa membuat programnya sendiri.

Salam,

Anonim mengatakan...

Programnya kok error ya gak bisa di compile

poleng mengatakan...

makasih bos infonya .ini bermanfaat bagi saya,

Daniel William Marpaung mengatakan...

gan mau nanya dong komponen yang dibutuhin apa aja ya?

Poskan Komentar

Pengunjung blogku yang terhormat,
Sebagai pengunjung yang baik, tidak salahnya anda memberikan kritik, saran maupun opini yang bersifat membangun, untuk kebaikan di masa yang akan datang.
atas perhatiannya dan komentarnya saya ucapkan, terima kasih....