Step Motor Hız Arttırma

Başlatan samet_ehm, 26 Nisan 2015, 12:29:13

samet_ehm

Arkadaşlar İyi Çalışmalar. Aşağıdaki verdiğim linkte bulunan step motorla çalışabilir miyim diye araştırma yapıyorum. Motor sürücüsüne 5V besleme veriyorum. Kodda da görüldüğü üzere gecikmeyi 1 ms yapıyorum. Hızı yetmiyor. Daha da düşük gecikmeye izin vermiyor. Benim isteğim hızını arttırabilmek. Deneme amaçlı yarım adım döndürdüm. 90 derece sağa dönüp tekrar aynı yerine gelmesi gerekiyor.( yani aç-kapa gibi) Besleme gerilimini mi artırmam gerekiyor, motoru mu değiştirmem gerekiyor yoksa başka bir çözümü var mı ? Teşekkürler.
http://www.robotistan.com/28-BYJ-48-Reduktorlu-Step-Motor-ve-ULN2003A-Step-Motor-Surucu-Karti,PR-1493.html
#include <stepmotor.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

int i=0,hiz=1;

const int yarim_adim[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09}; // Step motor yarım adım dönüş adımları

/********* ANA PROGRAM FONKSİYONU********/

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   output_b(0x00);

   while(1) // Sonsuz döngü
   {
         output_b(yarim_adim[i]);  // Step motor 1 adım ileri
         
         delay_ms(hiz);            // Adımlar arası bekleme süresi

         if (i==7)                 // i değişkeni 7 olunca i değeri -1 olsun
            i=-1;
         i++;                      // i değişkenini 1 arttır

      }

}