verilen adım sayısına göre step motor kontrolü

Başlatan ekaiser1, 03 Mayıs 2005, 02:51:04

ekaiser1

pc' den step mtorun hangi yöne kaç adım atması gerektiği kullanıcıya sorulacak. ve bu bilgi paralel porta gönderilecek. pic16f84 bu bilgiyi paralel porttan alacak ve step motoru söylenen yönde söylenen :!:  sayıda adım attıracak ve duracak.

arkadşlar bu benim yapmam gereken bir proje. bunu için paralel port yerine seri port ta kullanabileceğim söylendi. artık hangisi ile ilgili çözüm önerilerninz ve programlarınız devreleriniz varsa lütfen iletin. çok teşekkür ederim. ama lütfen mümkünse çözümler somut olsun. şöyle yapabilirsin gibi şeylerin içinden çıkmam zor oluyor. çünkü bu konularda çok tecrübeli değilim. çok teşekkürler.

hacettepeli_muhendis

paralel porttan yaparsan pic e bile gerek kalmaz

paralel portun d0-d3 pinlerini dirençlerle transistörlerin base ine bağlarsın
emitter lerini topraklarsın collector lerini step motorun fazlarına bağlarsın ortak uçlarada motorun üzerinde yazan voltajı verirsin

yapacağın program şu işi yapar
sırayla d0-d3 bacaklarına 1 verir yani

d
0123

1000
0100
0010
0001


bunu bu sırayla verirsen modüler olarak yani başa dönecek her verdiğin durumda 1 adım atar ters yönde verirsen ters yönde döner

tabi bunların arasına bi gecikme vermelisin
Dünyada 10 çeşit insan vardır binary saymayı bilenler ve bilmeyenler

ekaiser1

zaten sorun da bu. illaki seri port veya paralel port kullanılması gerekiyor. yoksa ki iş çok kolay. bu konuda yardımcı olabilirseniz çok sevinirim.

hasanuslu

Merhaba hacettepeli engineer bu step mkotor konusuna şekiili bir açıklama getirebilirmisin söylediğin paralel port örneğiyle ilgili;
tskler iyi çalışmalar.

hacettepeli_muhendis

şu şekilde diyoum Paralel Port un D0-D1-D2-D3 çıkışları

dirençlerle T1-T2-T3-T4 e bağlanacak ve bu D0..D3 bacaklarına söylediğim dalga sekansı verilecek

Dünyada 10 çeşit insan vardır binary saymayı bilenler ve bilmeyenler

ekaiser1

arkadaşlar;
pc' den step motorun hangi yöne kaç adım atması gerektiği kullanıcıya sorulacak. ve bu bilgi seri porta gönderilecek. pic16f84 bu bilgiyi seri porttan alacak ve step motoru söylenen yönde söylenen sayıda adım attıracak ve duracak.

en önemli olanı ise visual basic te yazılmış pc seri port yazılımı. yani kullanıcıya adım sayısını ve yönü soracak. ve bu bilgileri seri olarak pice (16f84) gönderecek.picte bu bilgilere göre adım motoru istenen yönde sayıda motoru döndürecek.

yardımlarınızı bekliyorum.çok teşekkür ederim.

ete

@ekaiser1,

Bu projede senin üstleneceğin kısım- bölüm ne olacak?. Yoksa tüm projeyi board dan mı sağlamayı düşünüyorsun?.
Bana kalır ise lütfen yardım demek yerine ben şu kadarını yapabilecek durumdayım veya yaptım demen gerekir idi. Sıkıştığın yerde ise yardım istemen son derece normal. Yardımı o kadar genel istemişsinki anladığım kadarı ile bu konu hakkında hiç bir şey bilmiyorsun ve bu konu sana ödev olarak verilmiş doğrumu?.
Sen yinede iki satır bu projenin ne kadarını yapabilecek durumdasın belirtsen iyi olacak. Ondan sonra yardımlar çoğalacaktır sanırım. Kendi payıma işin pic kısmını biliyorum ve daha önce yaptım. Aslında PC kısmınıda biliyorum ve benzer bir konuyu Delphi de yazmıştım. Ama biliyorsun iş sana ait ve en önemlisi bir ödev bu. Hadi bakalım kendini biraz zorla ve bir şeyler karala.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ekaiser1

ben konunun pic kısmını halletmiştim zaten. fakat seri portttan pice veri gönderme konusunda takıldım. visual basic te yön ve adım sayısını pice göndermeyi başaramadım.yani mesela sola 40 adım denilirse L 40 yazılıp pice seri porttan gönderilecek.

ayrıca adım sayısının çok büyük değerler olması durumunda nasıl bir yol izlemeliyim?

arkadaşlar yardımlarınızı bekliyorum!!!
şimdiden çok teşekkür ederim.

ete

Visual Basicte yapman gereken tek şey bir fonksiyon oluşturmak. Fonksiyonda Parametre olarak X (Ascii karekter),YYYY (Rakam) değerleri girilecek ve fonksiyon içinde önce baştaki karekteri alacaksın. Şayet R ise sağa L ise sola hareket bölümüne göndereceksin.
İkinci parametreyi alıp onuda rakam olarak kuracağın döngüde kullanabilirsin. Adım sayısı demek step motor'a uygulanacak pals sayısı demektir. Adım sayısı çok büyük olursa demişsin. PC de bu konuda sorun yok sanırım değişkenler yeterince büyük değerler alabilir ve sende istediğin kadar büyük adım parametresi oluşturabilirsin.

Bilmiyorum, belkide seri porttan sinyal çıkarmayı beceremedin. Visual Basic'i bilmiyorum ancak bildiğim kadarı ile bir seri haberleşme dosyası açıyorsun. Haberleşme paremetrelerini (9600 ,8,N) veriyorsun ve sonra out gibi bir komut ile bilgilerini bu file üzerinden seri porta gönderiyorsun. Diğer programlama dillerinde bu genellikle böyle yapılıyor.


ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

hasanuslu

Selam ETE;
foruma verdiğin destekten dolayı teşekkürler...
delphide seri port kontrolü hakkında bir sorum olacak
bunun için tavsiye edeceğin site varmı?
bir komponent ilemi yapılıyor yardım edersen sevinirim....
yada bir örnek yollarsan
teşekkürler....

ete

@Hasanuslu,

Delphide seri port kontrolü tabiiki bir komponent yardımı ile oluyor. Bu konuda delphi nin kendi komponenti var ancak başkalarının yazmış olduğu daha kullanışlı komponentler var. Ben birini kullanmıştım. Örneği aşağıya veriyorum. Bildiğim bir site yok, komponent bir yerden alime geçti ama şimdibilmiyorum nereden. Sanırım nette araştırırsan bulursun.

örnek kod;
ComDataPacket1.StartString :=' ILK '+#10;
     ComDataPacket1.StopString :=' SON '+#10+#13;

     if ComPort.Connected then
      ComPort.Close
     else
      ComPort.Open;

     {$I-}
     AssignFile(Dosya,DosyaIsmi);
     ReWrite(Dosya);
     {$I+}
     I:=1;
     WriteLn(Dosya,Firma);
     WriteLn(Dosya,Tarih);
     WriteLn(Dosya,Notlar);
end;


ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

SpeedyX

@ETE
hocam verdiğin kod daha çok tpascal gibi duruyor (yada console application) ve seri port ile ilgili bir gönderme/alma kısmı göremedim. begin (yada başka birşey) yok end; var.
sanırım bütün bir programdan yapıştırma ama bununla biryere varmak zor gibi. tabi bilmediğim bir ince ayrıntı varsa affola.
seri port ile ilgili olması için en azından tanımlamaların, set ayarlamalarının olması gerekliydi diye düşünüyorum.
dikkat edelim yanlış bilgi vermeyelim. :roll:

ete

@speedx,

Programın yalnızca bir bölümünü verdim. Tüm programı verecek değilidim tabiiki. Sebebi vermek istemediğimden değil kafa karıştıracak olmasından dolayı.

Delphi zaten pascal'ın bir uzantısı temel pasal alınarak yazılmış bir dil bu yüzden çok benzer.

ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

hasanuslu

tskler ete; ;)
zaten pascal tabanlı olduğu için tercih ediyorum..
ama uzun zamandır kullanmıyorum delphi.
başka kompanentler hakkında nereden bulabileceğimi yazarsan sevinirim.

iyi çalışmalar..

farezehiri

ya benim de bu şekilde bir sorunum var.
bir step motor kullanmak istiyorum
çünkü referans makalelerin hepsinde step motor kullanılmış.
bu step motorun torku en fazla 0,5 nm olacak.
çünkü mekanizma küçük birşey.
ektede bununla ilgili resimi gönderdim.
hareket ileri ve geri yöndedir.yani tek eksenlidir.

fakat hareket hem frekans yani hız hemde step motorun açısı yani tur sayısını kontrol edebilecek bir mekanizma olmalıdır.

yani biz sisteme 0,5 hz ve tur sayısı da 360x5 derece gibi değerler girilebilmelidir.

işte bu hareketi sağlayacak bir step motor sürücüsü ve yazılımı gerekli
acaba bunun hakkında bana yardım edebilir misin
yada bana bir yol gösterebilir misin?

ltfx ile bu konuda konuştuk.
ama halen bu işin içinden çıkamadım.