Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: mr_knox - 07 Haziran 2012, 12:09:45

Başlık: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 07 Haziran 2012, 12:09:45
İyi çalışmalar Sayın forum arkadaşlarım
Elimde resimdekinin aynısı bir step motor var. pic kontrollü olarak 90 derece ileri geri hareket ettirmek istiyorum.
Daha önce hiç step motor sürme tecrübem olmadığımdan dolayı sanırım bişeyleri yanlış yapıyorum. motor sürmeyi forumlarda bulduğum ne pic+l298 devresi ne de pic+l297+l298 ( resimdeki devreye pic ile pals vererek ) denemelerimde hiçbir kararlılık yok :(
sorunlar çok bazen motor dönecekmişte çok zorlanıyormuş gibi ses çıkarıyor , bazen 1 adım ileri 1 adım geri gibi yapmaya çalışıyor vb. gibi
Bu konuda daha önceden tecrübeli ve bilgi sahibi arkadaşların fikir, öneri ve yardımlarını bekliyorum.
İlginiz için şimdiden teşşekkürlerimi sunarım.

(http://s13.postimg.cc/vyvm0wto3/step_motor.jpg) (http://postimg.cc/image/vyvm0wto3/)

(http://s15.postimg.cc/61sqwrdtj/l297_l298.jpg) (http://postimg.cc/image/61sqwrdtj/)

Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 07 Haziran 2012, 17:03:38
Arkadaşlar kimsenin bu tip bi uygulamada tecrübesi, fikri veya dökümanı yok mu?
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 07 Haziran 2012, 18:22:11
Step motorlar genelde adım basına kat ettikleri acı ile anılırlar. En çok kullanılan adım 1,8 derece/adimdir.
Böyle bir motorun tam bir turu 200 adimdir (360/1,8). Bu durumda senin elindeki sürücü ile motoru 90 derece döndürmek için motora 50 pula vermen yeterli olacaktır. Motor özellikleri iyi okunmuyor. Adım basına yürüdüğü acısalar yol belli değil onu bulursan dediğim sekilde istediğini yapabilirsin. Motoru eski konumuna almak için yon değiştirip aynı miktar polis yeniden motora vermen gerekiyor.

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: Erdem - 07 Haziran 2012, 18:58:14
Motor sadece titreme yapıyorsa kabloların sırasında bir hata olabilir.

Örneğin 5 kablolu adım motorun kablolarından bir tanesi vMotor dediğimiz ortak kablodur. Önemli olan bu kablonun hangisi olduğunu bulmaktır. Bunun için avometrenizi OHM ölçere getirin ve kabloların uçlarını ikişer ikişer ölçün. Tüm uçlar ile arasındaki direnç aynı olan kablo vMotor kablosudur.

Diğer 4 kablo ise motor kömürlerine gitmektedir. Bu dört kablonun da bir sırası vardır. Bu sırayı da deneme yanılma yöntemiyle bulabilirsiniz. Eğer bu kabloları yanlış sırada bağlarsanız motor dönmek yerine sadece titreme yapacaktır.
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 08 Haziran 2012, 10:06:44
mesela bahsettiğim uygulamayı l297d kullanmadan direkt pic ten l298 e pals vererek sürmeye çalışıyorum
Fakat daha simülasyon evresindeyken bile sorun yaşıyorum.
step motor 2-3 derece içinde saçmalıyor.
Kurduğum devre ve yazdığım kodlar aşşağıdaki gibidir yanlışım nedir?

(http://s18.postimg.cc/fxlk7v5d1/step_devre.jpg) (http://postimg.cc/image/fxlk7v5d1/)

#include <16f84a.h>     

#fuses XT
#use delay (clock=4000000)
#use fast_io(b)
int a;
int b;
void main ( )
{
    set_tris_b(0x00);
    output_b(0x00);
 
while(1)
{
   for(a=0;a<=13;a++) // 13x4=52 adım atıyor 52x1,8=93,6 derece sağa hareket edecek
      { output_b(0b00001001);
       delay_ms(25); 
       output_b(0b00000011);
       delay_ms(25);
       output_b(0b00000110);
       delay_ms(25);
       output_b(0b00001100);
       delay_ms(25);
      }
      delay_ms(1000); // 1 saniye bekleyecek
     
   for(b=0;b<=13;b++)  // 13x4=52 adım atıyor 52x1,8=93,6 derece sola hareket edecek
      { output_b(0b00001100);
       delay_ms(25); 
       output_b(0b00000110);
       delay_ms(25);
       output_b(0b00000011);
       delay_ms(25);
       output_b(0b00001001);
       delay_ms(25);
      }
}
}
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 08 Haziran 2012, 10:28:14
Bana kalırsa sen L297 ve L298 in nasıl sürüldüğünü yada kullanıldığını bilmiyorsun.

Bu iki entegreyi çift olarak kullandığın zaman elindeki girişler,
- Half/Full yani yarım adım ve tam adım çalıştırma (LOW=Tam adım)
- CLOCK yani puls girişin buraya düzgün bir clock sinyali girilecektir. Frekansı çok düşük olmamalıdır. Yoksa motor inler durur.
- CW / CCW yani YÖN girişi  saat yönü=HIGH tersi LOW. Motorun dönüş yönünü belirler

L297 yi yalnız başına step motor sürmek için kullanılması pek tavsiye edilmez.  Diyelimki kullandın.
BU durumda Motoru bir tarafa döndürmek için IN1=1  , IN2=0, IN3=1 ve IN4=L diğer tarafa döndürmek için  IN1=0, IN2=1 , IN3=0, IN4=1
şeklinde komut vermek gerekiyor. Bunlardan birer tanesini PWM sinyal olarak girmek gerekir sanırım. Böylece motorda devir ayarı da yapabilirsin. Ama doğru olanı entegreleri çift olarak kıllanmaktır.

Bu kullanım şekli ile yazdığın programa bakarsak uyum sağlamadığını göreceksin.
Sen sanki transistörle motoru sürüyormuş gibi komut vermişsin.

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 08 Haziran 2012, 10:54:07
ETE hocam resimde devre şemasında görüldüğü gibi tek olarak l297d i değil l298 i tek kullandım.
Konunun başında da belirttiğim gibi amacımı sağlamak için internette bulduğum devre şemalarını uyarlamaya çalışıyorum.
Forumlarda 2 farklı devre şeması buldum biri pic ten sizinde belirtmiş olduğunuz sinyalleri ve clock sinyalini verip pic + l297d +l298 üçlüsüyle motoru sürmek ki bu devre şeması konu başı mesajımda mevcut diğeri ise son gönderdiğim devre şemasındaki gibi l298 e picten palsler vererek sürmek.Fakat 2 farklı denemede de benzer problemler yaşıyorum.Bu amacımı gerçekleştirebilmek için  devre şeması ve yazılım algoritması önerileriniz nedir? Bu arada ilgi alakanız için teşşekkürlerimi sunarım.
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 08 Haziran 2012, 11:03:29
Tavsiyem 297+298 çiftini birlikte kullanman yönünde. HPWM çıkışı olan bir pic kullanıp CCP1 (HPWM) çıkışını direk sürücünün CLK girişine girmen gerekiyor. Yada açısal döndürmeler yapacak isen clk sayısını kontrol etmen gerekeceği için kendin bir HIGH +Delay ve bir LOW + Delay vererek clk palsini elde edip onu sürücünün CLK  girişine girmen gerekiyor.
Bunu yapmadan önce sürücünün YÖN girişine bir logic değer verip (LOW yada HIGH) adım seçiminde TAM adım olarak seçmende yarar var elbette.
Böylece motor sağlıklı olarak dönecektir.

Yapman gereken bütün bundan ibaret. CLK sinyalinin frekansını değiştirdikçe motor hızıda paralel olarak değişecektir. Min 200 hz maksimum 5000 Hz dolayında bir frekans vermen uygun olacaktır.

Step motorlar yüksek hızlarda kalkış yapamazlar çünki puls kaçırırlar. Doğru olanı düşük hızda kaldırıp sonra hızı artırmaktır. Bunuda uygulamaya çalışırsan yararlı olacaktır.

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 08 Haziran 2012, 17:43:03
Sizin önermiş olduğunuz gibi pic+l297+l298 kullanarak bir devre oluşturmaya ve yazılımı oluşturmaya çalıştım.
Fakat yine sorun var simülasyonda örneğin sürekli sağa dönmesi gerekirken belli değerler arası ileri-geri gidip geliyor bazen kaydırıyor başka başka değerler arası ileri geri yapıyor sürekli sola dönmesi gerekirken ise aynı saçmalamayı ters yöne yapıyor.
Bu durumda hatalarım ve yanlışlarım nelerdir acaba?

(http://s16.postimg.cc/aa52wnupt/step_l297_l298.jpg) (http://postimg.cc/image/aa52wnupt/)
#include <16f628a.h>     
#fuses XT
#use delay (clock=4000000)
#use fast_io(b)
int a;
int b;
void main ( )
{
    set_tris_b(0x00);
    output_b(0x00);
   
    //RB0--> reset -- step motor beklemede
    //RB1-->half/full--sürekli 1 yani full
    //RB2--> cw/ccw -- yön ilk döngüde 0 ikinci döngüde 1 ileri-geri
    //RB3--> clock -- 50ms de high-low
 
while(1)
{
   for(a=0;a<=200;a++)
      { output_b(0b00001011);
        delay_ms(50); 
        output_b(0b00000011);
        delay_ms(50);
      }
      output_b(0b00000000);
      delay_ms(2000); // 1 saniye bekleyecek
     
   for(b=0;b<=200;b++)
      { output_b(0b00001110);
        delay_ms(50); 
        output_b(0b00000110);
        delay_ms(50);
      }
}
}
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 08 Haziran 2012, 19:01:47
Bana kalırsa reset girişini yanlış kullanıyorsun. Reset girişini direk +5V ta bağla ENBL girişini gerekirse pic ile kontrol et.
Birinci kısımda verdiğin kodlar doğru orada mtoro bir tam tur atacak ama ikinci kısımda reset girşini LOW da tutmuşsun bu onun çalışmasını engeleyecek diye düşünüyorum.

Zira muhtemelen ikinci kısımda motoru ters yönde döndürmek istedin ama ne yazıkki yön girişini hiç değiştirmedin.
Birinci ile aynı bilgileri vereceksin ama yalnızca YÖN girşini ikinci kısımda HIGH yapman gerekiyor. Hepsi bu.
Birde döngü adedini biraz fazla tutki motor an azından bir kaç tur atsın. mesela 800 e kadar kur döngüyü.

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 13 Haziran 2012, 10:37:07
Bu devrede malesef ki halaa istediğim noktaya gelemedim.
clock sinyali veriyorum aşşağınaki link teki dosyada görebileceğiniz gibi 50ms veriyorum simülasyonda takıla takıla 90 dereceyi buluyor sonra geri dönüyor ama bi süre sonra tabiri caiz ise sapıtıyor saçmalamaya başlıyor.Clock için bekleme süresini 50ms nin altına çektiğimde hepten saçmalıyor.Bu devreyi ve yazılımı gerçek devre üzerinde uyguladığımda o rda da döneyimmi dönmeyeyim diye küçük adımlara arası tır tır saçmalıyor.Acaba step motor kablolarınımı yanlış bağladım diyerek çeşitli kombinasyonlarda deniyorum malesef sonuç hep hüsran:(
Yaşadığım sıkıntıyı daha iyi anlatabilmek açısında isis ve ccs c kodlarını paylaşıyorum.
şuana kadar ki ve bundan sonraki ilgi alakalarını çok teşşekkür eder yardımlarınızı rica ederim.

http://s2.dosya.tc/server15/3n504G/step_pic_l297d_l298.rar.html (http://s2.dosya.tc/server15/3n504G/step_pic_l297d_l298.rar.html)

saygılar...

iyi çalışmalar dilerim.
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 13 Haziran 2012, 16:07:28
Dosya.tc.server isimli site Truva atı barındırmaktadır. Bu siteyi kullanmayınız lütfen.

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 13 Haziran 2012, 16:20:19
ETE hocam önereceğiniz bir site varmı?
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 14 Haziran 2012, 09:19:09
Ben dropbox kullanıyorum. Sİze 2 GB ücretsiz alan veriyorlar. Tamamen size ait. İsteğiniz dosyayı yerleştirip link veriyorsunuz. Kullanımı kolay ve sorunsuz. Tavsiye ederim.

www.dropbox.com (http://www.dropbox.com)

ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 14 Haziran 2012, 10:30:29
Alıntı yapılan: ete - 14 Haziran 2012, 09:19:09
Ben dropbox kullanıyorum. Sİze 2 GB ücretsiz alan veriyorlar. Tamamen size ait. İsteğiniz dosyayı yerleştirip link veriyorsunuz. Kullanımı kolay ve sorunsuz. Tavsiye ederim.

www.dropbox.com (http://www.dropbox.com)

ete
Bahsi geçen dosyayı tavsiye edilen siteden paylaşıyorum.

https://www.dropbox.com/s/dz1y36zp6blc4hp/step_pic%2Bl297d%2Bl298.rar (https://www.dropbox.com/s/dz1y36zp6blc4hp/step_pic%2Bl297d%2Bl298.rar)
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 14 Haziran 2012, 12:23:37
Dosyalara baktım.
Bana kalırsa step motor bağlantılarınız yanlış. Bir diğer konuda elinizdeki motorun adım başına yürüme açısı nedir onu belirlemeniz.
Söylemiştim genelde 1,8 derece/adım şeklindedir motorlar ama farklı modelleride vardır.
Ben hesabımı 1,8 dereceye göre yapıyorum.
Adım başına 1,8 derece yürür ise 360 dereceyi tamamlaması için 360/1,8=200 adım (step) verilmesi gerekiyor. 360/90=4 olduğuna göre,
200/4=50 adım motoru  90 dercelik konuma getirecek demektir. O halde yapılacak iş motora 50 adım verilecek ve çalışma modu olarak tam adım modu seçilecektir.  L297 data sheet'ine bir kez daha baktım ve Tam adım çalışma için Half/Full bacağının LOW da olması gerektiğini gördüm.
Bu durumda çalışma modu TAM adım seçmek için Half/Full bacağını LOW a çekmek gerekiyor.
Sonra motora 0-49 veya 1-50 adım step vermek onu 90 derecelik konuma getirmek için yeterli olmaktadır. Yönü değiştirip aynı şekilde 50 step daha verirseniz motor başlangıç konumuna geri dönecektir.

C dilini kullanmadığım için basic de program yazıp denedim istenildiği gibi çalışmaktadır. İlişikteki dosyaları inceleyin lütfen.
Benim simulasyon dosyasını kullanır ve dediklerimi yaparsanız doğru çalıştığını göreceksiniz.

https://dl.dropbox.com/u/25364674/STEP_ETE.rar

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mr_knox - 26 Haziran 2012, 09:35:09
ETE hocam merhaba
Bahsi geçen devreyi gerçektede yaptım.
Simulasyonda fena çalışmazken gerçek uygulamada yine durum istenildiği gibi değil malesef :(
durum şöyle çalıştırum(sizin hex dosyanızla) adım adım gidiyor ama istenilenden baya yavaş sonra duruyor , biraz ekledikten sonra devir yönü değiştirmesi gerekirken aynı yöne yine yavaş yavaş devam ediyor.:( devir yönü değiştirme pini ni kontrol ettim bağlantı sorunsuz görünüyor.hatta acaba parazitten aynı yöne devammı ediyor diye pull-down direnci attım ama sorun çözülmedi .
çözüm için aklınıza gelen bi durum varmı acaba?
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: ete - 26 Haziran 2012, 09:39:36
Bu devreyi bir iki yıl önce bende yapıp çalıştırmış idim. Aynı devre üzerine bir çok program yazdım değişik amaçlar için hepside sorunsuz çalıştı.
Yazılım kısmı donanım iyi ve doğru bağlanmış ise olumlu sonuç verir. Olumsuz sonuç alıyorsanız bir yerlerde bağlantı hatası yapıyorsunuzdur. Yada yaptığınız sürücü yanlış yada bir yerinde hata vardır.
Bu konuda biraz araştırma yapıp daha fazla döküman üzerinden kontrol yapın.
Sonuçta devre isisde çalışıyorsa sizde de çalışması gerekir. Başka da söylenecek şey bulamıyorum maalesef.

Ete
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: cripple - 21 Temmuz 2012, 19:12:55
Alıntı yapılan: ete - 26 Haziran 2012, 09:39:36
Bu devreyi bir iki yıl önce bende yapıp çalıştırmış idim. Aynı devre üzerine bir çok program yazdım değişik amaçlar için hepside sorunsuz çalıştı.
Yazılım kısmı donanım iyi ve doğru bağlanmış ise olumlu sonuç verir. Olumsuz sonuç alıyorsanız bir yerlerde bağlantı hatası yapıyorsunuzdur. Yada yaptığınız sürücü yanlış yada bir yerinde hata vardır.
Bu konuda biraz araştırma yapıp daha fazla döküman üzerinden kontrol yapın.
Sonuçta devre isisde çalışıyorsa sizde de çalışması gerekir. Başka da söylenecek şey bulamıyorum maalesef.


bunun nedeni l 298 devresi de olabilir step motorun bacaklarının yanlış bağlanmasıda olabilir
step motor devresinde uln2003 entegresini kullanmanızı tavsiye ederim aynı sorun devam ederse motorun bacaklarını yanlış bağlamışsınız demektir.
Başlık: Ynt: pic ile step motor 90 derece ileri geri kontrol yardım?
Gönderen: mscikar - 29 Ağustos 2012, 09:33:59
Ustalara selamlar,

Cok güzel bir Proje. birzahmet bunun C codunu paylasabilirmisiniz.  :-[   Incelemek istiyordum. Simdiden emekleriniz icin tesekkür ederim.