Motor stepper bisa berputar dengan besar sudut yang bisa kita atur. Besarnya sudut tergantung berapa banyak langkah yang kita beri sinyal masukan pada motor stepper tersebut. Banyaknya langkah yang diberikanpada motor stepper juga tergantung variasi sinyal masukkan yang digunakan.
Ada 2 variasi masukan yang dapat digunakan untuk memutarkan motor stepper.
Sinyal masukan dari mikrokontroler atau arduino sangat kecil jika dihubungkan langsung ke motor stepper, untuk itu perlu pasang rangkaian driver untuk memperkuat sinyal atau memperbesar tegangan yang masuk ke motor stepper tetapi memiliki bentuk sinyal yang sama dengan keluaran mikrokontroler dan arduino.
Pemberian sinyal masukan ke motor stepper bisa 2 variasi tergantung banyak langkah yang diinginkan dalam 1 putaran penuh motor stepper, jika ingin 8 langkah perputaran maka pemberian sinyal masukan seperti dalam tabel Halt-Step Swiching Sequence, tapi jika ingin 4 langkah perputaran maka pemberian sinyal masukan seperti dalam tabel Full-Step Switching Sequence.
Program Kendali Motor Stepper variasi Half-Step Switching Sequence :
#include <mega16.h>
#include <delay.h>
#define OUT1 PORTD.0
#define OUT2 PORTD.1
#define OUT3 PORTD.2
#define OUT4 PORTD.3
// Declare your global variables here
void main(void)
{
// Declare your local variables here
DDRD = 0xFF;
PORTD = 0x0F;
while (1)
{
// Place your code here
OUT1 = 1;
OUT2 = 0;
OUT3 = 0;
OUT4 = 0;
delay_ms(100);
OUT1 = 1;
OUT2 = 1;
OUT3 = 0;
OUT4 = 0;
delay_ms(100) ;
OUT1 = 0;
OUT2 = 1;
OUT3 = 0;
OUT4 = 0;
delay_ms(100) ;
OUT1 = 0;
OUT2 = 1;
OUT3 = 1;
OUT4 = 0;
delay_ms(100) ;
OUT1 = 0;
OUT2 = 0;
OUT3 = 1;
OUT4 = 0;
delay_ms(100) ;
OUT1 = 0;
OUT2 = 0;
OUT3 = 1;
OUT4 = 1;
delay_ms(100) ;
OUT1 = 0;
OUT2 = 0;
OUT3 = 0;
OUT4 = 1;
delay_ms(100) ;
OUT1 = 1;
OUT2 = 0;
OUT3 = 0;
OUT4 = 1;
delay_ms(100) ;
}
}
Program Kendali Motor Stepper ariasi Half-Step Switching Sequence :
#include <mega16.h>
#include <delay.h>
#define OUT1 PORTD.0
#define OUT2 PORTD.1
#define OUT3 PORTD.2
#define OUT4 PORTD.3
// Declare your global variables here
void main(void)
{
// Declare your local variables here
DDRD = 0xFF;
PORTD = 0x0F;
while (1)
{
// Place your code here
OUT1 = 1;
OUT2 = 1;
OUT3 = 0;
OUT4 = 0;
delay_ms(100);
OUT1 = 0;
OUT2 = 1;
OUT3 = 1;
OUT4 = 0;
delay_ms(100) ;
OUT1 = 0;
OUT2 = 0;
OUT3 = 1;
OUT4 = 1;
delay_ms(100) ;
OUT1 = 1;
OUT2 = 0;
OUT3 = 0;
OUT4 = 1;
delay_ms(100) ;
}
}




Comments