Pada kesempatan ini saya akan menjelaskan mengenai bagaimana cara untuk mengendalikan motor steper dengan menggunakan Arduino, jadi ada 2 hal yang bisa dilakukan oleh Arduino terhadap motor stepper yaitu yang pertama adalah kendali kecepatan putarannya dan yang kedua adalah kendali arah putarannya, jadi Arduino dapat mengendalikan dua buah opsi tersebut. aplikasi alat ini yaitu untuk buka tutup pintu atau pagar, untuk konveyor dan lain sebagainya. yang perlu diperhatikan yaitu konsumsi arus dari motor stepper dan juga konsumsi dayanya, karena jika supply tidak mencukupi kebutuhan tegangan dan arus motor maka akan terjadi drop tegangan. untuk lebih jelasnya berikut adalah skema dan penjelasan programnya.
a. Arduino UNO
b. Skema Motor Stepper Unipolar
c. Skema Motor Stepper Bipolar
d. Motor Stepper dan Driver ULN2003
e. Program Arduino IDE
#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
int speedstep = 0;
int stepCount = 0; // number of steps the motor has taken
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);
void setup() {
}
void loop() {
//kecepatan putaran 0 - 1023
speedstep = 900;
// map it to a range from 0 to 100:
int motorSpeed = map(speedstep, 0, 1023, 0, 100);
// set the motor speed:
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
// step 1/100 of a revolution:
//cw
myStepper.step(stepsPerRevolution / 100);
//ccw
//myStepper.step(-stepsPerRevolution / 100);
}
}
f. Program Arduino Tanpa Library
//sesuaikan dengan PIN yang dipasang
int IN1=8;
int IN2=9;
int IN3=10;
int IN4=11;
int step = 100;
int delaytime=40; //makin kecil delay, makin cepat motor berputar
void setup(){
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
}
void loop(){
//maju 60;
for (int i=0; i<60; i++){
maju();
}
}
void maju(){
//step 4
step1();
delay(delaytime);
//step 3
step2();
delay(delaytime);
//step 2
step3();
delay(delaytime);
//step 1
step4();
delay(delaytime);
}
void mundur(){
//step 4
step4();
delay(delaytime);
//step 3
step3();
delay(delaytime);
//step 2
step2();
delay(delaytime);
//step 1
step1();
delay(delaytime);
}
void step1(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
}
void step2(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
void step3(){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
void step4(){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
g. VIDEO HASILNYA
No comments:
Post a Comment