Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
868
Tıklama
0
Öne Çıkarma
aurdino step motor ileri-geri kontrol
C
9 yıl
Binbaşı
Konu Sahibi

Merhaba
Step motoru geri dondurmeyi başaramadım. kodda yada devredemi hata var.
uln2003 ile sürüyüyorum. sadece tek yönde dönüyor.

Düzeltme; temazsszılık varmış sorun düzeldi. Ancak zamanlı yada döngüyle durduramıyorum ileri ve geri dönmeyi. yardımcı olursanız sevinirim.


int ldrPin=A2; 
int ldrDeger=0;
int esikDeger=300; // bunun yerine daha uygun bir belirleyebilirsiniz.
int delayTime = 50;
int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;

void setup(){
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
void loop(){
ldrDeger=analogRead(ldrPin);
if(ldrDeger>esikDeger){


digitalWrite(13, HIGH);
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(13, HIGH);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(13, HIGH);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime);
digitalWrite(13, HIGH);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime);

}
else
{
digitalWrite(13, LOW);
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delay(delayTime);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delay(delayTime);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delay(delayTime);
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delay(delayTime);
}
}






< Bu mesaj bu kişi tarafından değiştirildi cakin -- 18 Mart 2016; 16:30:37 >

C
9 yıl
Binbaşı
Konu Sahibi

Bir arkadaş yardımcı olamayacakm mi.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
X
9 yıl
Çavuş

void loop kullandığınız için döngü sonsuza dek sürecektir ayrıca if else döngünüzde hata var. Tam olarak ne yapmak istediğinizi söylerseniz yardımcı olmaya çalışırım.


Bu mesaja 1 cevap geldi.
C
9 yıl
Binbaşı
Konu Sahibi

Sagolasin cevabın için.

Yeni başladım sayılır. Sağdan soldan toplama kodlarla mantığı anlamaya çalışıyorum.

Bu kodda ldr karanlıkta, step belli bir sure yada tur ileri, karanlıkta aynı sure yada tur geri gidecek.

For dongsusu kurdum herhalde dediginiz gbi loopta olduğu için durduramadim.



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @xml17
F
9 yıl
Onbaşı

selam,

geçenlerde step motor kontrolü yapmıştım. aşağıdaki fonksiyon ile motorları sürdüm.

Motor1_direction 'a loop fonksiyonun içerisinde 1 verirsen sağa 0 verirsen motor sola döner

void do_motor1_next(){
if(motor1_counter==1){
digitalWrite(A3, LOW);
digitalWrite(A0, HIGH);
if(Motor1_direction==1){
motor1_counter++;
}
else if(Motor1_direction==2){
motor1_counter=4;
}

}
else if(motor1_counter==2){
digitalWrite(A0, LOW);
digitalWrite(A1, HIGH);
if(Motor1_direction==1){
motor1_counter++;
}
else if(Motor1_direction==2){
motor1_counter--;
}
}
else if(motor1_counter==3){
digitalWrite(A1, LOW);
digitalWrite(A2, HIGH);
if(Motor1_direction==1){
motor1_counter++;
}
else if(Motor1_direction==2){
motor1_counter--;
}
}
else if(motor1_counter==4){
digitalWrite(A2, LOW);
digitalWrite(A3, HIGH);
if(Motor1_direction==1){
motor1_counter=1;
}
else if(Motor1_direction==2){
motor1_counter--;
}
}
}

3 step motorlu sistemin çalışma videosu aşağıda

https://www.youtube.com/watch?v=Iuagv6XbOik

kolay gelsin




Bu mesajda bahsedilenler: @cakin
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.