Şimdi Ara

aurdino step motor ileri-geri kontrol

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
874
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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 >



    _____________________________




  • Bir arkadaş yardımcı olamayacakm mi.

    < Bu ileti mobil sürüm kullanılarak atıldı >
    _____________________________
  • 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.
    _____________________________
  • xml17 kullanıcısına yanıt
    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ı >
    _____________________________
  • cakin kullanıcısına yanıt
    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
    _____________________________
    www.teknotasyon.com




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.