28BYJ-48 stepper motor, her gün gördüğümüz birçok yaygın cihazı kontrol etmek için yaygın olarak kullanılmaktadır. Perde, araba yan aynası eğimleri ve DVD oynatıcılardan güvenlik kameralarına ve hassas kontrol makinelerine kadar stepper motorlar, düşündüğümüzden daha yakınlarımızda.

Ironik bir şekilde, pek çok insan bunlarla nasıl çalışılacağını bilmemektedir. Elektronik konusunda tamamen bilgisiz bir acemiyseniz, çevrimiçi olarak tonlarca teknik terimi okumak bazen oldukça göz korkutucu ve cesaret kırıcı olabilir. Bu nedenle, bir 28BYJ-48 stepper motorunu bir Arduino ile, ULN2003 sürücü kartı kullanarak nasıl arayüzleştireceğinizi özetleyen bir kılavuz hazırladık.

(Kaynak: Mschoeffler)
Öncelikle, 28BYJ-48 stepper motor ve ULN2003 sürücü kartı ile bir tanıtıma başlayalım!
28BYJ-48 Stepper Motor
28BYJ-48 Stepper Motor Nedir?
28BYJ-48 stepper motor, elektriksel darbeleri ayrık mekanik dönüşe dönüştüren yaygın olarak kullanılan bir stepper motordur. Elektrik sinyalleri uygulandığında, stepper motor, adım olarak bilinen kesin ve sabit açılarda döner. Motor, rotorun etrafında bir halka oluşturan 4 bobinden oluşur. Bu bobinler, sabit ve statik oldukları için stator olarak bilinir. Her bobin +5V ile derecelendirilmiştir, bu da onu Arduino gibi herhangi bir mikrodenetleyici ile kontrol etmeyi kolaylaştırır.
Aşağıdaki GIF, dönüşün nasıl çalıştığını göstermektedir.

Stepper motorlar ile standart DC motorlar arasındaki fark nedir?
28BYJ-48 stepper motorun sizin için uygun olup olmadığından emin misiniz? Hangi motor tipinin projeniz için daha uygun olduğuna karar vermeden önce, iki motor arasındaki bazı farkları anlamamız gerekiyor. İşte ikisi arasındaki bazı temel farklar.
- Stepper motorların dönüşü artımlı, yavaş ve hassas iken, DC motorlar hızlı ve sürekli bir harekete sahiptir.
- Stepper motorlar çalışırken biraz gürültü üretirken, DC motorlar sessizdir ve nispeten titreşimsizdir.
- Stepper motorun tepki süresi, DC motorunkinden daha yavaştır.
- Stepper motorlar, Arduino gibi mikroişlemcilerle kolayca kontrol edilebilir. DC motorlara kıyasla, mekanik olarak daha basit ve tasarlayıp inşa etmesi daha kolaydır. Buna karşılık, DC motorlar mikroişlemcilerle bu kadar kolay kontrol edilemez.
Stepper motorlar ile servo motorlar arasındaki fark nedir?
Belki de stepper motor ile benzer bir motor olan servo motorları duymuşsunuzdur. İşte aralarındaki farkların kısa bir açıklaması.
- Stepper motorlar, servo motorlardan daha doğru ve hassas hareket edebilir ve kontrol etmeleri çok daha kolaydır.
- Stepper motorlar, 2000 rpm (dakikada devir) altındaki düşük hızlarda uygulamalar için daha uygundur, servo motorlar ise 2000 rpm’den daha yüksek hızlarda uygulamalar için en iyi şekilde uygundur.
- Stepper motorlar, servo motorlardan daha düşük hızlarda çalışır.
- Stepper motorlar, mekanik olarak daha karmaşık olmadıkları için servo motorlardan daha ucuzdur.
Hangi durumlarda stepper motoru diğer türlere tercih etmeliyim?
Stepper motorun, yukarıda bahsedilen iki motorla karşılaştırıldığında dezavantajları vardır. Ancak, stepper motorları dikkate almanız gereken birkaç kritik avantajı vardır.
- Kesin Pozisyonlama – Stepper motorlar kesin adımlarla hareket eder. Bu nedenle, 3D yazıcılar ve kamera platformları gibi kesin pozisyonlama gerektiren uygulamalarda iyi performans gösterirler.
- Kesin Hız kontrolü – Hareketlerdeki kesin artımlar, süreç otomasyonu ve robotik için döner hızın mükemmel kontrolünü sağlar.
- Düşük hızlarda yüksek tork – Stepper motorlar, düşük hızlarda (2000 rpm’den az) uygulamalar için en uygunudur çünkü düşük hızlarda maksimum tork üretirler. Buna karşılık, normal DC motorlar ve servo motorlar düşük hızlarda bu kadar tork üretmezler.
- Kolay kontrol – Stepper motorlar, bir Arduino gibi bir mikrodenetleyici kullanılarak kolayca kontrol edilebilir. Aslında, kullanım kolaylığı, stepper motor kullanıcıları tarafından sürekli kullanılmasının da önemli bir nedenidir.
- Ucuz – Stepper motorların yeterli olacağı uygulamalarda, bir tane kullanmak size daha iyi maliyet tasarrufu sağlayabilir.
Ayrıca, stepper motor, diğer motor türleriyle bazı ortak avantajları da paylaşır. Örneğin, DC motorlar gibi, stepper motorlar da yaygın olarak bulunur ve birçok farklı boyut ve tarzda gelir, bu da boyut kısıtlamalarını karşılayabileceği anlamına gelir. Bu, bir stepper motor kullanmayı seçtiğinizde diğer motorların avantajlarından ödün vermeniz gerekmediği anlamına gelir.
ULN2003 Sürücü Kartı
ULN2003 Sürücü Kartı Nedir?
ULN2003, her biri 500mA ve 50V’a kadar yükleri sürme kapasitesine sahip 7 Darlington transistör çiftini barındıran en yaygın motor sürücü entegre devrelerinden biridir. Bir Darlington çifti, ikinci transistörün ilk transistörün çıkış akımını amplifiye ettiği bir transistör çiftidir.
Stepper motoru Arduino ile sürmek için ULN2003’e ihtiyacınız olacak. Ayrıca, uygun fiyatlarla kolayca erişilebilirler. Bu entegre devreyi breadboard’da kullanmaktansa bir tane almak daha iyidir.
Aşağıdaki diyagramda gösterildiği gibi, bir ULN2003 sürücü kartı, bir ULN2003’ün bir karta lehimlenmesiyle birlikte, devreyi oluşturmaya yardımcı olan dirençler, kapasitörler ve diğer parçalarla birlikte gelir; bu devre, kontrolörden gelen darbe sinyallerini alır ve bunları stepper motor hareketine dönüştürür.

(Kaynak: Component101)

(Kaynak: electronicoaldas)
ULN2003’e neden ihtiyacınız var?
28BYJ-48 stepper motor yüksek akım tüketmektedir, bu nedenle bir mikrodenetleyici olan Arduino ile motoru kontrol etmek için ULN2003 gibi bir sürücü entegre devresine ihtiyacımız olacak. Yüksek akım ve yüksek voltaj kapasitesi ile bilinen ULN2003, tek bir transistörden daha yüksek bir akım kazancı sağlar ve mikrodenetleyicinin düşük voltaj ve düşük akım çıkışını daha yüksek akımlı bir stepper motoru sürmek için kullanır.
Örneğin, çalışmak için 9V ve 300mA’ye ihtiyaç duyan bir stepper motor, bir Arduino tarafından beslenemez. Bu nedenle, motor için yeterli akım ve voltaj sağlamak üzere bu entegre devreyi bağlıyoruz. 5V ve 80mA’den daha fazla bir şey beslemeniz gerektiğinde, ULN2003 sürücü kartı kullanılmalıdır.
Stepper motoru doğrudan Arduino’dan beslemenizi önermiyorum. Aşağıda daha fazla açıklayacağım.
Pin Düzeni

(Kaynak: Geeetech wiki)
28BYJ-48 stepper motoru ULN2003 sürücü kartına bağlama
Genellikle, 28BYJ-48 stepper motor, ULN2003 sürücü kartına uyacak şekilde 5 pinli bir konektörle gelir.
ULN2003 sürücü kartını Arduino’ya bağlama
ULN2003 sürücü kartının lN1, lN2, lN3, lN4 pinlerini sırasıyla Arduino dijital pinlerine 8, 9, 10 ve 11’e bağlayın. Sürücü kartında GND ve VCC olarak etiketlenmiş iki pin bulunmaktadır; bu pinler güç kaynağı içindir. ULN2003 sürücü kartının GND pini, Arduino’nun GND pinine bağlanmalıdır. Benzer şekilde, sürücü kartının VCC pini, Arduino’nun 5V pinine bağlanmalıdır.
Önemli not: Bu kurulumla, stepper motoru doğrudan Arduino’dan besliyoruz. Motoru beslemenin en basit yolu bu olsa da, bunu yapmanız önerilmez (sürücü kartının VCC pinini Arduino’nun 5V pinine bağlamak).
Çünkü motor çok fazla güç çekerse, Arduino’nuz zarar görebilir. Arduino’nuzdan 300mA’den fazla güç çekilmediğinden emin olun. Daha fazla güç gerekiyorsa, sürücü kartınızı Arduino’nun yerleşik güç kaynağını kullanmak yerine harici bir voltaj kaynağına bağlayın.
Ancak, kurulumla tanışma aşamasında olduğumuz için, bu örnekte bağlantıları basit tutmak adına motoru Arduino’dan besleyeceğiz. Bağlantılara alıştığınızda, daha fazla güç gerekiyorsa motorunuzu harici bir güç kaynağına bağladığınızdan emin olun.
Arduino Bağlantısı için Örnek Kod
Arduino Entegre Geliştirme Ortamı (IDE) veya Arduino yazılımı, varsayılan bir stepper kütüphanesi ile önceden yüklenmiştir. Bu nedenle kütüphaneyi indirmenize gerek yoktur. Kodun ilk satırında, bu yerleşik stepper kütüphanesinin başlık dosyasını dahil edeceğiz.
Bir dönüş için yapılacak adım sayısını tanımlıyoruz. Bu sayıyı hesaplamak biraz zor olabilir, işte nasıl yapılacağı.
Stepper motorlar farklı modlarda çalıştırılabilir ve belirli bir dişli oranına sahiptir. Her iki faktör de dönüş başına adım sayısını etkiler. Bu örnek için, motoru tam adım modu olarak bilinen bir modda çalıştıracağız; her adım, veri sayfasına göre 11.25 dereceye karşılık gelir. Bu, dönüş başına 32 adım olduğu anlamına gelir (360/11.25 = 32). Ayrıca, üretici 28BYJ-48 stepper motoru için 64:1 dişli oranı belirtmiştir.
Nasıl çalışır?
Son adım sayısını elde etmek için, dişli oranı dönüş başına adım sayısı olan 32 ile çarpılmalıdır. Dişli oranı için daha doğru değer aslında yaklaşık 63.68395’tir:
- Bu nedenle, son adım sayısını 2038 olarak ayarlıyoruz (32 x 63.68395 = 2037.8864).
- Stepper’ı başlatıyoruz. Parantez içinde parametreler bulunur. İlk parametre adım sayısıdır. Önceki satırda tanımlandığı gibi, bu sayıyı temsil etmek için STEPS yazabiliriz. Diğer parametreler, ULN2003 sürücü kartını bağlamak için kullanılan Arduino pinlerine karşılık gelir. Daha önce belirtildiği gibi, pinler 8, 9, 10 ve 11’dir.
- Sonraki döngü fonksiyonu, motoru çalıştırmak için kodumuzu yazacağımız yerdir. Döngünün ilk satırında, bir dönüşün hızını dakikada bir olarak ayarlıyoruz.
- Stepper motoruna 2038 adım yapmasını söylüyoruz. Daha önce hesapladığımız gibi bir dönüş 2038 adım ile karşılık geldiği için, motor milinin yaklaşık bir dakika içinde tam bir dönüş yapması gerekir.
- Bir saniyelik bir gecikme ayarlıyoruz. Sonraki iki satırda, aynı şeyi tekrar yapıyoruz – dakikada dönüş sayısını ayarlıyoruz ve stepper’a bir dizi adım yapmasını emrediyoruz. Ancak bu sefer, hızı dakikada 6 dönüş olarak ayarlıyoruz ve milin diğer yönde hareket etmesi için negatif bir adım sayısı belirliyoruz. Bu, motorun 6 kat daha hızlı hareket edeceği ve yaklaşık 10 saniyede tam bir dönüş yapması gerektiği anlamına gelir (60s / 6 = 10s).
İşte örnek kod. Aşağıdaki kodu Arduino programınıza yükleyin ve kendiniz deneyin!
1. #include <Stepper.h>
2.
3. #define STEPS 2038 // motorunuzun bir dönüşündeki adım sayısı (28BYJ-48)
4.
5. Stepper stepper(STEPS, 8, 10, 9, 11);
6.
7. void setup() {
8. // yapılacak bir şey yok
9. }
10.
11. void loop() {
12. stepper.setSpeed(1); // 1 rpm
13. stepper.step(2038); // 2038 adım yap -- bir dakikada bir dönüş ile karşılık gelir
14. delay(1000); // bir saniye bekle
15. stepper.setSpeed(6); // 6 rpm
16. stepper.step(-2038); // daha hızlı bir hızda diğer yönde 2038 adım yap -- 10 saniyede bir dönüş ile karşılık gelir
17. }
Kod: Michael Schoeffler
İlerlemek
Bu, stepper motorunuzu çalıştırmaya başlamak için basit bir kod. Elektronik alanında başlamak oldukça göz korkutucu olabilir ve bazen şüphe ve yetersizlik duygularıyla dolmanıza neden olabilir, özellikle kodunuz çalışmadığında.
Bu nedenle birkaç basit kodla başlayın. Güveninizi artırmak için biraz daha pratik yaptıktan sonra, motoru daha fazla şey yapabilmesi için daha karmaşık kodları denemeyi unutmayın. Milyonlarca açık kaynak projesine sahip bir platform olan Github, oynamak için daha fazla örnek kod aramak için iyi bir yerdir.
Özet
Artık 28BYJ-48 stepper motorunu ULN2003 sürücü kartı ve Arduino ile nasıl çalıştıracağınızı anladığınıza göre, bir sonraki projeniz için kaliteli stepper motorlar, sürücü kartları ve Arduino mikrodenetleyicileri bulabileceğiniz Seeed Bazaar’a buradan göz atın. Ayrıca, 28BYJ-48 stepper motor ve ULN2003 sürücü kartı ile birlikte uygun fiyatlarla sunulan stepper motor sürücü paketine de göz atın.
Bu kılavuz için hepsi bu kadar! Herhangi bir sorunuz varsa, lütfen yorumlar bölümünde bırakın, elimizden gelenin en iyisini yaparak geri dönmeye çalışacağız.
