Motor stepper merupakan motor DC yang
tidak mempunyai komutator. Umumnya
motor stepper hanya mempunyai kumparan
pada bagian stator sedangkan pada bagian
rotor merupakan magnet permanen (bahan
ferromagnetic). Karena konstruksi inilah
maka motor stepper dapat diatur posisinya
pada posisi tertentu dan/atau berputar ke
arah yang diinginkan, apakah searah jarum
jam atau sebaliknya. Ada tiga jenis motor
stepper: motor stepper Magnet Permanen,
Variable Reluctance dan Hybrid. Semua
jenis tersebut melakukan fungsi dasar yang
sama, tetapi mempunyai perbedaan
penting pada beberapa aplikasi.
Berdasarkan metode perancangan rangkain pengendalinya, motor stepper
dapat dibagi menjadi jenis unipolar dan bipolar. Rangkaian pengendali motor
stepper unipolar lebih mudah dirancang karena hanya memerlukan satu switch /
transistor setiap lilitannya. 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.
Untuk menggerakan motor stepper berbeda dengan menggerakan motor
dc, dimana untuk menggerakan motor stepper diperlukan rangkaian driver yang
fungsinya untuk memberikan catu ke motor stepper. Driver tidak hanya
mengeluarkan tegangan, namun tegangan yang dikeluarkan juga harus dalam
bentuk pulsa. Karena motor stepper bergerak step by step sesuai dengan pulsa.
Dalam pengendalian yang akan saya gunakan adalah :
1. Arduino Uno
2. ULN2003 Stepper Motor Driver
3. Stepper Motor Unipolar DC
4. Pushbuttom
Contoh program :
int pinMaju = 3;
int pinMundur = 2;
int step = 60; //putaran penuh (6 derajat x 60 = 360)
int delaytime=2; //makin kecil makin cepat
void setup(){
//menetapkan setiap pin arduino sebagai output/input
pinMode(In1,OUTPUT);
pinMode(In2,OUTPUT);
pinMode(In3,OUTPUT);
pinMode(In4,OUTPUT);
pinMode(pinMaju,INPUT);
pinMode(pinMundur,INPUT);
//fullup aktif
digitalWrite (pinMaju, HIGH);
digitalWrite (pinMundur, HIGH);
}
void loop(){
if (digitalRead (pinMaju) == LOW){
for (int i=0; i<60; i++){
maju();
}
}
if (digitalRead (pinMundur) == LOW){
for (int i=0; i<60; i++){
mundur();
}
}
}
//program motor mundur
void mundur(){
//step 4
step4();
delay(delaytime);
//step 3
step3();
delay(delaytime);
//step 2
step2();
delay(delaytime);
//step 1
step1();
delay(delaytime);
}
//program motor maju
void maju(){
//step 4
step1();
delay(delaytime);
//step 3
step2();
delay(delaytime);
//step 2
step3();
delay(delaytime);
//step 1
step4();
delay(delaytime);
}
//Membuat fungsi pada setiap step
void step1(){
digitalWrite(In1,LOW);
digitalWrite(In2,LOW);
digitalWrite(In3,HIGH);
digitalWrite(In4,HIGH);
}
void step2(){
digitalWrite(In1,HIGH);
digitalWrite(In2,LOW);
digitalWrite(In3,LOW);
digitalWrite(In4,HIGH);
}
void step3(){
digitalWrite(In1,HIGH);
digitalWrite(In2,HIGH);
digitalWrite(In3,LOW);
digitalWrite(In4,LOW);
}
void step4(){
digitalWrite(In1,LOW);
digitalWrite(In2,HIGH);
digitalWrite(In3,HIGH);
digitalWrite(In4,LOW);
}
Dari hasil program di atas dengan mengikuti gambar skematik, hasilnya adalah :
Ketika tombol pushbuttom maju maka motor akan berputar searah jarum jam selama tombol pushbuttom di.
Bila tombol pushbuttom mundur ditekan maka motor steppper akan berputar berlawanan arah jarum jam selama tombol pushbuttom ditekan.
Motor stepper akan stop bila pushbuttom tidak ditekan.