- Step Motorlar:
- Step Motor için Devir Başına Adımların Hesaplanması:
- Neden Step motorlar için Sürücü modüllerine ihtiyacımız var?
- Arduino Step Motor Konum Kontrol Devresi Şeması ve Açıklaması:
- Arduino Kartı için Kod:
- Step Motorun Arduino ile Çalışması:
Step motorlar elektronik dünyasında giderek daha fazla yerini alıyor. Normal bir gözetim kamerasından karmaşık CNC makinelerine / Robotuna kadar bu kademeli motorlar, doğru kontrol sağladıkları için her yerde aktüatör olarak kullanılır. Bir Step Motor, birkaç adımda tam dönüşü tamamlayan fırçasız, senkronize bir motordur. Bu Arduino step motor eğitiminde, en yaygın olarak bulunan step motor 28-BYJ48'i ve ULN2003 step motor modülünü kullanarak Arduino ile nasıl arayüz oluşturacağımızı öğreneceğiz.
Step Motorlar:
Bu 28-BYJ48 Step motora bir göz atalım.
Tamam, normal bir DC motordan farklı olarak, bu motordan çıkan tüm süslü renklerden beş kablo var ve neden böyle? Bunu anlamak için önce bir step motorun nasıl çalıştığını ve uzmanlığının ne olduğunu bilmeliyiz. Öncelikle step motorlar dönmez, adım atarlar ve bu nedenle step motorlar olarak da bilinir. Yani, her seferinde yalnızca bir adım hareket edecekler. Bu motorların içinde bir dizi bobin bulunur ve bu bobinlere motorun dönmesini sağlamak için belirli bir şekilde enerji verilmesi gerekir. Her bobine enerji verildiğinde, motor bir adım atar ve bir dizi enerji verme, motorun sürekli adımlar atmasını ve böylece dönmesini sağlar. Bu tellerin nereden geldiğini tam olarak bilmek için motorun içinde bulunan bobinlere bir göz atalım.
Gördüğünüz gibi motorda Unipolar 5 uçlu bobin düzeni var. Belirli bir sırayla enerjilendirilmesi gereken dört bobin vardır. Kırmızı kablolara + 5V verilecek ve kalan dört tel, ilgili bobini tetiklemek için toprağa çekilecektir. Arduino gibi bir mikrodenetleyici kullanıyoruz, bu bobinlere belirli bir sırayla enerji veriyor ve motorun gerekli sayıda adımı gerçekleştirmesini sağlıyoruz.
Peki şimdi, bu motora neden 28-BYJ48 deniyor ? Ciddi anlamda!!! Bilmiyorum. Bu motorun böyle adlandırılmasının teknik bir nedeni yoktur; belki de daha derinlere dalmalıyız. Aşağıdaki resimde bu motorun veri sayfasından elde edilen bazı önemli teknik verilere bakalım.
Bu bilgi dolu bir kafa, ancak ne tür bir step kullandığımızı bilmek için birkaç önemli konuya bakmamız gerekiyor, böylece onu verimli bir şekilde programlayabiliriz. Kırmızı kabloya 5V ile enerji verdiğimiz için ilk olarak bunun 5V Step motor olduğunu biliyoruz. Sonra, içinde dört bobin olduğu için dört fazlı bir step motor olduğunu da biliyoruz. Şimdi dişli oranı 1:64 olarak verilmiştir. Bu, dışarıda gördüğünüz şaftın yalnızca içindeki motor 64 kez dönerse bir tam dönüş yapacağı anlamına gelir. Bunun nedeni, motor ve çıkış mili arasına bağlanan dişliler nedeniyle, bu dişliler torku artırmaya yardımcı olur.
Dikkat edilmesi gereken bir diğer önemli veri ise Adım Açısı: 5.625 ° / 64. Bu, motorun 8 adımlı sırayla çalıştırıldığında her adım için 5.625 derece hareket edeceği ve bir tam dönüşü tamamlamak için 64 adım (5.625 * 64 = 360) alacağı anlamına gelir. ARM LPC2148, ATMega16 Microcontroller, MSP430 ile step motorların çalışması hakkında daha fazla bilgi edinebilirsiniz.
Step Motor için Devir Başına Adımların Hesaplanması:
Step motorunuz için Devir başına adımları nasıl hesaplayacağınızı bilmek önemlidir, çünkü ancak o zaman onu etkili bir şekilde programlayabilirsiniz.
Arduino'da motoru 4 adımlı sırayla çalıştıracağız, böylece adım açısı 11.25 ° olacak, çünkü 8 adımlı sekans için 5.625 ° (veri sayfasında verilmiştir) 11.25 ° (5.625 * 2 = 11.25) olacaktır.
Devir başına adım sayısı = 360 / adım açısı
Burada 360 / 11.25 = devir başına 32 adım.
Neden Step motorlar için Sürücü modüllerine ihtiyacımız var?
Çoğu step motor, yalnızca bir sürücü modülü yardımıyla çalışacaktır. Bunun nedeni, denetleyici modülünün (bizim durumumuzda Arduino) motorun çalışması için I / O pinlerinden yeterli akımı sağlayamayacak olmasıdır. Bu yüzden step motor sürücüsü olarak ULN2003 modülü gibi harici bir modül kullanacağız. Pek çok sürücü modülü türü vardır ve birinin değeri kullanılan motor türüne göre değişecektir. Tüm sürücü modülleri için temel ilke, motorun çalışması için yeterli akımı sağlamak / batırmak olacaktır.
Arduino Step Motor Konum Kontrol Devresi Şeması ve Açıklaması:
Arduino step motor kontrol projesi için devre şeması yukarıda gösterilmiştir. 28BYJ-48 Step motor ve ULN2003 Sürücü modülünü kullandık. Step motorun dört bobinine enerji vermek için dijital pinler 8,9,10 ve 11'i kullanıyoruz. Sürücü modülü Arduino Board'un 5V pininden güç alıyor.
Ancak, step motora bir miktar yük bağlarken sürücüye Harici Güç kaynağı ile güç verin. Motoru sadece gösteri amaçlı kullandığım için Arduino Board'un + 5V rayını kullandım. Ayrıca Arduino'nun Topraklamasını Diver modülünün toprağına bağlamayı da unutmayın.
Arduino Kartı için Kod:
Arduino ile programlamaya başlamadan önce, programın içinde gerçekte ne olması gerektiğini anlayalım. Daha önce de belirtildiği gibi, 4 adımlı sıralama yöntemini kullanacağız, bu nedenle bir tam dönüş yapmak için gerçekleştirecek dört adımımız olacak.
Adım |
Enerjili Pin |
Enerjili Bobinler |
Aşama 1 |
8 ve 9 |
A ve B |
Adım 2 |
9 ve 10 |
B ve C |
Aşama 3 |
10 ve 11 |
C ve D |
4. adım |
11 ve 8 |
D ve A |
Sürücü modülü, herhangi bir zamanda hangi bobine enerji verildiğini kontrol edebileceğimiz dört LED'e sahip olacaktır. Enerji verme sırasını gösteren video, bu eğitimin sonunda bulunabilir.
Bu dersimizde yazacağız arduino step motor kodu ve bunun için de olacak Arduino programlamak biz Arduino seri monitör aracılığıyla step motor tarafından alınacak adımların sayısını girebileceği şekilde. Programın tamamı öğreticinin sonunda bulunabilir, aşağıda birkaç önemli satır açıklanmıştır.
Step motorumuz için devir başına adım sayısı 32 olarak hesaplandı; dolayısıyla aşağıdaki satırda gösterildiği gibi giriyoruz
#define STEPS 32
Daha sonra, Step motorunu bağladığımız pimleri belirlediğimiz örnekler oluşturmalısınız.
Adımlayıcı adımlayıcı (STEPS, 8, 10, 9, 11);
Not: Pin sayısı kasıtlı olarak 8,10,9,11 olarak düzensizdir. Motorunuzun bağlı olduğu pinleri değiştirseniz bile aynı düzeni izlemelisiniz.
Arduino step kütüphanesini kullandığımız için aşağıdaki satırı kullanarak motorun hızını ayarlayabiliriz. Hız, 28-BYJ48 step motorlar için 0 ile 200 arasında değişebilir.
stepper.setSpeed (200);
Şimdi, motoru bir adım hareket ettirmek için aşağıdaki satırı kullanabiliriz.
stepper.step (val);
Taşınacak adımların sayısı "val" değişkeni tarafından sağlanacaktır. Dişli oranı olarak 32 adım ve 64'e sahip olduğumuz için, bir tam dönüş yapmak için 2048'i (32 * 64 = 2048) hareket ettirmemiz gerekir.
"Val" değişkeninin değeri, kullanıcı tarafından seri monitör kullanılarak girilebilir.
Step Motorun Arduino ile Çalışması:
Bağlantı kurulduktan sonra, donanım aşağıdaki resimde buna benzer şekilde görünmelidir.
Şimdi, aşağıdaki programı Arduino UNO'nuza yükleyin ve seri monitörü açın. Daha önce tartışıldığı gibi, bir tam dönüş yapmak için 2048 adım atmamız gerekecek, bu nedenle 2048'e girdiğimizde motor, 2048 adım yaparak saat yönünde bir tam dönüş yapacaktır. Saat yönünün tersine döndürmek için sayıyı "-" eksi işareti ile girmeniz yeterlidir. Bu nedenle, -1024 girilmesi, motorun saatin tersi yönde yarım dönmesini sağlayacaktır. 1 girilmesi gibi istediğiniz herhangi bir değeri girebilirsiniz, motorun sadece bir adım atmasını sağlar.
Umarım projeyi anladınız ve inşa etmekten keyif aldınız. Projenin tam çalışması aşağıdaki videoda gösterilmektedir. Herhangi bir şüpheniz varsa, bunları forumlarımızdaki yorum bölümünde yayınlayın.