Adım(step) Motor Sürelim

Başlığımız “step motor sürelim”! Hangi özellikte nasıl bir step motor diyeceksiniz, motorumuz eski bir yazıcıdan çıkma 7.5 derece adımlı unipolar step motor(6 uçlu).

Step motorlar ve servolar… işlev olarak çok yakınlar ve çoğu uygulamada birbirleri yerine kullanılabiliyorlar. Bu iki motora da açı(veya pozisyon) kontrollü hareket yaptırabiliyoruz. Ancak step motorlar yapı itibariyle servolardan çok daha basit, step motorlar kalıcı mıknatıs(permanent magnet) ve sarımlardan oluşurken servoların içinde bir kontrol devresi bulunmaktadır. Bu iki motorun da çok geniş bir kullanım alanı var ancak ben step motorları en çok CNC makinelerinin eksen hareketlerinde görüyorum, servoları ise açılı hareketin çok önemli olduğu robot kolu uygulamalarında çokça görüyorum.

Bizim sürdüğümüz step motor ise hepsinden basit 🙂 Torku ancak yazıcıya kağıt alabilecek büyüklükte olan mütevazı bir motor. Step motorlarda rotor(ortada dönen parça) kalıcı mıknatıslardan oluşuyor stator(rotoru çepeçevre saran hareketsiz bölüm) da ise sarımlar var. Rotordaki kalıcı mıknatıs sayısı ve statordaki sarım sayısı tamamen motorun özellikleriyle ilgili. Sarımlar rotor etrafını sarmış sıralı bir şekilde duruyor(resmi aşağıda-bir resim altta-):
Kalıcı mıknatıslardan oluşan rotor:
Step motorumuzun kalıcı(permenant) mıknatıslardan oluşan rotoru
Resim www.overclockers.com dan alınmıştır.

Statordaki sarımlar(4 tane):
Rotorun etraındaki sarımlar

Resim www.allaboutcircuits.com dan alınmıştır.

Motorun sürülmesi işlemi ise bu sarımları belirli bir sırayla mıknatıslandırmaktan ibaret, teker teker veya 2 li 1 li 2li… gibi bir sırayla mıknatıslandırarak motorumuzu sürebiliriz. Sarımı mıknatıslandırmak? Sarıma akım vererek mümkün tabi. Akım vereceğiz ancak önce motorumuzdan çıkan kabloların hangisi hangi sarıma ait bunu bilmeliyiz. Sarımlarda bazı uçlar ortak olmuş olabilir(aşağıdaki gibi) veya tüm sarımların uçları dışarı verilmiş olabilir. Tüm bunları anlamanın yolu bir ohmetre ile bakmaktan geçiyor. Her bir sarımın yaklaşık 80-100 ohm civarında bir direnci var, ohm metreyi elinize alın ve başlayın 2 şerli ölçüm almaya. Çiftlerin birinde 100 ohm okudunuz! Hah! bir sarımı buldunuz demektir. 200 ohm okuduysanız bir ortaklık var demektir, ortak ucu bulmaya çalışın 🙂 Bu şekilde tüm sarımları keşfettikten sonra sürücü devre işlemine başlayabiliriz.

Herhangi bir sarımı mıknatıslandırdığımızda rotordaki en yakın mıknatıs mıknatıslandırdığımız sarımın manyetik doğrultusuna girer. Sonra bir yandaki sarımı mıknatıslandırırız ve rotordaki en yakın mıknatıs yeni mıknatıslanan sarımın manyetik doğrultusuna girer, rotordaki kalıcı mıknatısların ve statordaki sarımların yerleşim biçimi bu iki hareketle motorun bir adım ileri atmasını sağlar. Aşağıdaki resim rotorda sadece tek kalıcı mıknatıs olsaydı ne olacağını gösteriyor, bizim tarif etmeye çalıştığımızın aşağıdaki olaydan tek farkı rotorda tek mıknatıs değil birden çok mıknatıs olmasıdır(Rotorumuzun örnek resmini yukarıda vermiştik). Hangi mıknatısa göre yön belirlenecek sorusunu sorabilirsiniz, rotordaki kalıcı mıknatıslardan mıknatıslanan sarıma en yakın olan mıknatısa göre 🙂 Bu motorun tasarımıyla ilgili bir durum şu anda bizi çok da ilgilendirmiyor, sürme işlemi için yapmamız gereken sarımları uygun bir şekilde mıknatıslandırmaktan ibaret. Aşağıdaki hareketli gösterimde a ve b sarımları için ortak uçlar ayrı, bunlar da ortak olabilir yani 4 sarımın da bir tek ortak ucu olabilirdi, bu durumda motorumuz 6 uçlu değil 5 uçlu olurdu.

Resim :http://www.cefetrs.tche.br/tro/alunos/motordepasso/toppage1.htm adresinden alınmıştır.

Resmi aldığım adrese bakarsanız bu resmin yanında yarım adım sürme ile ilgili resim var, 2 li 1li derken onu anlatmaya çalışmıştım, hareketli gösterimde çok güzel anlatılmış. Hazırlayanların eline sağlık.

Sarımları mıknatıslandırma işlemi için bir devre düşünelim. Şartlarımız:
1) İstediğimiz sarımı istediğimiz zaman mıknatıslandırabilmeliyiz (mikrodenetleyici kontrollü -eğer tek tip sürüş yapacaksak senkron(clock sinyali ile çalışan) bir lojik devre ile de sürebiliriz)
2) Devremiz tarafından yeterli akım sağlanmalı

Akım verdiğimiz sarımları daha hızlı değiştirirsek  motorumuzu hızlandırabiliriz. Ne de olsa akımın hangi sarımdan akacağını dijital olarak kontrol ediyoruz. Ancak bu hızı da bir yere kadar arttırabiliriz, bir sarıma akım vererek mıknatıslandırıp rotoru gelmesi gereken pozisyona gelmeden diğer sarıma geçersek motorumuz bu hıza cevap vermeyecektir. Bu süreyi nasıl ayarlayacağız? Ben hız denemesi yapmadım, aşağıda verdiğim programdan da anlaşılacağı üzere adımlar arasında 500 ms beklemişim(epey uzun bir süre), siz bu süreyi kısaltarak ne kadar kısaltabileceğinizi test edebilir, motorunuzun ne kadar hıza ulaşabileceğini görebilirsiniz.

#include <16f628.H>
#fuses INTRC_IO, NOMCLR, NOPROTECT, NOWDT, NOLVP
#use delay(clock=4000000)
main(){
//int a[8]={1,3,2,6,4,12,8,9};
//int a[4]={1,2,4,8};
//int a[2]={1,4};
int a[4]={8,4,2,1};
int i=0;
while(1){

output_b(a[i]);
delay_ms(500);
i+=1;

if(i==4){
i=0;
}

}

Tekrar devremize dönersek: İlk aklımıza gelen herhangi tip bir transistorü anahtar(switch) olarak kullanıp bu anahtarları mikrodenetleyici veya lojik devre ile kontrol etmek . Bu işi önceden yapan arkadaşların devrelerine baktığımız zaman ULN2003 adlı bir entegrenin sıkça kullanıldığını görüyoruz. Bu entegrenin içinde 8 tane darlington var, bahsettiğimiz ilk yöntemden farklı değil, sadece daha yüksek akım için darlington yapısı kullanılmış.
Bizim motorumuzun keşfettiğimiz 4 tane sarımı vardı. 6 uçlu(kablolu) bir motordu, 2 sarımın da ortak olduğu bir nokta vardı, bu uçları +VCC ye bağlamıştık(aşağıdaki resmi inceleyeiniz, bunu yapıp yapmamakta serbestiz, farklı kombinasyonlarla farklı sürüşler uygulanabilir) ve kalan uçlarından hangisini toprağa çekersek o sarım mıknatıslanıyordu. Yani sürme işlemi için ULN2003 ün 8 darlingtonundan 4 tanesi bizim için yeterli. Devre şemamız ise şöyle:

Çok emin olmayarak(hata olabilir) hazırladığım Proteus Simülasyon ve CCS C kaynak kodunu indirmek için buraya tıklayınız.
Videosu:

Tags :

27 thoughts on “Adım(step) Motor Sürelim”

  1. elinize saglık bitirme ödevim asansör sistemiydi onun içinde adım motor kullanacaktım. insallah çalışırsa bu devre ysrdımıyla yapıcam. ve eger izin verirsenizde ödevimi diger arkadaşlara faydalı olması amacıyla bu sitede teşhir edicegim.

  2. Oldukça açıklayıcı olmuş (videodaki led ler özellikle), verdiğin bilgiler için teşekkür ederim.

  3. çok faydilı olmuş hepinize teşerkür ederim
    YANİSONUÇ OLARAK EKİNLER BAŞVERMEDEN KÖR BUZAGI TOPARLAMAZMIŞ

  4. Arkadaşlar aynı devreyi 16f84A entegresi ile de yapabilirsiniz bu picin programlayıcısını 3 tane direnç ve seri port ile win98de dahi rahatça programlıyabiliyorsunuz ( 16f84 un programlayıcı maaliyeti daha az yani yapmak isteyenler için) ayrıca pic basic pro kullanarak programlamak isterseniz Kİ DAHA KOLAY aşağıdaki kodları alıp picbasic proya yapıştırıp derleyin ve hex dosyasını pice yazdırın

    DONGU:
    TRISB=0 ‘ Tüm portlar çıkış olarak ayarladık
    PORTB.1=1
    PAUSE 20

    PORTB.1=0
    PORTB.2=1
    PAUSE 20

    PORTB.1=0
    PORTB.2=0
    PORTB.3=1
    PAUSE 20

    PORTB.1=0
    PORTB.2=0
    PORTB.3=0
    PORTB.4=1
    GOTO DONGU
    END

    yukarıdaki programcık yardımı ile 20 ms gecikmeli olarak step motorumuzun bobinlerini sırası ile enerjilendirdik…
    Devreyi sorarsanız yukarıdaki fatih erdem beyin devresinin aynısıdır… Bir alternatif olması düşüncesi ile katkıda bulunmak istedim sadece… BU arada PIC BASIC PRO DA Kullanılan entegreyi 16f84A olarak seçmeyi unutmayın

  5. motorumuzu olabildiğince hızlı sürmek için hangi yöntemi uygulamalıyız (tam adım – yarım adım) ?
    ve aynı zamanda dışarıdan hız kontrolü yapmak istesek nası bir donanım ve yazılımla gerçekleriz ?

  6. Çok teşekkürler.
    Harika bir devre.
    Yalnız ikinci etapta iki buttonla ileri geri fonksiyonu ekleyebilir miyiz?

  7. selam benim basit bir stepmotor yön kontrol devresi yapmam gerekiyo elimde pic 16f877 ve pic16f84 a var lütfen gerekli malzeme listesi ve basit bi şekilde isis te cizip gönderebilirmisiniz ..teşekkürler.

  8. İyi günler, step motor sürücü devresi yapmam gerek bu devrede transistör kullandınız mı videoda transistör var gibi gördüm

  9. Sarımları mıknatıslandırma sırasına göre verilmiştir, neden öyle mıknatıslandırıldığından yazı içerisinde bahsedilmiş olmalı. Kolay gelsin.

  10. motorda sarı turuncu kırmızı kahverengi ve siyah olmak üzere 5 tane kablo var ve pıc16f84a ile kontrol ettiğim sürücüde yani devrede nereye hangi kablonun bağlandığını bilmiyorum çok acill lazım yardım edebilirmsiniz okulda proje ödevim

  11. yapımı basit bu projeyi bitirme almak için düşünüyorum fakat kod kısmının doğruluğu hakkında kesin bilgiye sahip olmam lazım çünkü program kodlama konusunda bayağı zayıfım yardım ederseniz sevinirim

  12. 2 eksenli bir makine tasarlıyorum hatta küçük bi cnc torna işleyeceğimiz parçalarada radyus ve konik ve açısal sekiller var servo mu step motor kullanmamız gerkiyor karar vermedik yardımcı olurmusunuz.teşekkürler

  13. Arkadaşlar ben mi göremiyorum yoksa gerçekten yokmu? Videodaki led ler şemanın neresinde acaba? Devreyi kurdum ama çalışmıyor.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir