aplikasi motor stepper menggunakan at89s51 dengan sdcc.doc

12
APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC Posted by iswanto Motor stepper merupakan piranti elektromekanik yang mengkonversi pulsa-pulsa listrik menjadi gerakan mekanik. Rotor (shaft) motor stepper berotasi dalam kenaikan langkah diskret ketika pulsa perintah listrik diterapkan ke motor dalam urutan yang sesuai.Unutk lebih lengkapnya klik disini

Upload: bocah-ilang

Post on 03-Jan-2016

212 views

Category:

Documents


3 download

DESCRIPTION

APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC

TRANSCRIPT

Page 1: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC

Posted by iswanto

Motor stepper merupakan piranti elektromekanik yang mengkonversi pulsa-pulsa listrik menjadi gerakan mekanik. Rotor (shaft) motor stepper berotasi dalam kenaikan langkah diskret ketika pulsa perintah listrik diterapkan ke motor dalam urutan yang sesuai.Unutk lebih lengkapnya klik disini

Page 2: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

MOTOR STEPPER

1. PENDAHULUAN

Motor stepper merupakan piranti elektromekanik yang mengkonversi pulsa-pulsa listrik menjadi

gerakan mekanik. Rotor (shaft) motor stepper berotasi dalam kenaikan langkah diskret ketika pulsa

perintah listrik diterapkan ke motor dalam urutan yang sesuai. Urutan pulsa berhubungan dengan arah

putaran motor. Kecepatan rotasi motor berhubungan dengan frekuensi masukan. Tabel 1 menjelaskan

tentang pola pemrograman mode kerja full-step dari motor stepper.

Tabel 1. Pola Pemrograman Full-Step Pada Port Mikrokontroler

PD0 PD3 PB2 PD2

1 1 0 0

0 1 1 0

0 0 1 1

1 0 0 1

Tabel di atas merupakan pola putaran searah jarum jam (clockwise). Untuk putaran berlawanan

jarum jam (counter clockwise), maka urutan pola harus dibalik. Pada dasarnya ada 2 jenis Motor Stepper

yaitu : Bipolar dan Unipolar. Sebuah motor stepper berputar 1 step apabila terjadi perubahan arus pada

koil-koilnya, mengubah pole-pole magnetik disekitar pole-pole stator.

Page 3: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

2. TIPE MOTOR STEPPER

Motor stepper dibedakan menjadi dua macam berdasarkan magnet yang digunakan, yaitu

tipe permanen magnet dan variabel reluktansi. Pada umumnya motor stepper saat ini yang

digunakan adalah motor stepper yang mempunyai variabel relukatansi. Cara yang paling mudah

untuk membedakan antara tip motor stepper di atas adalah dengan cara memutar rotor dengan

tangan ketika tidak dihubungkan ke suplai.

Pada motor stepper yang mempunyai permanen magnet maka ketika diputar dengan

tangan akan terasa lebih tersendat karena adanya gaya yang ditimbulkan oleh permanen magnet.

Tetapi ketika menggunakan motor dengan variabel reluktansi maka ketika diputar akan lebih

halus karena sisa reluktansinya cukup kecil.

2.1. VARIABEL RELUKTANSI MOTOR

Pada motor stepper yang mempunyai variabel reluktansi maka terdapat 3 buah lilitan

yang pada ujungnya dijadikan satu pada sebuah pin common. Untuk dapat menggerakkan motor

ini maka aktivasi tiap-tiap lilitan harus sesuai urutannya.

Gambar 1 merupakan gambar struktur dari motor dengan variabel reluktansi dimana tiap

stepnya adalah 30°. Mempunyai 4 buah kutub pada rotor dan 6 buah kutub pada statornya yang

terletak saling berseberangan.

Page 4: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

Gambar 1. Variabel Reluktance Motor

Jika lilitan 1 dilewati oleh arus, lilitan 2 mati dan lilitan 3 juga mati maka kumparan 1

akan menghasilkan gaya tolakan kepada rotor dan rotor akan berputar sejauh 30 ° searah jarum

jam sehingga kutub rotor dengan label Y sejajar dengan kutub dengan label 2.

Jika kondisi seperti ini berulang terus menerus secara berurutan, lilitan 2 dilewati arus

kemudian lilitan 3 maka motor akan berputar secara terus menerus. Maka agar dapat berputar

sebanyak 21 step maka perlu diberikan data dengan urutan seperti pada gambar 2.

Gambar 2. Data motor steper

‘1’ pada gambar 12.2 diartikan bahwa lilitan yang bersangkutan dilewati arus sehingga

menghasilkan gaya tolak untuk rotor. Sedangkan ‘0’ diartikan lilitan dalam kondisi off, tidak

mendapatkan arus.

2.2. UNIPOLAR MOTOR STEPPER

Motor stepper dengan tipe unipolar adalah motor stepper yang mempunyai 2 buah lilitan

yang masing-masing lilitan ditengah-tengahnya diberikan sebuah tap seperti tampak pada

gambar 3.

Gambar 3. Unipolar Motor stepper

Page 5: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

Motor ini mempunyai step tiap 30° dan mempunyai dua buah liliatan yang didistribusikan

berseberangan 180° di antara kutub pada stator. Sedangkan pada rotonya menggunakan magnet

permanen yang berbentuk silinder dengan mempunyai 6 buah kutub, 3 kutub selatan dan 3 buah

kutub utara. Sehingga dengan konstrusi seperti ini maka jika dibutuhkan ke presisian dari motor

stepper yang lebih tinggi dibutuhkan pula kutub-kutub pada stator dan rotor yang semakin

banyak pula. Pada gambar 12.4, motor tersebut akan bergerak setiap step sebesar 30° dengan 4

bit urutan data (terdapat dua buah lilitan dengan tap, total lilitan menjadi 4 lilitan).

Ketelitian dari magnet permanen di rotor dapat sampai 1.8° untuk tiap stepnya. Ketika

arus mengalir melalui tap tengah pada lilitan pertama akan menyebabkan kutub pada stator

bagian atas menjadi kutub utara sedangkan kutub stator pada bagian bawah menjadi kutub

selatan. Kondisi akan menyebabkan rotor mendapat gaya tarik menuju kutub-kutub ini. Dan

ketika arus yang melalui lilitan 1 dihentikan dan lilitan 2 diberi arus maka rotor akan mengerak

lagi menuju kutub-kutub ini. Sampai di sini rotor sudah berputar sampai 30° atau 1 step.

Gambar 4. Urutan Data Untuk Motor Stepper Tipe Unipolar (torsi normal)

Gambar 5. Urutan Data Motor Stepper Tipe Unipolar (torsi besar)

Untuk meningkatkan torsi yang tidak terlalu besar maka dapat digunakan urutan pemberian data.

Dimana terdapat dua buah lilitan yang di beri arus pada suatu waktu. Dengan pemberian urutan

Page 6: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

data seperti ini akan menghasilkan torsi yang lebih besar dan tentunya membutuhkan daya yang

lebih besar.

Dengan urutan data baik pada Gambar 5 di atas akan menyebabkan motor berputar

sebanyak 24 step atau 4 putaran.

2.3. BIPOLAR MOTOR STEPPER

Motor dengan tipe bipolar ini mempunyai konstruksi yang hampir sama dengan motor

stepper tipe unipolar namun tidak terdapat tap pada lilitannya, seperti tampak pada Gambar 6.

Gambar 6. Bipolar Motor Stepper

Penggunaan motor dengan tipe bipolar ini membutuhkan rangkaian yang sedikit lebih

rumit untuk mengatur agar motor ini dapat berputar dalam dua arah. Biasanya untuk

menggerakkan motor stepper jenis ini membutuhkan sebuah driver motor yang sering dikenal

sebagai H Bridge. Rangkaian ini akan menontrol tiap-tiap lilitan secara independen termasuk

dengan polaritasnya untuk tiap-tiap lilitan.

Untuk mengontrol agar motor ini dapat berputar satu step maka perlu diberikan arus

untuk tiap-tiap lilitan dengan polaritas tertentu pula. Urutan datanya dapat dilihat pada Gambar

7.

Page 7: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

Gambar 7. Urutan Data Motor Stepper tipe Bipolar

3. PERBEDAAN UTAMA ANTARA BIPOLAR DAN UNIPOLAR

- Bipolar

- Arus pada koil dapat berbolak balik untuk mengubah arah putar motor

- Lilitan motor hanya satu dan dialiri arus dengan arah bolak-balik

- Unipolar

- Arus mengalir satu arah , dan perubahan arah putar motor tergantung dari lilitan (koil) yang

dialiri arus

- Lilitan terpisah dalam 2 bagian dan masing-masing bagian hanya dilewati arus dalam satu arah

saja.

Gambar 8. Perbedaan motor stepper unipolar dan bipolar

Kelemahan jenis Bipolar adalah bahwa rangkaian drivernya lebih kompleks, karena harus dapat

mengalirkan arus dalam 2 arah (bolak-balik) lewat koil yang sama. Sedangkan jenis Unipolar, selain

motor stepper tersebut lebih mudah diperoleh di pasaran juga memerlukan rangkaian driver yang lebih

sederhana.

Page 8: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

Motor stepper yang digunakan pada tugas akhir ini menggunakan motor stepper unipolar.

Motor ini mempunyai dua buah lilitan yang masing-masingnya terpisah. Untuk menggerakannya

diperlukan penggeseran logika sehingga tiap lilitan pada tiap pole akan teraliri arus maka motor akan

berputar step deemi step sesuai dengan konfigurasi pole dari motor stepper tersebut. Pengiriman pulsa

dari komputer ke rangkain motor stepper dilakukan secara bergantian, masing-masing 4 data (sesuai

dengan jumlah phase-nya).

4. RANGKAIAN KENDALI STEPER

Rangkaian berikut digunakan untuk memotar motor stepper dengan mikrokontroller. Rangkaian

tersebut menggunakan driver motor stepper yaitu ULN20032 yang dihubungkan pada Port C. Motor

stepper tersebut di kendalikan dengan dua saklar yang berfungsi untuk putar kiri dan putar kanan

M G 1

M O TO R S TE P P E R

123

4 5 6

C 73 0 p

U L N 2 0 0 3

1234

1 61 51 41 31 21 1

8

567 1 0

9

1 A2 A3 A4 A

1 B2 B3 B4 B5 B6 B

GN

D

5 A6 A7 A 7 B

C O M

R S TR S T P 1 _ 1

V C C

P 2 . 1

J P 4

H E A D E R 5

12345

G N D P 1 _ 5

U 8

A T8 9 S 5 1

9

1 81 9

2 93 0

3 1

12345678

2 12 22 32 42 52 62 72 8

1 01 11 21 31 41 51 61 7

3 93 83 73 63 53 43 33 2

R S T

XTA L 2XTA L 1

P S E NA L E / P R O G

E A / V P P

P 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7

P 2 . 0 / A 8P 2 . 1 / A 9

P 2 . 2 / A 1 0P 2 . 3 / A 1 1P 2 . 4 / A 1 2P 2 . 5 / A 1 3P 2 . 6 / A 1 4P 2 . 7 / A 1 5

P 3 . 0 / R XDP 3 . 1 / TXD

P 3 . 2 / I N T0P 3 . 3 / I N T1

P 3 . 4 / T0P 3 . 5 / T1

P 3 . 6 / W RP 3 . 7 / R D

P 0 . 0 / A D 0P 0 . 1 / A D 1P 0 . 2 / A D 2P 0 . 3 / A D 3P 0 . 4 / A D 4P 0 . 5 / A D 5P 0 . 6 / A D 6P 0 . 7 / A D 7

C 63 0 p

X1

1 2 M H z

R S TP 1 _ 2

P 2 . 3

R S T

P 1 _ 4

P 2 . 3

1 2 V

R S TR S T

C 31 0 u

P 1 _ 7

D 3

1 N 4 0 0 2

AC

P 1 _ 3

P 1 _ 0

P 1 _ 6

R S T

P 2 . 0

R S T

P 2 . 2

P 2 . 1

R 24 K 7

R S TR E S E T

P 2 . 0

P 2 . 2

Gambar 9. Rangkaian motor stepper mikrokontroller

Page 9: APLIKASI MOTOR STEPPER MENGGUNAKAN AT89S51 DENGAN SDCC.doc

12.4.1. PEMROGRAMAN MOTOR STEPPER

Setelah membuat rangkaian motor stepper, maka sekarang saatnya Anda membuat program

yang digunakan untuk menjalankan motor stepper dengan menggunakan mikrokontroller.

Program sebagai berikut ini

#include <at89x51.h>

idata at 0x50 unsigned int i;idata at 0x51 unsigned int k;

void tunda(unsigned int j){ while(j) { TH0=0xfc; TL0=0x65; TR0=1; while(!TF0); TF0=0; TR0=0; j--; }}

void main(){ TMOD=0x11; while(1) { P1 = 0x066; tunda (100); P1 = 0x0CC; tunda (100); P1 = 0x099; tunda (100); P1 = 0x033; tunda (100); }} /* End main */