Motor stepper merupakan salah satu jenis motor listrik
yang dikendalikan dengan memberikan pulsa-pulsa digital. Prinsip kerja motor
stepper yaitu dengan mengubah pulsa yang diberikan menjadi gerakan motor discret (terputus) yang disebut step.
Berdasarkan struktur rotor dan stator, motor stepper
dikategorikan dalam 3 jenis yaitu :
1. Motor
Stepper Variable Reluctance (VR)
Motor stepper
jenis ini menggunakan rotor besi lunak non-magnet dengan beberapa gerigi dan
lilitan stator. Ketika lilitan stator diberi energi dengan arus DC, maka
kutub-kutubnya akan termagnetisasi. Perputaran terjadi ketika gerigi rotor
tertarik oleh kutub-kutub stator. Berikut ini adalah penampang melintang dari
motor stepper variable reluctance:
Penampang melintang motor stepper variable reluctance
2. Motor
Stepper Permanent Magnet (PM)
Motor stepper
jenis ini menggunakan permanent magnet pada rotornya dan beberapa lilitas
stator. Ketika lilitas stator diberi energi dengan arus DC maka stator akan
termagnetisasi, sehingga kutub rotor yang merupakan permanent magnet mengikuti
kutub-kutub stator yang termagnetisasi. Terdapat 3 cara untuk menaikkan
resolusi/step angle pada motor stepper jenis ini, yang pertama yaitu dengan
menambahkan kutub-kutub pada permanent magnet, kedua yaitu dengan menambahkan
lilitas stator, yang ketiga yaitu dengan menggunakan cara lain dalam
memagnetisasi stator. Berikut penampang melintang motor stepper permanent
magnet:
Penampang melintang motor stepper permanent magnet
3.
Motor Stepper Hybrid
Motor stepper
hybrid merupakan kombinasi dari kedua tipe motor stepper sebelumnya. Motor
stepper ini memiliki gerigi seperti tipe VR dan memiliki permanent magnet pada
batang porosnya seperti tipe PM. Motor jenis ini dapat menghasilkan resolusi
step yang tinggi yaitu antara 100-400 step setiap putarannya. Berikut penampang
melintang dari motor stepper hybrid:
Penampang melintang motor stepper hybrid
Untuk lebih memahami prinsip kerja motor stepper
hybrid silahkan buka link video berikut: https://www.youtube.com/watch?v=u12dt1RqLW0
Berdasarkan
metode perancangan rangkaian pengendalinya , motor stepper dapat dibagi menjadi
dua jenis yaitu:
1.
Motor Stepper Unipolar
Motor
stepper jenis ini memiliki satu lilitan dengan center tap setiap fasanya.
Setiap bagian dari lilitan diaktifkan untuk setiap arah dari medan magnet.
Untuk mengendalikan motor stepper ini lebih mudah karena hanya memerlukan satu
switch setiap lilitannya. Umumnya, center tap pada setiap lilitan dibuat sama
(common), jadi center tap pada setiap lilitan dihubungkan satu sama lain. Untuk
menjalankan dan menghentikan motor ini cukup dengan menerapkan pulsa digital
yang hanya terdiri atas tegangan positif dan nol (ground) pada salah satu
terminal lilitan (wound) motor sementara terminal lainnya dicatu dengan
tegangan positif konstan (VM) pada bagian tengah (center tap) dari lilitan
seperti pada gambar berikut.
Motor stepper dengan lilitan unipolar
2.
Motor Stepper Bipolar
Motor
stepper jenis ini memiliki satu lilitan per fasa. Arus dapat mengalir dua arah
pada setiap lilitannya. Untuk mengendalikan motor ini diperlukan pulsa yang
berubah-ubah dari postif ke negatif dan sebaliknya. Jadi setiap lilitan A dan B
harus dihubungkan dengan sinyal positif ke negatif dan negatif ke positif .
Karena itu rangkaian pengendali motor ini lebih kompleks dibandingkan motor
stepper unipolar. Motor stepper bipolar memiliki keunggulan dibandingkan motor
unipolar, torsi yang dihasilkan motor bipolar lebih besar untuk ukuran yang
sama.
Motor stepper dengan lilitan bipolar
Untuk dapat
menjalankan motor stepper unipolar dibutuhkan IC driver ULN 2803, sedangkan
untuk motor bipolar dibutuhkan IC driver L293D. Motor unipolar juga dapat di
drive dengan IC L293D.
Berikut
merupakan wiring pada proteus untuk mendrive motor stepper unipolar dengan
ATmega8535:
Wiring motor stepper unipolar
Kaki tengah
pada motor merupakan common yang langsung dihubungkan ke Vcc.
Berikut
merupakan wiring pada proteus untuk mendrive motor stepper bipolar dengan
ATmega8535:
Wiring motor stepper bipolar
Dan berikut ini
merupakan program bahasa C untuk menjalankan motor stepper. Program yang dibuat
menggunakan fungsi sehingga dapat memilih antara full step, half step, berputar
searah jarum jam, atau berlawanan jarum jam.
/*MOTOR STEPPER*/
#include <mega8535.h>
#include <delay.h>
#define PORT PORTA
// Declare your global variables here
int x, y;
/* ---------------- UNIPOLAR/BIPOLAR STEPPER MOTOR ---------------- */
//Full Step Counter Clockwise
void FSCCW(float delay){
PORT = 0x08; //0b1000
delay_ms(delay);
PORT = 0x04; //0b0100
delay_ms(delay);
PORT = 0x02; //0b0010
delay_ms(delay);
PORT = 0x01; //0b0001
delay_ms(delay);
}
//Full Step Clockwise
void FSCW(float delay){
PORT = 0x01; //0b0001
delay_ms(delay);
PORT = 0x02; //0b0010
delay_ms(delay);
PORT = 0x04; //0b0100
delay_ms(delay);
PORT = 0x08; //0b1000
delay_ms(delay);
}
//Half Step Counter Clockwise
void HSCCW(float delay){
PORT = 0X09; //0b1001
delay_ms(delay);
PORT = 0x08; //0b1000
delay_ms(delay);
PORT = 0x0C; //0b1100
delay_ms(delay);
PORT = 0x04; //0b0100
delay_ms(delay);
PORT = 0x06; //0b0110
delay_ms(delay);
PORT = 0x02; //0b0010
delay_ms(delay);
PORT = 0x03; //0b0011
delay_ms(delay);
PORT = 0x01; //0b0001
delay_ms(delay);
}
//Half Step Clockwise
void HSCW(float delay){
PORT = 0x01; //0b0001
delay_ms(delay);
PORT = 0x03; //0b0011
delay_ms(delay);
PORT = 0x02; //0b0010
delay_ms(delay);
PORT = 0x06; //0b0110
delay_ms(delay);
PORT = 0x04; //0b0100
delay_ms(delay);
PORT = 0x0C; //0b1100
delay_ms(delay);
PORT = 0x08; //0b1000
delay_ms(delay);
PORT = 0x09; //0b1001
delay_ms(delay);
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
PORTA=0x00;
DDRA=0xFF;
// Port B initialization
PORTB=0x00;
DDRB=0xFF;
// Port C initialization
PORTC=0x00;
DDRC=0xFF;
// Port D initialization
PORTD=0x00;
DDRD=0xFF;
while (1)
{
// Place your code here
//Panggil fungsi dengan
parameter delay per step disini.
FSCW(10);//Memanggil fungsi
Full Step Clockwise dengan delay per step 10ms
}
}
No comments:
Post a Comment