Motor stepper adalah
perangkat elektromekanis yang bekerja dengan mengubah pulsa elektronis menjadi
gerakan mekanis diskrit. Motor stepper bergerak berdasarkan urutan pulsa yang
diberikan kepada motor. Karena itu, untuk menggerakkan motor stepper diperlukan
pengendali (driver) motor stepper yang membangkitkan pulsa-pulsa periodik.
Karena putaranya per step mengakibatkan
jenis motor ini memiliki
akurasi yang tinggi (tergantung
pada spesifikasinya). Setiap
motor stepper mampu berputar untuk setiap stepnya dalam satuan sudut (0.75,
0.9, 1.8), makin keil sudut per step-nya maka gerakan per step-nya motor
stepper tersebut makin presisi.
Keunggulan-keunggulan
motor stepper:
- Sudut rotasi motor proporsional dengan pulsa masukan sehingga lebih mudah diatur.
- Motor dapat langsung memberikan torsi penuh pada saat mulai bergerak
- Posisi dan pergerakan repetisinya dapat ditentukan secara presisi
- Memiliki respon yang sangat baik terhadap mulai, stop dan berbalik (perputaran)
- Sangat realibel karena tidak adanya sikat yang bersentuhan dengan rotor seperti pada motor DC
- Dapat menghasilkan perputaran yang lambat sehingga beban dapat dikopel langsung ke porosnya
- Frekuensi perputaran dapat ditentukan secara bebas dan mudah pada range yang luas.
Motor stepper
sering digunakan untuk aplikasi-aplikasi yang cukup menggunakan torsi kecil,
seperti untuk penggerak piringan disket atau piringan CD. Dalam hal kecepatan, motor
stepper cukup cepat jika dibandingkan dengan motor DC. Ini dikarenakan motor
stepper merupakan motor DC yang tidak memiliki komutator. Pada umumnya motor
stepper hanya mempunyai kumparan pada statornya sedangkan pada bagian rotornya
merupakan magnet permanent. Dengan model motor seperti ini maka motor stepper
dapat diatur posisinya pada posisi tertentu dan/atau berputar ke arah yang
diinginkan, searah jarum jam atau sebaliknya.
Kecepatan motor stepper pada dasarnya ditentukan oleh
kecepatan pemberian data pada komutatornya. Semakin cepat data yang diberikan
maka motor stepper akan semakin cepat pula berputarnya. Pada kebanyakan motor
stepper kecepatannya dapat diatur dalam daerah frekuensi audio dan akan
menghasilkan putaran yang cukup cepat. Untuk mengatur gerakan motor per step-nya dapat dilakukan dengan 2 cara
berdasarkan simpangan sudut gerakannya yaitu full step dan half
step.
Berikut rangkaian
(driver) untuk mengendalikan mototr stepper unipolar dan bipolar:
Untuk motor stepper jenis unipolar cukup menggunakan transistor yang berfungsi sebagai saklar untuk menghubungkan masing-masing ujung kumparan, untuk menggerakan motor dilakukan dengan cara memberi input pulsa pada kaki basis dari transistor tersebut. Untuk memudahkan transistor bisa diganti menggunakan IC ULN2003 darlington array, dengan konfigurasi sebagai berikut:
Sedangkan untuk jenis bipolar rangkaian driver dibuat dengan 8 buah transistor (seperti terlihat pada gambar). Driver yang banyak dipasaran diantaranya adalah IC L293D dan juga L297D, dari kedua jenis driver diatas saya lebih memilih menggunakan L293D karena lebih praktis. Jika menggunakan L297 masih harus menambahkan transistor pada output IC L297. Berikut rangkaian pengendali motor stepper menggunakan mikrokontroler AVR mega8535 dengan driver L293D dan tampilan LCD 2x16 karakter. LED pada masing-masing output L293D digunakan untuk mepihat pulsa untuk mempermudah pengamatan.
Berikut listing program mikrokontroler yang dibuat menggunakan CodeVisionAVR:
---------------------------------------------------------------------------------------------
#include
#define stepper PORTC
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1b ;PORT A
#endasm
#include
// Declare your global variables here
void delay(void);
void main(void)
{
// Input/Output Ports initialization
PORTA = 0x00;
DDRA = 0x00;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0xFF;
DDRC = 0xFF;
PORTD = 0x00;
DDRD = 0x00;
lcd_init(16);
lcd_gotoxy(0,0);lcd_putsf("Bipolar Stepper");
lcd_gotoxy(0,1);lcd_putsf(" -Rizki Mulya- ");
while (1)
{
// Place your code here
stepper=0x08;
delay();
stepper=0x02;
delay();
stepper=0x04;
delay();
stepper=0x01;
delay();
}
}
void delay()
{
unsigned char i,j,k;
for(i=0;i<7 comment-7--="" i="">7>
for(j=0;j<255 comment-255--="" j="">255>
for(k=0;k<255 comment-255--="" k="">255>
}
Semoga bermanfaat... :)
2 Comments
Untuk mengatur kecepatan putar motor secara linear bisa ndak ditambahkan potensiometer biar gampang kaya ngegas motor gitu..
ReplyDeleteBisa Mr.Ozz, nanti menggunakan ADC untuk mengolah data (analog) dari potensio.
DeleteSilahkan Tinggalkan Komentar Anda