Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama

Step Motor ve Delay Problemi?

Konu, 'Elektrik ve Elektronik' kısmında kaanrevan tarafından paylaşıldı.


Etiketler:

Sayfayı Paylaş /bbnetsosyal

  1. kaanrevan

    kaanrevan Seçkin Üye Seçkin Üye

    Kayıt:
    12 Mart 2008
    Mesajlar:
    255
    Beğeni:
    4
    Arkadaşlar aşağıdaki gibi bir fonksiyonum var. Amacım şu aslında. Bu robot kolun ileri ya da geri hareketi için kullanılacak. Ancak bunun belirli bir süre içinde yapmasını istiyorum. Örneğin ileri 1 sn. geri 1 sn. gibi....
    loop içerisindeki aşağıdaki gibi kullanmak istiyorum ancak motorlar kitleniyor. Nedeni sanırım step motorun ilgili fonksiyonunun içerisindeki delay(3) satırı. Bunu millis ile mi ayarlamam gerekiyor? Açıkcası timer kullanımına baktım ama biraz zorlandım bu kodları timer' a çevirirken. Bu durumu nasıl aşabilirim?

    geri();
    delay(1000);
    ileri();
    delay(1000);

    Kod:
    void geri()
    {
     
       switch(step1) {
        case 0:
          digitalWrite(Pin0, HIGH);
          digitalWrite(Pin1, HIGH);
          digitalWrite(Pin2, LOW);
          digitalWrite(Pin3, LOW);
          break;
        case 1:
          digitalWrite(Pin0, LOW);
          digitalWrite(Pin1, HIGH);
          digitalWrite(Pin2, HIGH);
          digitalWrite(Pin3, LOW);
          break;
        case 2:
          digitalWrite(Pin0, LOW);
          digitalWrite(Pin1, LOW);
          digitalWrite(Pin2, HIGH);
          digitalWrite(Pin3, HIGH);
          break;
        case 3:
          digitalWrite(Pin0, HIGH);
          digitalWrite(Pin1, LOW);
          digitalWrite(Pin2, LOW);
          digitalWrite(Pin3, HIGH);
          break;
      }
       step1++;
      if(step1>3) step1=0;
      if(step1<0) step1=3;
      delay(3);
    }
     
  2. cakin54

    cakin54 Üye

    Kayıt:
    21 Eylül 2017
    Mesajlar:
    16
    Beğeni:
    2
    Step motor adım motordur ve adım adım gider.
    Pin0 High
    Pin1 low
    Pin2 low
    Pin3 low olacak şekilde düzenleyin

    Pin0 low
    Pin1 high
    Pin2 low
    Pin3 low. Diğerlerini de kaydırarak yazin
     
  3. kaanrevan

    kaanrevan Seçkin Üye Seçkin Üye

    Kayıt:
    12 Mart 2008
    Mesajlar:
    255
    Beğeni:
    4
    Onu biliyorum hocam. Aslında bu kod, uln2003 motor sürücü ile step motoru tam tork ile sürmek için gerekli kod. Söylediğiniz şekilde ne yazık ki robot kol hareket etmiyor. Tam tork istiyor. Ancak bunu benim belli bir süre yapmam gerekiyor.
     
  4. formulator

    formulator Üye

    Kayıt:
    24 Aralık 2013
    Mesajlar:
    10
    Beğeni:
    2
    step motorlarda özelliğine göre bir tam tur 32 adım 64 adım gibi bi durum vardı. mesela 16 adım döndürdüğümde 90 derece dönüyordu. unutmuşum biraz :rolleyes:
     
  5. hastasıyız dede 01

    hastasıyız dede 01 Üye

    Kayıt:
    31 Aralık 2012
    Mesajlar:
    17
    Beğeni:
    7
    @kaanrevan hocam bunu biliyorum demişsin ama yazdığın kodlarda 2 pin birden aktif edilmiş. örneğin case0 da pin0 ve pin1 aktif bunlarsan sadece biri aktif olacak. @cakin 54 ün yazdığı gibi yani.
     
  6. hastasıyız dede 01

    hastasıyız dede 01 Üye

    Kayıt:
    31 Aralık 2012
    Mesajlar:
    17
    Beğeni:
    7
    birde if lerin süslü parantezleri yok
     
  7. hastasıyız dede 01

    hastasıyız dede 01 Üye

    Kayıt:
    31 Aralık 2012
    Mesajlar:
    17
    Beğeni:
    7
    sıkıntının delay ile ilgili oduğunu düşünmüyorum.
     
  8. cakin54

    cakin54 Üye

    Kayıt:
    21 Eylül 2017
    Mesajlar:
    16
    Beğeni:
    2

    Besleme kaynaginiz nedir. Yeterli akımı sağlayabiliyor mu?
     
  9. kaanrevan

    kaanrevan Seçkin Üye Seçkin Üye

    Kayıt:
    12 Mart 2008
    Mesajlar:
    255
    Beğeni:
    4
    Sonradan yaptığım araştırmalarda problemin arduino 'nun saat frekansının yeterli gelmediğini öğrendim. Bizim gibi rastgele program yazan adamlar elbette bu durumları aşamıyor. Ancak accelstepper adında bir kütüphane ile çok daha iyi bir yazılım oluşturdum. Şimdilik sıkıntım kalmadı gibi birşey. Tek problem robot kolun tutucusundaki servo motor biraz işleri bozuyor. Onu da bir buton ile çözüme ulaştırmayı planlıyorum. Sonucu buradan paylaşırım.
     
  10. kaanrevan

    kaanrevan Seçkin Üye Seçkin Üye

    Kayıt:
    12 Mart 2008
    Mesajlar:
    255
    Beğeni:
    4
    Hocam bu motorlar sanırım unipolar. Ben tam torq ihtiyacım olduğunu düşündüğüm için bir kod aradım ve bunu buldum. Açıkcası çok fark ediyor. Step motoru çift pine high verdiğinizde tek high ile verdiğinizden daha kuvvetli hale getiriyor. Elimle gücü kontrol etmiştim. Sanırım bunun bir mekanik ve elektronik açıklaması vardır.
     

Sayfayı Paylaş /bbnetsosyal