Kamis, 22 Oktober 2009

LINE TRACER MENGGUNAKAN ADC

Fuhhh........., akhirnya berhasil connect juga. Perasaan ini blog dari dulu isinya kok tugas dosen semua. Jadi, gw pengen nge-share ilmu yang gw dapet waktu kuliah ya. Karena gw pernah bikin project Line tracer, gw posting mengenai line tracer saja. Line tracer ini tak pake waktu mau ada seleksi KRI/KRCI di kampus. walaupun belum 100% jadi. tapi yang penting kan tugas bisa terselesaikan.

Langsung aja, Line tracer robot adalah robot yang bsa mengikuti garis putih di atas permukaan hitam(atau garis hitam di atas permukaan putih). Pada umumnya, anak kalo bikin Line Tracer input dari sensor menggunakan pothodioda yang teganganya dikomparasikan dengan menggunakan ic op-amp seperti LM339 atau LM324 (kalo yang pake 741 kayaknya g pernah liat).
kemudian hasil output dari sensor tersebut masuk ke port mikrokontroller dengan bernilai bit logika 1 atau 0. Tapi sekarang gw pengen tampil beda, gw mo pake adc yang ada di ATMEGA 32 (kalo terasa kemahalen bisa pake ATMEGA 8, pokoknya yang ada adcnya). Disini, yang dipake adalah 7 bit pin ADC yang datanya bernilai 0 sampe 255 (tegangan referensi 5v).

sebenarnya pengen ngupload scematic ama pcb dari ni line tracer, tapi kompi gw lagi error, males nginstal ulang. jadi ini aja dulu ya..

Ketika digunakan unutk sensor garis memakai ADC, resistansi dari pothodioda harus diperhitungkan. Berdasarkan pengalaman dari anak2 asrama (sory...gw nyari praktis nya aja), biasanya potodioda disambungkan dengan resistor 22K multifilm. Gambar rangkaian persenor nya kaya gini:



Pada gambar diatas, besar vcc adalah 5 v teregulasi. Led yang dipakai adalah led superbright warna biru(kalo mo pake lebih netral, pake aja warna merah, tapi sebenarnya tergantung kondisi warna track) ukuran 5mm.

Dari sensor sensor tersebut, outputnya akan masuk ke pin adc. setelah sampe sini intinya hanya akal akaln program. Pada kasus line tracer memakai komparator , output dari komparator tersebut langsung dimasukkan ke dalam PIN mikrokontroller dalam bentuk biner. makanya teknik pemrogramanya g ribet ribet amat, tapi kalo pake adc ceritanya lain lagi. karena masukkan datanya adalah 0-255, maka perlu dilakukan setting nilai tengah (maksudnya kalo baca garis putih nilai adc nya berapa, kalo hitam berapa) untuk memastikan kondisi 0 atau satu. Misal contohnya kaya gini:

if(adc_data[0]>80)
sensor0=0;
else
sensor0=1;


pada cotoh diatas, nilai tengah dari adc adalah 80, jadi misal kalo sensor kena garis putih, nila adc akan lebih dari 80, sehingga sensor tersebut dianggap berlogika 1. kemudian untuk memprosesnya, kita lakukan manipulasi data (lohhh....) dari sensor dengan cara perhitungan matematika(hahaha...math dapat bc aja udah alhamdulillah banget padahal), dimana nilai sensor tersebut akan dikalikan dengan nilai pangkat (pow , kalo ente pake bahasa c) sesuai urutan lsb-nya. Contoh:

sensor=sensor0*1+sensor1*2+sensor2*4+sensor3*8+sensor4*16 dst...

lah...jadi kan data sensor dimulai dari 0 sampe 255. tinggal nguprek deh tu program ente maunya gimana.

oh ya, terus terang aja, dalam pembuatan line tracer ini, gw juga ngejar ke-simple-an dari hardware(walaupun kayanya sia sia, soalnya akhirnya juga gw tambahin ama lcd + push button juga), makanya, gw pake id driver L298D. bentuk nya emnag g biasa, jadi ati ati aja. Ic driver ini punya arus output maksimal 4 ampere pada voltase 47v(kalo g salah), makanya kayaknya ni cocok bwt motor motor yang lumayan besar (setelah dipikir pikir juga, kayanya motor yang gw pake g butuh arus ampe sebesar itu).

Ni gw kasih beberapa pic dari line tracer gw:


tampak depan bro



ini tampak belakang



ini tampak atas.


and how about the performance????? actually, .....saya tidak menyarankan hal ini jika ente bikin line tracer ini buat ngejar speed kenceng. Soalnya, kayanya baca ADC memang agak lambat (apa lagi tak tambahin lcd juga, tambah lemot dah), kalo lost baca garis sih g, cuman responnya agak lemot dari pada yang pake ic komparator. masalah speed, no problem. Kayanya kalo LCD g dipake, program kayanya bisa lebih kenceng.


kalo mau listing code, scematic ato pcb, silakan menghubungi e-mail ini: marifin.ardiansyah@yahoo.com

7 komentar:

Wahyu Agung mengatakan...

bawsolution@gmail.com

Wahyu Agung mengatakan...

bawsolution@gmail.com

durotul mengatakan...

durotul.muntafiah@gmail.com

Cholik mengatakan...

cholik.indriyanto@gmail.com

Cholik mengatakan...

cholik.indriyanto@gmail.com

Unknown mengatakan...

arifmuhamad727@gmail.com

Unknown mengatakan...

tiopw2121@gmail.com