Skip to main content

Hitungan Timer Interrupt Microcontroller Sebagai Pembangkit Pulsa Pada Pengontrolan Motor Servo

Atas beberapa permintaan dan pertanyaan, maka artikle ini saya tulis untuk melengkapi tutorial motor servo pada posting sebelumnya. disini akan dibahas cara menghitung interrupt timer yang dimanfaatkan sebagai pembangkit pulsa pada pengontrollan Motor Servo. perhatikan angka pada program interrupt dibawah ini terlebih dahulu.
pada bagian angka 867 didapat dai perhitungan rumus berikut ini:

Rumus
A = (1/Crystall) * 255
B = (1/Frequency Motor DC)
Hasilnya = B/A

Jika di hitung menjadi seperti berikut ini alurnya. disini frekuensi motor DC biasanya 50 Hz dengan tegangan yang cukup sehingga memenuhi kebutuhan arus dari motor itusendiri. berikut ini adalah perhitungannya.

A = (1/11059200)* 255
    = (9,04224537037037e-8)*255
    = 2,305772569444444e-5

B = (1/50)
    = 0,02

Hasilnya = B/A
              = 0,02 / 2,305772569444444e-5
              = 867,3882352941176

gimana? udah jelas kan?
sedangkan pada bagian angka dibawahnya adalah sebagai pembatas saja. dikarenakan motor servo hanya membutuhkan pulsa selebar 1ms sampai 2ms maka dibatasi mulai range 22 - 109 (sesuai percobaan).
untuk mendapatkan angka ini cukup dengan memberikan nilai yaitu dengan langkah sebagai berikut

Langkah Pengujian
  1. ganti angka 22 dengan 0 dan 109 dengan 867(maksimum)
  2. lakukan pengontrolan 1 servo saya yang ingin diketahui batasannya
  3. berikan angka pada servo tersebut dan amati pergerakannya.
  4. jika sudah mencapai 180 derajat atau 0 derajat(putaran habis).
  5. lakukan pengurangan atau penambahan untuk mengetahui pergerakan servo apakah jika dikurangi malah berbalik atau sebaliknya.
  6. jika sudah maka lakukan pengurangan atau penambahan sedikit demi sedikit untuk mendapatkan nilai pasti dari posisi itu (180 atau 0 derajat) samapai menurut kita posisi itu adalah sudah cocok. 
  7. catar angkanya dan buat pembatasnya.
Pembatas ini di buat agar saat servo dijalankan tidak terjadi delay dari interrup itu sendiri. jika banyak sekali angka yang tersisa seperti halnya yang digunakan hanya range 22 - 109 maka sisanya akan menjadi delay. sehingga respon robot berkurang alias kurang cepat.
sekian dulu ni. capek banget ngetik dadakan gini tapi tetep baca blog ini ya........!!!! kalian gak bakal tau apa yang akan aq bagi disini so.........lirik sini aklo perlu ikutin terus updatenya di www.digitdude.com.
salam anak pulau.....:-)  

Related Post
  1. Pemrograman-banyak-motor-servo menggunakan interrupt timer ATtiny2313
  2. Pemrograman-satu-motor-servo menggunakan interrupt timer ATtiny2313
  3. Rangkain servo motor controller ATmega8
  4. Smooting Servo motor (menggerakkan motor servo secara smoot)
  5. Motor-servo-mg90-tower-pro-menggunakan ATtiny2313
  6. Blue Arrow 4.3 Gram Micro Servo For Futaba, Hitec, JR, GWS Receivers
  7. 322HD Standard Servo

Comments

  1. Wooww..!!! Ada Pencerahan gy..!!

    Thanks Beud INFO'y mas..!!!
    makin demen sama nih BLOG..!! hoho..

    Tp saya bingung nih..!!

    1. Knp frekuensi motor DC itu 50 Hz..??
    2. Truz,Knp : Hasilnya = frekuensi pd motor DC / Frekuensi pd Crystal d Mikro.

    Sblumnya sorry klo bny nanya.., :)
    coz, msh newbie nih..!

    ReplyDelete
  2. 1. spesifikasi umum mungkin ya.....saya juga kurang paham. coba di wikipedia. yang jelas kalo tegangan motor membutuhkan 12 volt misalnya tapi kamu ngasi 6 volt maka hitungan diatas bisa salah tu. kecuali servo yang memiliki range tegangannya.

    2. kamu pernah konfersi menit ke detik gak? fisika semester 1 atau SM lah....nah...sama tu....untuk menyamakan total interrup dengan frekuensi yang memepengaruhi kecepatan motor.

    ada yang mau tambahin? silahkan komen dibawah. he he he

    ReplyDelete
  3. hahhahahaha
    Yang bikin program ngopi dari mana neh, cara2nya, gw ada ngelihat dari extreme elctronics but nice post...

    keterangan lebih jelas : http://extremeelectronics.co.in/avr-tutorials/servo-motor-control-by-using-avr-atmega32-microcontroller/

    Harusnya TS nerangin tentang fungsi timer dan prinsip2 motor DC.

    ReplyDelete
  4. gak ada kopas2san disini..jelas aja beda sama tu web dia pakai open source.
    jujur aja saya belajar dari temn kampus(anak robot 2010 EEPIS-ITS.

    ReplyDelete
  5. mau numpang tanya donk, kalo buat ngegerakin servo sampe 90 derajat harus dikasi 64 dulu ya? kaya yang ada di programnya kan servo=64..
    itu 64 nya dapet darimana yaa?? thx b4 :D

    ReplyDelete
  6. dari sini...misal
    23 untuk 0 derajat
    108 untuk 180 derajat

    108-23=85 // range data servo yang diterima(masih merespon)
    85/2=42 // hasil dibagi 2 cari nilai tengah
    42+23=65 // nilai ketemu saat ditambahin dengan range paling bawah dari gerakan servo

    untuk angka pembatas yang saya bulatkan diatas yg 22<a && a<109 itu dapat di ganti menjadi 0-867 terlebih dahulu baru coba masukkan data perlahan pada servo. selama servo masih merespon berarti angka itu masih diterima

    setelah tidak merespon maka itulah batasan yang harus dimasukkan ke pembatas diatas yg saya bulatkan tadi (22<a && a<109)

    jadi lakukan percobaan maka baru diketahui servo yg kita miliki krn konfiguraSI gear berbeda@ tiap servo akan tetapi tetep menggunakan DC motor dengan frekuensi 50hz

    ReplyDelete
  7. oia, motor servo yang dipake disini merk nya apa ya? apa setiap servo punya datasheet yang berbeda untuk memberikan pulsanya?

    ReplyDelete
  8. setiap servo standart biasanya sama mulai dari 1ms sampai 2ms.
    tapi beberapa servo yg saya coba itu hampir beda semua. servo yg saya gunakan disini hitech servo robot type HSR 5498 SG.
    HSR=hitect servo robot. sedangkan SG=steal gear

    ReplyDelete
  9. hmm gitu.. kalo buat atmega8535 yang dirubah apanya ya mas?
    sori ni nanya" mulu.. hehe

    ReplyDelete
  10. program tetep sama. cuma inisialisasasi yg disesuikan dengan chip yg digunakan. kalo nanya yg mana yg dirumah malah bingung ane.......he he he he he he he

    ReplyDelete

Post a Comment

Popular posts from this blog

PCB Jam Digital 7 Segmen Mengunakan ATmega8 (PCB,SCH dan Firmware Download)

akhirnya tercapai juga ni......
mau upload yang satu ini. langsung ke TKP aja. semoga bermanfaat.



rangkaian skematicnya seperti berikut ini


rangkaian diatas menggunakan NET sehingga dengan hanya mengganti nama pada tiap PIN komponen maka dengan mudah langsung terhubung secara otomatis. terlihat lebih rapi kan..........? jika kita menggunakan kabel semuanya. mungkin yg liatnya udah pusing duluan. tp jangan panik.......... disini saya sertakan link download PCB dan skematic diatas.
Download..... PCB jam digital ATmega8Skematik Jam Digital ATmega8Firmware jam digital ATmega8Main Program jam digital ATmega8 (sudah OK)Sub rutin program jam digital ATmega8Project file programListing komponencara gabung program karkulasi.c dan program utamaHasil rangkaian Jam digital ATmega8 Semua file download diatas terutama pada main program dan sub rutin harus di gabungkan untuk dapat di kompilasi menjadi file [dot]HEX,  atau bisa langsung gunakan file firmware dan diisi ke mikrokontroller ATmega8. terima…

Perbaiki Baterai Lithium Polymer (li-po)

kalo ngetik ni key word seperti diatas tu....bakalan nyasar kesini...
nah......

gak usah banyak basa-basi deh.
malam ini ada masalah besar yang terjadi pada baterai line tracer kesayanganku, sebuah Lithium Polymer di nyatakan rusak oleh chargernya sendiri... begitu tega dia mengkhianati pasangannya... ngaur aja ni....

tu....kasus ini udah buat saya rugi sampe Rp. 180 Rb untuk sebuah harga baterai Lithium Polymer yang memiliki tegangan 7,4 dimana terdapat 2 buah cell baterai didalamnya.

ada beberapa hal yang perlu diperhatikan kalau pakai baterai Li-po ini.

pada baterai
1. baterai akan rusak jika tegangan di tiap cellnya dibawah 3,5 Volt. normalnya 3.7.

2. mengisi ulang baterai hanya bisa dilakukan dengan charger khusus yang telah diatur khusus menjaga tegangan tetap stabil, jika menggunakan charger biasa maka baterai dalam jangka waktu panjang akan menggelembung.

pada charger (yang murahan ni....)
1. tegangan input charger menggunakan 12 DC
2. led merah akan menyala jika power input charger…

Minimum System ATmega8535/16/32 PCB Menggunakan Software Eagle

perhatkan screen shot berikut ini, mungkin dah pada tau kalo ngeliat ni rangkaian. soalnya sangat - sangat simple and sangat mudah untuk dibuat apalagi kalau menggunakan cara membuat PCB seperti yang telah saya jelaskan pada posting sebelum - sebelumnya.


gambar diatas merupakan PCBminimum system ATmega8535 / ATmega16 / ATmega32. kenapa demikian?
karena konfigurasi pin dari jenis Microcontroller diatas adalah sama, hanya dibedakan pada memorinya saja.
perhatikan juga tata letak komponennya yang hanya sedikit he he he...

untuk posisi port udah tersusun rapi dikaenakan konfigurasi pin mikrokontroller ini sudah berurutan jadi gak susah - susah deh...
untuk lebih jelasnya bisa langsung lihat data sheetnya aja oke? berikut juga saya sertakan PCB nya menggunakan eagle versi 5.0.0

download
[1] ATmega8535
[2] ATmega16
[3] ATmega32
[4] Minimum system Mikrokontroller ATmega8535/16/32

ada pertanyaan? silahkan....
ada permintaan? monggo......
salam anak pulau aje ye......:-)

Related Article
[1] Mini…