step motor
  • arduino ile nema17 motoru a4988 sürücü kartıyla kontrol ediyorum.
    fakat yazılımın içinde motor çalıştığında başka hiç bir şey çalışmıyor.
    for döngüsü içinde olduğu için. başka bir şekilde sürebilirmiyim?









    const int stepPin = 3;
    const int dirPin = 4;

    void setup() {

    pinMode(stepPin,OUTPUT);
    pinMode(dirPin,OUTPUT);
    }
    void loop() {
    digitalWrite(dirPin,HIGH);

    for(int x = 0; x < 200; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
    }
    delay(1000);

    digitalWrite(dirPin,LOW);

    for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
    }
    delay(1000);
    }

  • const int stepPin = 3;
    const int dirPin = 4;

    unsigned long stream_1=0,delay_t=5000;

    void setup() {

    pinMode(stepPin,OUTPUT);
    pinMode(dirPin,OUTPUT);
    }
    void loop() {
    stream_1++;

    if (stream_1==delay_t) {digitalWrite(stepPin,HIGH); }
    if (stream_1==(delay_t+100)) {digitalWrite(stepPin,LOW); stream_1=0;}

    ....//sürekli taranacak kodlar...



    }
    //delay_t değerini yükseltirsen motor yavaşlar +100 değeri step palsinin nekadar high kalacağını belirler
    // yönüde kendi kafana göre yaparsın artık
    // programın kod uzunluğu değiştiğinde delay_t yi kurcalaman gerekir
    // basit çözümü bu geldi aklıma daha profosyonel bir şey için time interrupt yada milis kullanmalısın

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.