Anda di halaman 1dari 4

241

MOTOR STEPPER

MOTOR STEPPER

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 dibawah ini menjelaskan tentang pola

pemrograman mode kerja full-step dari motor stepper.

Tabel Pola Pemrograman Half-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.

RANGKAIAN KENDALI STEPER

Rangkaian berikut digunakan untuk memotar motor stepper dengan

mikrokontroller. Rangkaian tersebut menggunakan driver motor stepper yaitu ULN20032


242

yang dihubungkan pada Port C. Motor stepper tersebut di kendalikan dengan dua saklar

yang berfungsi untuk putar kiri dan putar kanan

V C C
J 1 6 .

1
J I S P V C C 2
3
1 R S T 5 k R S _ L 4C D
2 p i n b . 7 R 9 5
3 p i n b . 6 E _ L C 6D
4 p i n b . 5 7
5 8
9
1 0
5 V A D C 41 1
U 1 A D C 51 2
2 1 1 4 0 R S _ L C D A D C 61 3
5 V 2 1 2 P B 0 (
P C A K 0 / ( T 3A X 0 9 D ) E C _ 0L ) C D A D C 71 4
3 P B 1
P 1 A) 1 ( 3A ( T 8D C 1 ) 1 5
4 P B 2
PN AT 2 (/ 3A ( I 7 D
I N C 0 2 ) ) 1 6
5 P B 3 (
P C A 0 3 / ( A3A O 6I DA N DC 1 C3) ) 4

C
p i n b6 .P 5 B 4
P S A ) 4 ( 3A ( S 5 DA DC C4 ) 5 D 3
R 1 p i n b7 .P 6 B 5
P O A S5 (I 3A) ( M 4 DA DC C5 ) 6
p i n b8 .P 7 B 6
P I AS 6 O ( 3A)[ M 3 DA DC C6 ) 7 1 NH 4E 0 A 0 D 2 E R 1 6
R S T 9 P B 7
P C A K 7 ) ( 3A[ S 2D C 7 )
V C C
5 V 1 0R E S E T A R 3E 1F M G 1
1V C C A G 3N D

A
C 1 2 2 p F 1 0 5 V
1 2G N D A V C2 9C 1 1 6 1
1

C 3 1 0 0 n F 1 1 3X T A L 2P C 7 ( T2 O8 S C 2 2) 1 A 1 B 1 5 2
S W 2 1 4X T A L 1P C 6 ( T2 O7 S C 1 3) 2 A 2 B 1 4 3
X 1 1 5P D 0 ( R X PD C ) 2 56 4 3 A 3 B 1 3
1 6P D 1 ( T X D P )C 2 45 5 4 A 4 B 1 2
1 7P D 2 ( I N TP 0 C )2 34 6 5 A 5 B 1 1
8P D 3 ( I N TP 1 C )2 23 7 6 A 6 B
2

C 2 2 2 p F 1 1 0 M O T O R S T E P P E R
9P D 4 ( O P C C 1 1 B 2( S) 2 D A ) 7 A 7 B

4
5
6
1
2 0P D 5 ( O P C C 1 0 A 2( S) 1 C L ) 9
P D 6 ( I CP DP ) 7 ( O C 2 ) C O M 1 2 V
A T M E G A 1 6
GND

U L N 2 0 0 3
8

Rangkaian motor stepper mikrokontroller

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

//-------------------------------------------------------
//Program MOTOR STEPPER
//-------------------------------------------------------
243

//-------------------------------------------------------
//DEKLARASI HEADER
//-------------------------------------------------------
#include <stdio.h>
#include <mega16.h>
#include <delay.h>

//------------------------------------------------------
//DEKLARASI SUB RUTIN
//------------------------------------------------------
void KIRI ();
void KANAN ();

//------------------------------------------------------
//DEKLARASI VARIABEL
//------------------------------------------------------
char a,b;

//------------------------------------------------------
//RUTIN UTAMA
//------------------------------------------------------
void main()
{
DDRC=0xFF;
DDRB=0x00;
while(1)
{
if(PINB.0==1)
{
KIRI();
}
if(PINB.1==1)
{
KANAN();
}
}
}

//------------------------------------------------------
//SUB RUTIN KIRI
//------------------------------------------------------
void KIRI()
{
a=0b00010001;
for(b=0;b<=3;b++)
{
PORTC=a;
a = a<<1;
delay_ms(200);
244

}
}

//------------------------------------------------------
// SUB RUTIN KANAN
//------------------------------------------------------
void KANAN()
{
a=0b10001000;
for(b=0;b<=3;b++)
{
PORTC=a;
a = a>>1;
delay_ms(200);
}
}

Anda mungkin juga menyukai