step motorun dönüş hareketlerini yumuşatma?

Başlatan mustafa_cmbz, 30 Aralık 2007, 15:30:59

mustafa_cmbz

mehabalar !

arkadaşlar okula ufak bir devre yapmaya çalışıyorum bu devre ile minik bir kamerayı step motor ile (5 uçlu) döndürmek istiyorum.fakat aklıma takılan bir nokta var mesela beslemeye +5v verinde ve diğer uçlara sırası ile 0v verdiğimde motor ufak ufak dönüyor fakat bu dönme hareketini robotumsu şekilde yapıyor acaba kellandığım 5 uçlu olan step motoru servo motor gibi kullanmanın bir yolu yöntemi varmıdır diye sormak istedim...eğer var ise nasıl olmalı? programlama dili olarak basic'i kullanıyorum...sürücü olarak uln2003 kullanmak isityorum bahsettiğim konun bir hal çaresi varmıdır?

kolay gelsin.....

OG

microstep (mikrostep) denen usul ile adımları küçültünce haraketler softlaşır.

Adım açısı 1/2, 1/4, 1/8, 1/16 gibi bölünebilir. Bu durumda örneğin 1,8derece olan açı 0,9, 0,45, 0,225, 0,1125 gibi olur.

Veya dişli gibi mekanik araçlarla devir düşürülünce aynı etkiyi alırsın.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mustafa_cmbz

Alıntı yapılan: "OG"microstep (mikrostep) denen usul ile adımları küçültünce haraketler softlaşır.

Adım açısı 1/2, 1/4, 1/8, 1/16 gibi bölünebilir. Bu durumda örneğin 1,8derece olan açı 0,9, 0,45, 0,225, 0,1125 gibi olur.

Veya dişli gibi mekanik araçlarla devir düşürülünce aynı etkiyi alırsın.

hocam bu dereceleri bölme işleminden biraz bahsedermisin nasıl yapılacak vs. işin mantığı nedir? bu yöntem nasıl uyugulanır? benim elle sürmeye çalıştığım gibi mi? yani binary değer atayarak mı?

benim amacım motoru bu videodaki gibi yavaş yavaş döndürmek..

http://www.youtube.com/watch?v=XlZCgQmZkwU

ferdem

Step motorunuzun adım boyu neydi, bir adımda kaç derece dönüyor? Ben zamanında yazıcıdan çıkma, adım boyu 7.5 derece bir step motor sürmüştüm(videoya alıp kendimizce bir şeyler anlatmaya çalışmıştık, isterseniz burdan bakabilirsiniz), içinde 4 sarım vardı ve sürmek için 3 seçeneğim vardı: çift adım, tam adım, yarım adım. O motorun en küçük adımı yarım adım 7.5/2=3.75 derece idi, sizin motorunuzun nedir bilemiyorum. Ancak şunu deneyiniz: Diğer uçlara 0 ı sırasıyla vermektense(tam adım sürüyorsunuz) yarım adım sürebilmek için ikili tekli ikili tekli olarak veriniz. Yani sıranız 1,2,3,4 olmaktansa 12,2,23,3,34,4,41,1... şeklinde olsun.

Servo gibi kullanma işine gelince: Servoda açılı hareket bir anda yapılıyor, bizim step motorda adım adım, sanırım bu farkı kast ettiniz. Adımlar arası geçiş zamanını en aza indirdiğinizde bu zamanı fark ettirmeyebilirsiniz ancak tabi belirli bir hıza kadar çıkabilirsiniz.
Gerisi size kalmış, hız tesitini yazdığınız kodla yapabilirsiniz. Kolay gelsin

mustafa_cmbz

hocam benim kullandığım motor da tam adımda 7.5 derecelik açı ile dönüyor...

sizin tarif etmeye çalıştığınız olayı öğlen denemiştim ama bilmeden denedim çünki kameranın kablosu biraz sert ve tam adım döndürmek için uyugladığım +5 verip çektikten sonra kameranın kablosu motoru yine geri atıyordu bende sizin bahsettiğiniz 2'li yöntemi (yarım adım) uyugladım bu sefer hem kamera geri gitmiyor hemde ufak dönüyordu ama demekki ben motora verilen lojik değerleri el ile uyguladığım için zaman aralıkları bana uzun gelmiş....

siz deneme devresindeki kodları hangi dilde yazdınız ? sorun teşkil etmez ise paylaşıma açabilirmisiniz eğer basic ise motorun dönmesi ile alakalı zaman aralıklarıyla ilgili örnek olmuş olur elimde...kolay gelsin...

ferdem


ferdem

Basic değil ama zaten yapılan iş porta veri göndermekten ibaret, kod şuydu:

#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;
      }

}


}


a dizilerini tahmin edersiniz, yarım adım-tam adım vs için. Ben 500 ms bekleyerek döndürüyormuşum acaba 100ms deseydim ne olurdu? Deneye deneye uygun bir hız bulunabilir. Ancak şu açık ki belirli bir zamandan küçük olursa motor aynı hızda cevap veremeyecektir.

Bendeki motorun torku da çok düşüktü; yazıcıya kağıt alıyor, yazıcıdan kağıt veriyor işte. Belki de yazıcı içerisinde bir dişli sistemi vardı, tam hatırlayamıyorum. İyi çalışmalar.

mustafa_cmbz

hocam ben şu kısımdaki rakamların işlevlerini hala anlamış değilim tamam yarım adım döndüreceğiz fakat bunlar ne anlama geliyor?



//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};
[/color]

ve birşey daha bizim kullandığımız motorların daha küçük adımlar ile dönmesi mümkünmü @OG hocamın dediği açılar ile mesela? yoksa @OG hocamın bahsettiği özellikler özel step motorlar içinmi? yoksa motorları başka bir yöntem ile mi sürüyorlar?

ferdem

Bizim step motorların içinde 4 tane sarım var, bu sarımların birer veya ikişer olarak veya birli ikili mıknatıslandırıyoruz. ULN girişlerini B portunun ilk 4 pinine bağladığımızda.
output_b(1) b portunun ilk pinini 5V yapıyor, 1 ikilik sistemde 0b00000001 olduğu için.

Biz sırasıyla 1., 2., 3., 4. pinleri 5V yapmak istersek B portuna sırayısla
0b00000001, >>> Onlukta 1
0b00000010, >>> Onlukta 2
0b00000100, >>> Onlukta 4
0b00001000  >>> Onlukta 8

uygulamamız gerekir.  Yarım adım sürerken de:
0b00000001 >>> 1
0b00000011 >>> 3
0b00000010 >>> 2
0b00000110 >>> 6
0b00000100 >>> 4
....
şeklinde uygularız.

Umarım açıklayıcı olmuştur.

Bu motor için ilaveten adım oluşturulması sarımları istediğimiz kadar mıknatıslandırabilirsek mümkün olabilir, yani sarıma giden akımı kontrol edebilmemiz lazım. Biz burda on-off şeklinde mıknatıslandırıyoruz.

Motorun yavaş dönmesi de biraz ince bir konu. Her şeyden önce, biz sarımları aniden mıknatıslandırıyoruz, bu durumda ani geçişler olacaktır ama adım boyunun çok ufak olması durumunda adımları hissettirmeyebiliriz.

Peki sarımları yavaş yavaş mıknatıslandırabilir miyiz? Biz uln girişine +5V u bir anda verip sarımı bir anda mıknatıslandırıyoruz bunu yavaş yavaş yapmak için ne yapabiliriz? Güzel bir çalışma konusu. Bir kapsite bir dirençle uygun zaman sabiti değeriyle picin çıkışındaki +5 in yavaş çıkmasını sağlayabiliriz ama içerdeki darlington istediğimiz gibi davranır mı? Veya uln nin çıkışana bir devre düşünülebilir veya ULN siz bir şeyler düşünülebilir. Üzerinde düşünüp, çalışmak lazım! Sonuç olarak istediğimiz şey sarımın bir anda değil yavaş yavaş mıknatıslanması. Ancak şu durumda zaten düşük olan tork daha da düşecektir, yapılırsa eğlence amaçlı yapılabilir.
OG arkadaşın bahsettiği yöntemi ben bilmiyorum.
İyi çalışmalar.