Translate

Membuat Wiper Otomatis dan Kendali Motor Stepper Driver TB6560 ARDUINO

Membuat Wiper Otomatis dan Kendali Motor Stepper Driver TB6560 ARDUINO


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang bisa digunakan untuk membuat sebuah WIPER otomatis dengan 4 mode, alat ini menggunakan ARDUINO sebagai kontrollernya dan menggunakan switch untuk mengubah mode gerakan, driver stepper yang digunakan adalah TB6560 dan tipe motor stepper yang dipakai adalah bipolar. jadi prinsip kerja alat ini yaitu terdapat 4 buah mode gerakan yang digunakan untuk menggerakkan stepper motor, mode 1 adalah wiper stop, mode 2 adalah gerakan wiper normal, mode 3 adalah wiper bergerak lambat, mode 4 adalah wiper bergerak dengan delay 5 detik. untuk lebih jelasnya berikut adalah skema dan programnya.




a. Arduino Uno





b. Motor Stepper Bipolar





c. Driver TB6560





d. Switch Potensio






e. Program Arduino IDE

int distance = 0;
int sw1 = 0;
int sw2 = 0;
int sw3 = 0;
int sw4 = 0;

int kec = 0;
int stepx = 0;
int tunggu = 0;

//kec = 100 / step = 7700

void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);

pinMode(7, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);

digitalWrite(8, LOW);
digitalWrite(9, LOW);
}


void loop() {
 
sw1 = digitalRead(4);
sw2 = digitalRead(5);
sw3 = digitalRead(6);
sw4 = digitalRead(7);

if(sw1 == LOW){
digitalWrite(9, LOW);
digitalWrite(8, LOW);
stepx = 0;
kec = 0;
tunggu = 0;
}

if(sw2 == LOW){
stepx = 7700;
kec = 100;
tunggu = 200;
gerak();
balik();
}

if(sw3 == LOW){
stepx = 7700;
kec = 300;
tunggu = 200;
gerak();
balik();
}

if(sw4 == LOW){
stepx = 7700;
kec = 100;
tunggu = 5000;
gerak();
balik();
}

}


void gerak(){

digitalWrite(8, LOW); // atas

digitalWrite(9, HIGH);
delayMicroseconds(kec);
digitalWrite(9, LOW);
delayMicroseconds(kec);
distance++;

if(distance > stepx){
distance = 0;
delay(200);
return;
}
  
 gerak();
}


void balik() {

digitalWrite(8, HIGH); // bawah
 
digitalWrite(9, HIGH);
delayMicroseconds(kec);
digitalWrite(9, LOW);
delayMicroseconds(kec);
distance++;

if(distance > stepx){  
distance = 0;
delay(tunggu);
return;
}

balik();
}






f. VIDEO HASILNYA











 

No comments:

Post a Comment