PIC Assembly - PIC C PIC16F84A ile Step Motor Kontrolü By Burak Ablay Posted on 3 Şubat 2015 7 min read 6 0 15,107 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Step motorlar, diğer motorlardan farklı olarak motor bobinlerine uygulanan elektrik palsi (pulse) ile döndürülürler. Her bir pals, rotoru bir adım döndürmektedir. (Adımın derece değeri, motorun adım sayısına bağlıdır) bu palsler, “adım” olarak adlandırıldıklarından bu motor türüne adım (step)motor denir. Adım motorları (Step Motors), girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yapan fırçasız, sabit mıknatıs kutuplu DC motorlardır. Sabit mıknatıslı kutuplar hareketli kısımda yer alır. DC gerilimin uygulandığı sargıların bulunduğu kısım “stator”, dönen kısım ise “rotor” olarak isimlendirilir. Step motorlar, bir turdaki adım sayısı ile anılırlar. Örneğin 300 adımlık bir step motorun bir tam dönüşünde (tur) 300 adım bulunur. Zaten ismini de buradan alır. Buna göre bir adımın açısı; 360 / 300 = 1,2 derecedir. Bu değer, step motorun hassasiyetinin bir ölçüsüdür. Her bir adımda motorun döneceği açı derecesi motorun üzerinde yazar. Örneğin 7.5 derecelik (360º/48) step motor, bir tam turda 48 adım atar. Bir devirdeki adım sayısı yükseldikçe step motorun hassasiyeti yükselmektedir ancak buna paralel olarak maliyeti de artmaktadır. Step motorlar yarım adım modunda çalıştırıldıklarında hassasiyetleri daha da artar. Örneğin 300 adım / tur değerindeki bir step motor, yarım adım modunda çalıştırıldığında tur başına 600 adım yapacaktır. Bu da 1,2 dereceye oranla daha hassas olan 0,6 derecelik bir adım açısı anlamına gelir. ÇALIŞMA PRENSİBİ Step motora giriş palsi uygulandığı zaman belli bir miktar döner ve durur. Bu dönme miktarı motorun yapısına göre belli bir açı ile sınırlandırılmıştır. Step motorda rotorun dönmesi girişe uygulanan pals adedine bağlı olarak değişir. Girişe tek bir pals verildiğinde rotor tek bir adım hareket eder ve durur. Daha fazla pals uygulanınca pals adedi kadar adım hareket eder. Bütün step motorlarının çalışma prensibi bu şekildedir. STEP MOTORLARIN SÜRÜLMESİ Bir step motor, tek fazlı, 2 faz tam adımlı ve 2 faz yarım adımlı olmak üzere farklı şekillerde sürülebilir. Bazı kaynaklarda unipolar step motorlar tek fazlı, bipolar motorlar ise 2 fazlı olarak adlandırılabilir. Bipolar iki yönlü beslenen anlamına gelir ve Bipolar step motor, iki yönde de akım akabilen motor demektir. DEVRE ŞEMASI ULN 2003 ULN2003 fiekil 5’den görüldü¤ü gibi ULN2003 entegresinin iç yapısında darlington bağlı transistörler bulunuyor. Transistörlerin iletime girebilmesi için entegrenin giriş uçlarına 5V’luk gerilim uygulamak yeterli. Giriş uçlarına seri bağlı dâhili dirençler bulunduğundan giriş akımını sınırlamak üzere harici dirençler kullanmaya gerek yok.Bundan dolayı, ULN2003 entegresi mikro denetleyici çıkışına doğrudan bağlanabiliyor. Her bir kanalın çıkış akımı 500mA. DEVRENİN C KODU [php] #include "htc.h" #include "delay.h" // Gecikme kütüphanesi const unsigned char yarim[]={0b00000001,0b00000011,0b00000010,0b00000110,0b00000100,0b00001100,0b00001000,0b00001001}; const unsigned char tam[]={0b00000011,0b00000110,0b00001100,0b00001001}; void main(void) // Ana fonksiyon alanı { int i=0; // Herhangi bir değişken tanımlanıyor TRISB=0x00; // PORTB çıkıs olarak yönlendiriliyor TRISA=0XFF; PORTB=0x00; // PORTB’nin tüm çıkışları sıfırlanıyor while(1) { if(RA0==1)// TAM TUR SAĞA { for(i=0;i<4;i++) { PORTB=tam[i]; DelayMs(100); // 250ms bekleniyor } } if(RA1==1)// TAM TUR SOLA { for(i=4;i>0;i–) { PORTB=tam[i-1]; DelayMs(100); // 250ms bekleniyor } } if(RA2==1)// YARIM TUR SAĞA { for(i=0;i<8;i++) { PORTB=yarim[i]; DelayMs(100); // 250ms bekleniyor } } if(RA3==1)// YARIM TUR SOLA { for(i=8;i>0;i–) { PORTB=yarim[i-1]; DelayMs(100); // 250ms bekleniyor }}}} [/php] Hex dosyasına buradan ulaşabilirsiniz..