Kamis, 22 Januari 2009

mengaktifkan motor servo dengan bascom

MOTOR SERVO

16.1. PENDAHULUAN

Motor servo adalah sebuah motor dengan sistem closed feedback di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Tampak pada gambar dengan pulsa 1.5 mS pada periode selebar 2 mS maka sudut dari sumbu motor akan berada pada posisi tengah. Semakin lebar pulsa OFF maka akan semakin besar gerakan sumbu ke arah jarum jam dan semakin kecil pulsa OFF maka akan semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam.

Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian, untuk beberapa keperluan tertentu, motor servo dapat dimodifikasi agar bergerak kontinyu. Pada robot, motor ini sering digunakan untuk bagian kaki, lengan atau bagianbagian lain yang mempunyai gerakan terbatas dan membutuhkan torsi cukup besar.

Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW) dimana arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya. Motor Servo tampak pada gambar 16.1.

Gambar 16.1. Motor Servo

Motor Servo merupakan sebuah motor DC yang memiliki rangkaian control elektronik dan internal gear untuk mengendalikan pergerakan dan sudut angularnya. Sistem Mekanik Motor Servo tampak pada gambar 2.32.

Gambar 16.2. Sistem Mekanik Motor Servo

Motor servo adalah motor yang berputar lambat, dimana biasanya ditunjukkan oleh rate putarannya yang lambat, namun demikian memiliki torsi yang kuat karena internal gearnya.

Lebih dalam dapat digambarkan bahwa sebuah motor servo memiliki :

Ø 3 jalur kabel : power, ground, dan control

Ø Sinyal control mengendalikan posisi

Ø Operasional dari servo motor dikendalikan oleh sebuah pulsa selebar ± 20 ms, dimana lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut maksimum.

Ø Konstruksi didalamnya meliputi internal gear, potensiometer, dan feedback control.

16.2. JENIS-JENIS MOTOR SERVO :

· Motor Servo Standar 180°

Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut mencapai 90° sehingga total defleksi sudut dari kanan – tengah – kiri adalah 180°.

· Motor Servo Continuous

Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan defleksi sudut putar (dapat berputar secara kontinyu).

16.3. KEGUNAAN MOTOR SERVO :

Kebanyakan motor servo digunakan sebagai :

• Manipulators.

• Moving camera’s.

• Robot arms.

16.4. PENSINYALAN MOTOR SERVO :

Mode pensinyalan motor servo tampak pada gambar 2.33.

Gambar 16.3. Pensinyalan Motor Servo

Contoh dimana bila diberikan pulsa dengan besar 1.5ms mencapai gerakan 90 derajat, maka bila kita berikan data kurang dari 1.5 ms maka posisi mendekati 0 derajat dan bila kita berikan data lebih dari 1.5 ms maka posisi mendekati 180 derajat. Contoh Posisi dan Waktu Pemberian Pulsa tampak pada gambar 2.34.

Gambar 16.4. Contoh Posisi dan Waktu Pemberian Pulsa

· Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan sinyal PWM dengan frekuensi 50Hz.

· Dimana pada saat sinyal dengan frekuensi 50Hz tersebut dicapai pada kondisi Ton duty cycle 1.5ms, maka rotor dari motor akan berhenti tepat di tengah-tengah (sudut 0° / netral).

· Pada saat Ton duty cycle dari sinyal yang diberikan kurang dari 1.5ms, maka rotor akan berputar ke arah kiri dengan membentuk sudut yang besarnya linier terhadap besarnya Ton duty cycle, dan akan bertahan diposisi tersebut.

· Dan sebaliknya, jika Ton duty cycle dari sinyal yang diberikan lebih dari 1.5ms, maka rotor akan berputar ke arah kanan dengan membentuk sudut yang linier pula terhadap besarnya Ton duty cycle, dan bertahan diposisi tersebut.

Bentuk-Bentuk Motor Servo tampak pada gambar 2.35.

Gambar 16.5. Bentuk-Bentuk Motor Servo

Dimensi Motor Servo tampak pada gambar 2.36.

Gambar 16.6. Dimensi Motor Servo

Gambar 16.7. Pin-Pin dan Pengkabelan Pada Motor Servo

16.5. PENGENDALIAN MOTOR SERVO :

Pengendalian sebuah motor servo dengan menggunakan mikrokontroler :

Ilustrasi pengendalian motor servo tampak pada gambar 2.38.

Driver motor DC Servo

Bentuk motor servo dapat dilihat pada gambar 3. Terdapat tiga utas kabel dengan warnamerah, hitam, dan kuning. Kabel merah dan hitam harus dihubungkan dengan sumber tegangan4-6 volt dc agar motor servo dapat bekerja normal. Sedangkan kabel berwarna kuning adalahkabel data yang dipakai untuk mengatur arah gerak dan posisi servo. Pergerakan motor servo terhadap perubahan lebar pulsa tampak pada gambar 4.24.

Gambar 16.8. Pergerakan motor servo terhadap perubahan lebar pulsa

16.6. RANGKAIAN DRIVER MOTOR SERVO

Rangkaian berikut adalah rangkaian driver motor servo. Rangkaian tersebut digunakan untuk mengendalikan motor servo.

Gambar 16.9. Rangkaian rangkaian driver motor servo

16.6.1. PEMROGRAMAN RANGKAIAN DRIVER MOTOR SERVO

Setelah membuat rangkaian rangkaian driver motor servo, maka sekarang saatnya Anda membuat program yang digunakan untukmengendaliakan motor servo.

Program sebagai berikut ini

'--------------------------------------------------------

'Program Bab 8.1 rutin interupsi eksternal 0

'--------------------------------------------------------

'--------------------------------------------------------

'DEKLARASI CRISTAL 12MHz

'--------------------------------------------------------

$crystal = 12000000

'--------------------------------------------------------

'DEKLARASI HEADER

'--------------------------------------------------------

$regfile="m8535.dat" 'jika menggunakan ATMEGA8535

'--------------------------------------------------------

'DEKLARASI KONFIGURASI MOTOR SERVO

'--------------------------------------------------------

Config Servos = 1 , Servo1 = Porta.0 , Reload = 10 ,

'--------------------------------------------------------

'DEKLARASI PORT A

'--------------------------------------------------------

Config Porta = Output

'--------------------------------------------------------

'MENGAKATIFKAN INTERUPSI

'--------------------------------------------------------

Enable Interrupts

'--------------------------------------------------------

'RUTIN UTAMA

'--------------------------------------------------------

Servo(1) = 150

Wait 1.5

Servo(1) = 75

Wait 1.5

Servo(1) = 100

Wait 1.5

Servo(1) = 125

Wait 1.5

Servo(1) = 80

Wait 1.5

Penjelasan Program

  1. 'Program Bab 8.1 rutin interupsi eksternal 0

Ungkapan ini menyatakan judul program yang akan kita buat.

  1. $crystal = 12000000

Ungkapan ini menyatakan mikrokontroller.menggunakan crytal sebesar 1MHz

  1. $regfile="m8535.dat" 'jika menggunakan ATMEGA8535

Ungkapan ini menyatakan pengaruh preprosesor untuk menyisipkan header m8535.dat yang berisi deklarasi register mikrokontroller.

  1. Config Servos = 1 , Servo1 = Porta.0 , Reload = 10 ,

Ungkapan ini untuk konfigurasi motor servo. Motor servo di letakkan pada port A.0

  1. Config Porta = Output

Ungkapan di atas merupakan pendefinisian pin mikro, port C sebagai keluaran.

  1. Enable Interrupt

Ungkapan di atas merupakan pengaktifan interupsi..

  1. Servo(1) = 140

Wait 1.5

Servo(1) = 70

Wait 1.5

Servo(1) = 100

Wait 1.5

Servo(1) = 125

Wait 1.5

Servo(1) = 80

Wait 1.5

Ungkapan di atas merupakan program utama. Dalam program utama terdapat data untuk menggerakkan motor servo. Pada waktu port A.0 mengeluarkan data 140 maka motor servo akan bergerak ke kanan. Saat port A.0 mengeluarkan data 100 maka motor servo terletak di tengah. Untuk menggerakkan motor servo bergerak ke kiri maka di berikan pulsa 70 pada port A

Cara kerja program:

Pada program ini, di perlukan deklarasi register untuk mikrokontroller jenis ATMEGA8535. Setelah mendeklarasi register, maka program akan masuk ke dalam program utama. Dalam program utama terdapat data untuk menggerakkan motor servo. Pada waktu port A.0 mengeluarkan data 140 maka motor servo akan bergerak ke kanan. Saat port A.0 mengeluarkan data 100 maka motor servo terletak di tengah. Untuk menggerakkan motor servo bergerak ke kiri maka di berikan pulsa 70 pada port A.