Motor stepper adalah salah satu jenis motor dc yang dikendalikan dengan
pulsa-pulsa digital.Prinsip kerja motor stepper adalah bekerja
dengan mengubah pulsa elektronis menjadi gerakan mekanis diskrit dimana motor stepper bergerak
berdasarkan urutan pulsa yang diberikan kepada motor stepper tersebut,untuk
lebih jelasnya bisa kalian baca disini,untuk mempermudah menggunakan motor
stepper kita gunakan module easy driver A3967S dan di control dengan
menggunakan arduino
TOLONG BACA DENGAN DETAIL !
Siapkan alat dan bahan :
- Arduino
Uno/Nano/Mega (sama saja) (jumlah disesuaikan)
- Module Easy Driver A3967S
- Motor
stepper
- Kabel usb
arduino
- Breadboard
- Suppy
external 12volt (untuk daya motor)
- Kabel
jumper disesuaikan dengan kebutuhan
1. Yang pertama kalian wiring motor stepper dan semua module seperti gambar
dibawah ini
Catatan !
·
Pastikan coil motor stepper A dan B sudah
benar,cara memastikannya test menggunakan multimeter pada scala
ohm/buzzer,hubungkan 1 kabel motor pada - mutimeter,dan satu kabel motor
(kabel random) pada + multimeter,jika buzzer berbunyi itu artinya 2
kabel itu satu coil (A) dan kabel sisanya coil (B)
·
Pastikan wiring sudah benar
·
Jika IC driver dirasa panas gunakan
heatsink
·
Setelah kalian berhasil membuatnya,budayakan
untuk mempelajarinya,jangan hanya copy paste saja,hasil dari usaha sendiri
lebih puas meskipun itu sederhana
2. Copy paste sketch/program di bawah ini ke dalam software arduino
01
|
// Akses Motor Stepper
|
02
|
// By Fickry Muhammad
|
03
|
// aruselektronika.blogspot.com
|
04
|
int smDirectionPin
= 2; //Direction pin
|
05
|
int smStepPin
= 3; //Stepper pin
|
06
|
|
09
|
pinMode(smStepPin,
OUTPUT);
|
10
|
}
|
13
|
for (int
i = 0; i < 3000; i++)
|
14
|
{
|
15
|
digitalWrite(smDirectionPin,
LOW);
|
16
|
digitalWrite(smStepPin,
HIGH);
|
17
|
delayMicroseconds(300);
|
18
|
digitalWrite(smStepPin,
LOW);
|
19
|
delayMicroseconds(300);
|
20
|
}
|
23
|
|
24
|
for (int
i = 3000; i > 0; i--)
|
25
|
{
|
26
|
pinMode(smDirectionPin,
OUTPUT);
|
27
|
digitalWrite(smDirectionPin,
HIGH);
|
28
|
digitalWrite(smStepPin,
LOW);
|
29
|
delayMicroseconds(300);
|
30
|
digitalWrite(smStepPin,
HIGH);
|
31
|
delayMicroseconds(300);
|
32
|
}
|
3. Verify program arduino,apabila tidak terjadi error lanjut dengan proses
upload
4. Upload program,apabila succes akan muncul tulisan
done
uploading,apabila ada yang belum tahu bagaimana cara upload code/sketch
ke board arduino bisa baca
disini
5. Sekarang kalian coba hubungkan power external pada board easy driver,
lihat perubahan apa yang terjadi pada motor stepper
Prinsip Kerja
Pada program ini saya hanya mencoba menggerakan motor stepper dengan 3000
step pulse (300 microsecond) dan membalikan arah putar motor secara otomatis
CW/CCW dengan delayms(300)
Teori
Karena motor stepper ini dapat dikendalikan dengan memberikan pulsa,maka
pada program saya membuat gelombang pulsa dengan cara memberi program
delaymicroseconds(300)
pada looping for (kalian bisa mengatur lebar pulsa yang diinginkan dengan
cara mengubah nilai delaymicrosecond, nah untuk bagian step step motor bergerak
program
for(inti = 3000;i>0;i--){} yang berperan,jika kalian
membutuhkan step yang lebih lama kalian tinggal rubah saja nilai 3000nya, untuk
membalikan arah putar CW/CCW kalian tinggal memberikan logika HIGH/LOW pada
digitalWrite(smDirection,HIGH);,
ini adalah program dasar,jika kalian ingin lebih mudah lagi menggunakannya
kalian bisa menggunakan library
stepper.h pada arduino dan tentunya
menggunakan module driver yang berbeda,banyak sekali driver yang digunakan
untuk motor stepper,tinggal kalian baca baca saja.
Sumber :