Ditahap awal ini cara yang paling mudah adalah menggunakan kontroller Arduino, paling nggak bisa menggerakkan stepper sumbuh X dan Y.
Oke yang perlu disiapkan pada percobaan kali ini adalah
- Arduino UNO
- Driver Stepper MD5-HD14-2X
- Motor Stepper A41K-M599
- Power Switching 24V
- Kabel Jumper dan Breadboard
Oke langkah pertama, sambung stepper motor dengan driver dengan susunan sebagai berikut
Kedua pastikan bahwa driver stepper MD5-HD14-2X yang sobat gunakan bisa bekerja dengan normal, sobat bisa gunakan tombol function select switch yang seperti gambar berikut :
Posisikan switch 1 ke atas (ke ON) maka stepper motor akan berputar untuk membalik arah putaran arahkan switch 2 ke atas (ke ON). Setelah berhasil berarti driver stepper dan stepper yang sobat gunakan berfungsi dengan baik.
Untuk mengaktifkan driver MD5-HD14-2X dan Motor Stepper A41K-M599, bisa di lakukan dengan 2 cara sesuai dengan datasheet dari Driver ini, yaitu sebagai berikut :
Pada metode input 1 pulsa, untuk menggerakkan stepper arah jarum jam maka pin CCW harus di kasih nilai HIGH dan pin CW di kasih pulsa HIGH LOW, begitu juga sebaliknya. Oke langsung saja ke pemrogramannya di Arduino, sebelumnya sobat bisa wiring seperti berikut ini
- nomor 1 disambungkan ke pin arduino digital 5,
- nomor 3 disambungkan ke pin arduino digital 6
- nomor 2,4,6 disambungkan ke Ground power dan ground arduino
- karena sobat menggunakan metode input 1 pulsa maka tombol switch hitam no 2 di on kan.
Untuk arduino programnya sebagai berikut :
#define STEP_PIN 5 // Connect the driver's step pin to pin 5
#define DIRECTION_PIN 6 // Connect the driver's direction pin pin 6
void setup()
{
pinMode(STEP_PIN,OUTPUT);
pinMode(DIRECTION_PIN,OUTPUT);
}
void loop()
{
MoveSteps(-5, 700);
}
void MoveSteps(int steps, unsigned int microsecondStepDelay)
{
if (steps < 0)
{
digitalWrite(DIRECTION_PIN, LOW); // Set counter-clockwise direction
}
else
{
digitalWrite(DIRECTION_PIN, HIGH); // Set clockwise direction
}
// Moves desired number of steps
// Motor rotates one step when STEP_PIN changes from HIGH to LOW
for(int i = 0; i < abs(steps); i++)
{
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(microsecondStepDelay/2);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(microsecondStepDelay/2);
}
}
#define DIRECTION_PIN 6 // Connect the driver's direction pin pin 6
void setup()
{
pinMode(STEP_PIN,OUTPUT);
pinMode(DIRECTION_PIN,OUTPUT);
}
void loop()
{
MoveSteps(-5, 700);
}
void MoveSteps(int steps, unsigned int microsecondStepDelay)
{
if (steps < 0)
{
digitalWrite(DIRECTION_PIN, LOW); // Set counter-clockwise direction
}
else
{
digitalWrite(DIRECTION_PIN, HIGH); // Set clockwise direction
}
// Moves desired number of steps
// Motor rotates one step when STEP_PIN changes from HIGH to LOW
for(int i = 0; i < abs(steps); i++)
{
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(microsecondStepDelay/2);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(microsecondStepDelay/2);
}
}