aplikasi motor stepper menggunakan at89s51 dengan sdcc.doc
Post on 03-Jan-2016
212 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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.
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.
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
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
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.
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.
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
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 */
top related