Motor Stepper merupakan motor DC yang dapat diatur posisinya dengan akurat pada posisi tertentu dan dapat berputar ke arah yang diinginkan dengan memberi sinyal-sinyal pulsa dengan pola tertentu. Biasanya motor stepper digunakan untuk aplikasi-aplikasi yang membutuhkan torsi kecil dengan akurasi yang tinggi, seperti pada penggerak head pada floppy disk drive atau CD-ROM.
Motor Stepper merupakan motor DC yang yang tidak memiliki komutator. Secara tipikal hanya memiliki kumparan pada statornya, sedangkan pada bagian rotornya merupakan magnet permanen. Stator terdiri dari beberapa kutub, makin banyak kutub makin sulit konstruksinya. Setiap kutub memilki lilitan yang menghasilkan medan magnet yang akan menggerakkan rotor. Pemberian arus yang berurutan pada kutub–kutubnya menyebabkan medan magnet berputar yang akan menarik rotor ikut berputar.
Dengan memberi kombinasi 1000, 0100, 0010 dan 0001, secara berulang, maka poros akan berputar (pergerakan full step / 4 siklus). Untuk berputar dengan arah sebaliknya, tinggal membalik kombinasi tersebut menjadi 0001, 0010, 0100 dan 1000; demikian seterusnya.
Untuk pergerakan half step / 8 siklus, maka kombinasi yang harus diberikan adalah 1000, 1100, 0100, 0110, 0010, 0011, 0001, 1001, dan seterusnya.
Jadi, untuk arah putar poros motor stepper, yang perlu diperhatikan adalah urutan kombinasinya. Sementara kecepatan putarnya ditentukan oleh seberapa cepat pengendali menyampaikan kombinasi-kombinasi tersebut kepada motor. Pergerakan full step lebih cepat karena hanya memerlukan 4 langkah untuk mencapai satu siklus, sementara half step memerlukan 8 langkah. Namun, pergerakan half step lebih halus. Silahkan dipilih mode pergerakan mana yang paling pas 😉
Di dalam pemrograman, beri sedikit jeda antar langkah, untuk memberikan kesempatan kepada motor untuk bergerak menuju posisi berikutnya.
Pastikan kabel motor yang terhubung dengan driver, urutannya benar. Sebagai contoh, untuk motor stepper TEAC 14769070-80 memiliki urutan : biru – putih – kuning – merah.
Berikut adalah contoh program pengendalian motor stepper dengan bahasa PBASIC, menggunakan BASIC Stamp:
'{$STAMP BS2} 'STAMP Directive 'Definisi pin I/O RST CON 1 'Untuk melepaskan stepper dari "lock" S1 CON 6 'Bipolar ('1') atau Unipolar ('0') S2 CON 4 'CW ('1') atau CCW ('0') S3 CON 2 'Full step ('1') atau ('0') S4 CON 0 'Untuk menjalankan stepper sebanyak jumlah clock 'Variabel Cnt VAR Byte 'Varabel Counter Init: 'DT-BASIC SPC Stepper Motor INPUT RST 'P1 = RST HIGH S1 'P6 = S1 (Bi/_Uni_) HIGH S2 'P4 = S2 (CW/_CCW_) HIGH S3 'P2 = S3 (Full/_Half_) HIGH S4 'P0 = S4 (Clock) Start: FOR Cnt=1 TO 48 'Putar searah jarum jam 48x (Full Step,CW), satu putaran LOW S4 'Sinyal clock pada P0 HIGH S4 PAUSE 30 'Delay 30ms NEXT LOW S2 'CCW FOR Cnt=1 TO 48 'Putar berlawanan arah jarum jam 48x (Full Step,CCW), satu putaran LOW S4 HIGH S4 PAUSE 30 NEXT LOW S3 'Half Step HIGH S2 'CW FOR Cnt=1 TO 96 'Putar searah jarum jam 96x (Half Step,CW), satu putaran LOW S4 HIGH S4 PAUSE 30 NEXT LOW S2 'CCW FOR Cnt=1 TO 96 'Putar berlawanan arah jarum jam 96x (Half Step,CCW), satu putaran LOW S4 HIGH S4 PAUSE 30 NEXT HIGH RST 'Lepas Lock pada SPC Stepper Motor PAUSE 1 ' dengan pulsa RESET LOW RST INPUT RST END