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();
}
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