Drv8825 ve Step Motor Frekans sorunu

TunahanC

SbX
Katılım
31 Mayıs 2024
Mesajlar
195
Elimde bir nema17 tip bir step motor var ve bunu drv8825 ile sürüyorum. Sürmek için de stm32'den pwm dalga kullanıyorum. Fakat step motor için frekans girdiğim zaman RPM değeri farklı çıkıyor. RPM değerini matematiksel olarak hesaplamak için kullandığım formül RPM = ((Adımaçısı/Mikroadım)/360)*frekans*60 (formül linki). Bazı deneyler yaptığımda örneğin, 115Hz, 1.8adım açısı ve 32 mikroadım, matematiksel olarak 1.08 olması gerekirken, kronometre ile 8 civarı bir RPM ölçüyorum. Formül mü yanlış? Step motor mu bozuk? Anlamadım. Bu konuda bir fikri olan varsa yardımcı olursa sevinirim.
 
Formül doğru.
Hesaplanandan daha yüksek hızda motor mili döndüğü için kontrol edilecek noktalar:
+ PWM çıkış frekansı 115Hz mi? Belki yanlış konfigüre edilmiş olabilir. İmkanınız varsa ölçün.
+ Microstep = 32 için drv8825 de pin konfigürasyonları doğru yapıldımı?

Hızlı dönmesi için başka bir sebep kalmıyor.

Mikro step ayarının doğru olduğundan emin olmak için, motor miline bir işaret koyun ve 6400 pals gönderecek bir test kodu hazırlayın. Motor milinin bir tur atıp başladığı yere gelip durması gerekir.

(360 / 1.8 adım açı) x 32 step = 6400 pals
 
Formül doğru.
Hesaplanandan daha yüksek hızda motor mili döndüğü için kontrol edilecek noktalar:
+ PWM çıkış frekansı 115Hz mi? Belki yanlış konfigüre edilmiş olabilir. İmkanınız varsa ölçün.
+ Microstep = 32 için drv8825 de pin konfigürasyonları doğru yapıldımı?

Hızlı dönmesi için başka bir sebep kalmıyor.

Mikro step ayarının doğru olduğundan emin olmak için, motor miline bir işaret koyun ve 6400 pals gönderecek bir test kodu hazırlayın. Motor milinin bir tur atıp başladığı yere gelip durması gerekir.

(360 / 1.8 adım açı) x 32 step = 6400 pals
1-) PWM dalganın çıkışında frekansı aynı görüyorum. Duty cycle farklı ama onun bir problem olacağını düşünmüyorum.
2-)
M0_GPIO_Port->BSRR = M0_Pin << 16; // Reset M0_Pin
M1_GPIO_Port->BSRR = M1_Pin; // Set M1_Pin
M2_GPIO_Port->BSRR = M2_Pin; // Set M2_Pin
32 mikrostep için pinlerim bunlar.


Son olarak 6400 pulse gönderdim ve bunları HAL_TIM_PWM_PulseFinishedCallback ile saydım fakat yine fazla tur attı. Yardımınız için teşekkür ederim fakat pek işe yaramadı.
 

Ekler

  • resim_2024-07-10_082139931.png
    resim_2024-07-10_082139931.png
    13.3 KB · Görüntüleme: 62
İlk mesajınızda 8 katı kadar fazla döndüğünü belirtmiştiniz. Pals sayısında bir hata yoksa, microstep kısmına odaklanın sanki 32 step değil 8 micro step gibi davranıyor.. Step sürücünün M0,1,2 pinlerini mcudan ayırın 32 step olacak şekilde gnd ve vcc ye bağlayıp deneyin.
 
İlk mesajınızda 8 katı kadar fazla döndüğünü belirtmiştiniz. Pals sayısında bir hata yoksa, microstep kısmına odaklanın sanki 32 step değil 8 micro step gibi davranıyor.. Step sürücünün M0,1,2 pinlerini mcudan ayırın 32 step olacak şekilde gnd ve vcc ye bağlayıp deneyin.
Çok ilginç logic ile ölçtüğüm zaman MCU'dan gelen sinyalleri hepsi olması gerektiği gibi gösteriyordu ama dediğiniz gibi ayrı bağlayınca oldu. Logic üzerinde gördüğüm için bunu yapmak aklıma gelmemişti. Teşekkürler, sanırım boardın enerjisi yetmiyor.
 

Forum istatistikleri

Konular
7,443
Mesajlar
125,444
Üyeler
3,025
Son üye
can.ince

Son kaynaklar

Son profil mesajları

Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Back
Top