Laporan Akhir Percobaan 6
== Percobaan 6==
Kontrol Putaran Motor Stepper
- Membuka proteus
- Buka file proteus yang sudah disesuaikan dengan kondisi
- Running rangkaiannya
- Sesuaikan dengan kondisi yang diinginkan
Motor Stepper dan ULN2003
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
#define PB1 2
#define PB2 3
#define PB3 4
#define PB4 5
int step = 100;
int delaytime=5; //makin kecil delay, makin cepat motor berputar
void setup(){
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(PB1, INPUT);
pinMode(PB2, INPUT);
pinMode(PB3, INPUT);
pinMode(PB4, INPUT);
}
void loop(){
int b4 = digitalRead(PB4);
int b3 = digitalRead(PB3);
int b2 = digitalRead(PB2);
int b1 = digitalRead(PB1);
if (b4 == HIGH){
maju();
}
else if (b3 == HIGH){
mundur();
}
else if (b2 == HIGH){
for (int i = 0; i < 60; i ++){
maju();
}
for (int i = 0; i < 60; i++){
mundur();
}
}
else if (b1 == HIGH){
for (int i = 0; i < 50; i++){
maju();
}
delay(2000);
for (int i = 0; i < 50; i++){
mundur();
}
}
}
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);
}
Modul 1: Percobaan 6
Percobaan 6
1. Jenis Inputan Apa yang digunakan untuk menggerakkan Motor stepper?
Jawab:
Berdasarkan listing program yang ada, jenis input yang digunakan untuk menggerakkan motor stepper adalah push button yaitu empat push button untuk mengontrol arah gerakan motor stepper (maju,mundur) sedangkan input dari keempat tombol tersebut dibaca menggunakan fungsi digitalread().
2. Pada percobaan untuk button 1 dan 2 tadi dibuat berputar dengan bervariasi ada yang 300, dan 360° , apa yang terjadi ketika kita membuat Perputaran nya menjadi 600? Apakah motor stepper tetap bisa berputar?
Jawab:
Jika perputaran motor stepper diatur menjadi 600 derajat, ini berarti motor stepper harus melakukan putaran sebanyak 600 derajat sebelum posisi awal. Tapi, biasanya motor stepper dirancang untuk melakukan putaran kelipatam tertentu. Jika motor stepper dalam kode yang diberikan tidak dirancang untuk melakukan putaran sebesar 600 derajat, maka motor tidak akan berputar penuh.
3. Apa yang terjadi Apabila pada motor stepper kita tidak menggunakan IC ULN2003? apakah Motor nya masih bisa bergerak?
Jawab:
IC ULN2003 berfungsi sebagai mengontrol motor dengan benr. IC ULN2003 mikrokontroller sendiri mungkin tidak dapat menyediakan arus yang cukup untuk menggerakan motor stepper efektif. Jika menghubungkan motor stepper langsung motor ke pin-pin output dari mikrokontroller tanpa driver, kemungkinan motor tidak akan bergerak atau bergerak tapi tidak stabil. Dan, juga bisa merusak mikrokontroller karena arus yang tinggi.
Tidak ada komentar:
Posting Komentar