Soru:
Step Motor Sürücüsü devremde hata ayıklama
Paul
2014-05-04 00:56:33 UTC
view on stackexchange narkive permalink

Arduino Uno ile NEMA 17 Step Motor 'u kontrol etmek için Pololu DRV8825 Step Motor Sürücüsü kullanıyorum. Pololu web sitesine göre, devre şu şekilde bağlanmalıdır:

enter image description here

Bununla birlikte, bu taslaktan biraz saptım:

  • Arduino (mikrodenetleyici), bilgisayara bağlı bir USB kablosuyla çalıştırılıyor
  • Arduino'daki 5V pinini breadboard üzerindeki + rayına bağladım. Daha sonra bu ray üzerindeki iki kabloyu sürücünün RESET ve SLEEP pinlerine bağladım.
  • Motora güç sağlamak için 9V pil kullanıyorum .
  • DIR ve STEP pinlerini sırasıyla Arduino Uno pinleri 12 & 13'e bağladım.
  • Sonuç olarak, aşağıdaki taslağı kodladım ve yükledim:

      int stp = 13; // pin 13'ü stepint dir = 12'ye bağlayın; // pin 12'yi dirint a = 0'a bağlayın; // gen countervoid setup () {pinMode (stp, OUTPUT); pinMode (yön, OUTPUT); } void döngü () {if (a < 200) // dizin 1'de 200 adımı süpür {a ++; digitalWrite (stp, YÜKSEK); gecikme (10); digitalWrite (stp, DÜŞÜK); gecikme (10); } else {digitalWrite (dir, HIGH); a ++; digitalWrite (stp, YÜKSEK); gecikme (10); digitalWrite (stp, DÜŞÜK); gecikme (10); eğer (a>400) // dizin 2'de 200'ü süpür {a = 0; digitalWrite (dir, LOW); }}}  

    SONUÇ
    Step motor dönmüyor. Bunun yerine, sadece yüksek bir perdeyle tıslar. Kısa bir süre sonra sürücü çok ısınır.

    DENEDİĞİM ŞEYLER

    1. Bağlı step kabloların olup olmadığını iki kez kontrol ettim çiftleri sürücüdeki "A" pimlerine ve "B" pimlerine doğru şekilde bağlanmıştır.
    2. Tüm olası kombinasyonlarda A1-A2 çiftini ve B1-B2 çiftini ters çevirmeyi denedim. Tüm kombinasyonlar yukarıdakiyle aynı sonucu verir.
    3. Motor güç kaynağını 12V'a (8 alkalin AA pil) çıkarmayı denedim. Aynı sonuç ortaya çıkıyor.
    4. 100microF radyal elektrolitik kapasitörün uzun ucuyla pozitif motor beslemesine ve kısa ucunun negatif motor beslemesine bağlandığından emin olmak için iki kez kontrol ettim (bundan farklı bir devre tahtası mantık güç kaynağı tabii ki).
    5. Sürücüdeki SLEEP ve RESET'e bağlanmak için 5V pin yerine 3.3V pin kullanmayı denedim. Yine aynı sonuç ortaya çıkar.

    Devremde hata ayıklamak için ne deneyeceğimi gerçekten bilmiyorum.

    Önsezim:

    Bununla birlikte, pololu web sitesinde şöyle yazan küçük bir uyarı kutusuna dayanan bir şüphem var:

    Dikkat: Üstbilgi pimlerini serigrafi tarafı yukarı ve bileşenler aşağı gelecek şekilde takmak, geçerli sınırı ayarlamak için kullanılan trimpotun hareket aralığını sınırlayabilir. Başlık pimlerini bu yönde takmayı planlıyorsanız, lütfen pimleri lehimlemeden önce mevcut sınırı ayarlayın.

    Başlıkları sürücüye lehimleme şeklim, sayfanın sol alt köşesine benziyor aşağıdaki resim:

    enter image description here

    Sorum:
    Step motorumun 1,7A akım gerektirdiği göz önüne alındığında, yapabileceğim herhangi bir şey var mı çalışmasını sağlamak için bu devreyi geliştirmek için? Hata yaptım mı? Denemem veya kontrol etmem gereken başka bir şey var mı? Başlığı yanlış şekilde mi lehimledim?

    Pimlerin yönü önemli olmamalıdır .. Sadece başlıkların siyah plastik kısmı olan trimpotu ona karşı döndürmenin zor olabileceğini söylüyor, bu yüzden sizin yaptığınız gibi yapmanızı tavsiye ediyor.
    @sachleen Trimpotun vidaya benzeyen o küçük dairesel parça olduğunu varsayıyorum. Mevcut çekilişi ayarlamak için onu çevirmem gerekir mi? Öyleyse, gerçekte ne kadar akım aldığımı tam olarak nasıl anlayabilirim?
    Evet, alttaki görüntünün sol üst köşesindeki dairesel şey (bileşen tarafı yukarı). Değiştirmeniz gerekip gerekmediğinden emin değilim. Çiziminin ne tür bir akım olduğunu nasıl göreceğinizi görmek için pololu.com'un "Akım sınırlama" bölümünü okuyun.
    @sachleen: Tamam. Anlıyorum. "STEP girişine saat ayarlamadan tek bir motor bobininden geçen akımı ölçmek" diyor. Ama "STEP girişini saatini ölçmeden" ne anlama geldiğinden emin değilim ... Bunun ne anlama geldiğini anlıyor musunuz?
    Hiç step kullanmadım, bu yüzden neden bahsettiğimi bilmiyorum. buuut ... Nerede yaptığınızı görün `digitalWrite (stp, HIGH); ve düşük? bu saatliyor. Sanırım onu ​​yüksek bırakmanı istiyor.
    Ayrıca `` setup () '' içerisine `digitalWrite (dir, LOW); '' eklemeniz gerektiğini düşünüyorum, bunun hiçbir şeyi değiştireceğini sanmıyorum ama başlangıçta istediğiniz değeri uygulamak tercih edilir.
    Devrenizi pilsiz ama "daha iyi" bir güç kaynağı kullanarak denediniz mi (örn. Bazı duvar siğilleri 9V 2A)? Bu, bunun bir güç sorunu (veya tam tersi) olmadığından emin olmanızı sağlar.
    Bu sorunun arduino ile pek bir ilgisi yoktur ve EE stackexchange hakkında bilgili girdi alma olasılığı daha yüksektir.
    @ChrisStratton: Biliyorum. Oraya veya buraya göndermeyi tartışıyordum. Sorunun arduino çizimi, elektrik devresi veya başka bir şey olup olmadığından emin değildim. Yanıtlardan sonra, sorunun büyük olasılıkla güç kaynağı olduğu anlaşılıyor. Buradaki soruyu silmemi ve EE SE sitesinde yeniden yayınlamamı tavsiye ediyor musunuz?
    Silinmesi gerektiğini düşünmüyorum, ancak taşıma iyi bir fikir olabilir.
    Elbette, @chrisStratton. Devam edin ve taşıyın.
    Dört yanıtlar:
    Nick W.
    2016-01-03 22:29:01 UTC
    view on stackexchange narkive permalink

    Bu devreyi bir Arduino Uno'da bu kod ve sürücü ile kurarken aynı sorunu yaşadım. Her şey yolundaydı, ancak motorun akımı fabrikadan sürücüde çok yüksek ayarlanmıştı. VREF 1,7 volt idi ve kullandığım motor için 0,5 civarında olması gerekiyordu. VREF'i uygun voltaja ayarladığımda, motor olması gerektiği gibi dönmeye başladı ve tıslamayı bıraktı.

    Bu gönderinin eski olduğunu biliyorum ama umarım bu başka birine yardımcı olur. Pololu, buradaki ürün sayfasında sürücülerinin çoğunda uygun voltajı ayarlamak için harika bir videoya (ve genel olarak belgelere) sahiptir: DRV8825 Step Motor Sürücü Taşıyıcı, Yüksek Akım.

    Anonymous Penguin
    2014-05-04 03:28:49 UTC
    view on stackexchange narkive permalink

    İlk önce fark ettiğim birkaç şey: Bu şimdiye kadar gördüğüm en iyi biçimlendirilmiş sorulardan biridir ... :) Her neyse, birkaç şey dışında devreniz bana iyi görünüyor:

    Uyarı: Bu taşıyıcı kart, düşük ESR seramik kapasitörler kullanır, bu da onu, özellikle birkaç inçten daha uzun güç kabloları kullanırken, tahrip edici LC voltaj yükselmelerine duyarlı hale getirir. Doğru koşullar altında, bu ani artışlar DRV8825 için 45 V maksimum voltaj değerini aşabilir ve motor besleme voltajı 12 V kadar düşük olsa bile panele kalıcı olarak zarar verebilir.Sürücüyü bu tür ani artışlardan korumanın bir yolu, büyük (en az 47 µF) elektrolitik kapasitör motor gücü (VMOT) ve karta yakın bir yerde toprak .

    (Kendime biraz italik / kalın ekledim, ürün sayfasından alıntı.)

    Kapasitörler ucuzdur (ABD'den eBay'de 1,50 $) ve yeni sürücüler de olsa, genellikle doğru inşa et. Düzeltmek zorunda kalmamanız gereken bir şeyin gönderilmesini beklemekten daha sinir bozucu bir şey yoktur.

    Ek olarak, pil gücü (özellikle AA'lar) doğru yapılmazsa büyük olabilir ve yeterli akım sağlamayabilir. Bir seri yapılandırmada, 8 AA voltajı sağlayacağını, ancak yalnızca birinin akımını sağlayacağını unutmayın. Tek bir AA'nın akımından 1,7 A'lik bir motoru çalıştıramazsınız. Karanlık tahminde bulunun: Yeterli akım ve voltaj sağlamak için ~ 80-100 AA'ya ihtiyacınız olacak. İç direnci ölçmek ve gerçekten hesaplamak için çok tembelim.

    Önerilen çözüm: Yanlış gidebilecek milyonlarca şey vardır. Orada olmadan, gecikme fonksiyonunuzun çok kısa olduğuna bahse girerim. Bunun yapacağı şey, motorun hareket etmesi için yeterli zaman sağlamaz, dolayısıyla hareketsiz kalır. Bu yine de çok fazla akım kullanır (motor bobinlerine tam akım olduğu sürenin% 50'sinde), bu nedenle sürücüyü kızdırır. ( Isı ile ilgili not: ... bobin başına yaklaşık 1,5 A'dan fazlasını sağlamak için, bir soğutucu veya başka bir soğutma yöntemi gerekir ... -Ürün sayfası: siz ' Çipinizi soğutmak için bir soğutucuya ihtiyacınız olacak.) Ayrıca biraz ısının normal olduğunu unutmayın; Genel bir kural, baş parmağınızı birkaç saniye üzerinde tutamayacak kadar sıcaksa, daha fazla soğumaya ihtiyacınız olacaktır. Ne kadar çok kullanılırsa, o kadar ısınacağını unutmayın. Bu nedenle, soğutucu eklemek isteyip istemediğinize karar verirken bunu aklınızda bulundurun.

    tl; dr: Yapmanız gereken gecikme süresini artırın ve şu anda sahip olduğunuzdan daha fazla akım sağlayın.

    Gecikme süresini 1000 ms'ye (1 saniye) çıkarmayı denedim ve hala davranışta bir değişiklik yok. Sanırım daha yüksek amperaj sağlayabilen pilleri denemem gerekecek. AA pillerime baktım ve yaklaşık 900 miliamper-saat sağladıklarını buldum. En az 1700 miliamper-saat sağlayan piller aramalı mıyım (step motordan 1.7amp akım çekilmesine karşılık gelir)?
    @Paul Hayır, bu yaygın bir yanılgıdır. Bir mAH, bu kadar gücü serbest bırakma kapasitesine sahip olduğu anlamına gelir, ** hepsini bir kerede serbest bırakabileceği anlamına gelmez. ** Bir kerelik pillerin çoğunda maksimum akımı söylemek zor olduğu için, bir 9,6 1.8 + A (amper, amper saat değil) sağlayabilen V şarj edilebilir "RC pil". Biraz pahalıya mal olabilirler, ancak bu kadar güce ihtiyacınız var. ** Tavsiye: Seri olarak şarj edilebilir piller eklemeyi denemeyin. Mükemmel "dengeli" olmasalar da çok tehlikelidirler! **
    Lütfen piller hakkında yanlış tavsiye vermeyi bırakın. Çoğu hücre, 10 veya daha fazla faktörle (C derecesi) mAh derecesinin birçok katı bir akım sağlayabilir. "Denge" büyük ölçüde bir * şarj * sorunudur ve esas olarak lityum kimyası ile ilgilidir - ne 9.6v RC paketi ne de tek tek 1.2 - 1.5v AA pilleri kullanmaz.
    Devrede zaten 100 uF'lik bir kapak gösteriliyor, peki neden bir kapak eklemeye ihtiyaç duyulduğundan bahsedelim?
    @Chris Dengeli derken, biraz farklı iki lityum pili birleştirirseniz, bunların son derece tehlikeli olabileceğini kastettim. Söyleyebileceğim kadarıyla, OP standart AA alkalin piller kullanıyor. Birinin aynı anda iki amfi destekleyemeyeceğinden eminim. Yapabilse bile, bataryadaki voltaj kaybı nedeniyle büyük olasılıkla yirmi dakika dayanmayacaktır. Voltaj kaybını yönetecek bir çip yoktur. OP de kullandıkları pil bileşimini belirtmedi, bu nedenle yeterince şarj edilirse yeterli akımı sağlayabilir.
    @jfpoilpret Oops, bunu fark etmedi. Ancak, onu orada bırakmaktan zarar gelmez. :)
    @AnnonomusPenguin: Alkalin pil kullanıyorum. Belki lityuma geçmek daha iyi olur? Daha fazla amfi sağlayabileceklerini duydum ...
    Lityum kullanmayın - burada yanlış olarak anlatıldığı kadar olmasa da gerçek endişeler var. Alkalin AA'lar, yalnızca bir saatten biraz daha kısa bir süre için de olsa, kolayca 2 amper sağlayabilir. Gerçekten bir güç kaynağı kullanmalısınız.
    @Chris Lütfen konuştuğunuz kişiye ping atması için `@Username` ile ping atın. Her neyse, * bir * AA 2A sağlayabilir mi? Seri olarak voltaj özelliklerinin eklendiğini hatırlamanız gerekir, ancak mevcut özellikler yalnızca bir pilin özellikleridir. Bir AA'nın 1.5V 1.8A sağlayamayacağından endişe ediyorum, bu da OP'nin ihtiyacı olan şey.
    @Paul Diğerlerinin de belirttiği gibi, bu konuda daha fazla hata ayıklamayı bildiğim kadarıyla en iyi yol, kesinlikle doğru miktarda elektrik sağlayabilecek bir güç kaynağı elde etmektir. Bu amaçla eski bir PSU da kullanabilirsiniz ...
    @AnnonomusPenguin - tek bir AA hücresi aslında birkaç amper sağlayabilir. Bunun gibi uzman sitelerle ilgili gerçek sorunlardan biri, konuların gerçek bilgi eksikliğinin ve çok sayıda yanlış bilginin bulunduğu bir durgun suya yönlendirilmesidir. Ayrıca, site kullanım önerilerinde bulunacaksanız, @ bildiriminizde birinin gerçek kullanıcı adını kullanarak başlayabilirsiniz - aksi takdirde, önceki gönderilerdeki * otomatik * bildirime bağlı olursunuz.
    @Chris Düzelttim, ucuz piller almalıyım :) Her neyse, ping için sadece ilk üç harfe ihtiyacın var.
    johnb
    2015-11-08 11:31:29 UTC
    view on stackexchange narkive permalink

    Pillerinizin mevcut kapasite açısından çok düşük olduğunu düşünmüyorum, gecikme süreniz çok kısa değil, saat darbesi başına 10 +10 ms'de, sadece saniyede 50 adımdan bahsediyorsunuz, o kadar hızlı değil. Stepper'imden yeterli rpm elde etmek için mikrosaniyelere gitmem gereken programlar yazdım.

    İlk olarak, digitalwrite high, delay digitalwrite low ve delay hatları dışında her şeyi döngünüzden çıkarın. Ardından program, motoru sürekli olarak tek yönde döndürmelidir. Bu şekilde bir mantık sorununuz olmadığından emin olursunuz. İkinci olarak, 12 ve 13 numaralı pinleri geriye doğru takıp bağlamadığınızı kontrol ettiniz mi, böylece sürücüye adım atmak yerine her 10 ms'de bir yön değiştirmesini söylüyorsunuz ? Çıkardığı ses daha çok bir vızıltı veya titreşim gibi olurdu, genellikle yumuşak, statik bir tıslama, motor etkinleştirildiğinde olur, ancak adım atımı almaz.

    Son olarak, bu yazı yaklaşık 18 aylık, Sorunu nasıl çözdüğünüzü açıklamak düşünceli ve başkalarına faydalıdır (çözdüğünüzü varsayarak).

    Jose
    2015-11-29 02:41:48 UTC
    view on stackexchange narkive permalink

    Bana yardımcı olan tek şey, GND'yi mikrodenetleyiciden step kartına bağlamak DEĞİLDİ (ilk gönderide yayınlanan şemanın alt siyah çizgisi).

    Bağlanmış olsaydı, sürücü hemen 12V @ 3A çekerdi ve acayip ısınırdı. Ayrıca motor hiç dönmedi.

    Hayır, yanılıyorsun. Bunun çalışması için kesinlikle ortak bir zemin gereklidir ve eğer bir tane alamıyorsanız, muhtemelen AC kablolarından bir tane alıyorsunuzdur. Aşırı ısınmanıza neden olan şey farklı bir konuydu. Burada yayınladığınız şey ** kötü tavsiye **.


    Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
    Loading...