pıc 16f877a ile ccs dili ile step motor

uufuk944

Üye
Katılım
31 May 2010
Mesajlar
40
Puanları
1
Yaş
29
pıc 16f877a ile ccs dili ile step motoru en basit şekliyle nasıl döndürebilirim uln2003 kullanılıcak bilenler yardımcı olursa veya bir site önerirlerse sevinirim
 
step motoru 4 uçlu olarak kullandığını varsayarsak;
öncelikle pic'in 4 ucuna bildiğin yürüyen ışık devresini uygula yani önce rb0 ucunu 1 yap sonra onu 0 a çektiğin anda rb1 ucunu 1 yap daha sonra rb2 ve en sonunda rb3 ucu 1 olacak.bu uçlara sıra ile verirken hiç biri aynı anda 1 olmuyacak buna dikkat et ve rb3 ucundan sonra yie rb0 ucunu 1 yapıcaksın.yani buraya kadar bildiğin yürüyen ışık mantığını yapacaksın.daha sonra uln2003 entegresinin 4input ucuna picin bu 4 ucunu bağla.daha sonra uln2003 ün output uçlarından step motora giriş yap(uln2003ün datasheetine bakarak hangi uçlarının giriş çıkış olduğunu öğrenebilirsin).burada hangi uçları step motora bağlayacağın çok önemli.bunun için step motorun biraz yapısını araştır(multimetre ile uçlarını bulmak gerekebilir).Ben kaba bir varsayım ile renklerin sıra ile sarı mavi kırmızı beyaz olduğun varsayayım burada ilk iki renk olan sarı ile mavi bir bobine kırmız ile beyaz bir bobinin uçları olduğu düşünülürse;step motora sinyal yollama sıran şu şekilde olmalıdır;
sarı - kırmızı - mavi - beyaz - sarı - kırmızı - mavi - beyaz -sarı - kırmızı .....
umarım yardımcı olmuşumdur.
 
step motoru 4 uçlu olarak kullandığını varsayarsak;
öncelikle pic'in 4 ucuna bildiğin yürüyen ışık devresini uygula yani önce rb0 ucunu 1 yap sonra onu 0 a çektiğin anda rb1 ucunu 1 yap daha sonra rb2 ve en sonunda rb3 ucu 1 olacak.bu uçlara sıra ile verirken hiç biri aynı anda 1 olmuyacak buna dikkat et ve rb3 ucundan sonra yie rb0 ucunu 1 yapıcaksın.yani buraya kadar bildiğin yürüyen ışık mantığını yapacaksın.daha sonra uln2003 entegresinin 4input ucuna picin bu 4 ucunu bağla.daha sonra uln2003 ün output uçlarından step motora giriş yap(uln2003ün datasheetine bakarak hangi uçlarının giriş çıkış olduğunu öğrenebilirsin).burada hangi uçları step motora bağlayacağın çok önemli.bunun için step motorun biraz yapısını araştır(multimetre ile uçlarını bulmak gerekebilir).Ben kaba bir varsayım ile renklerin sıra ile sarı mavi kırmızı beyaz olduğun varsayayım burada ilk iki renk olan sarı ile mavi bir bobine kırmız ile beyaz bir bobinin uçları olduğu düşünülürse;step motora sinyal yollama sıran şu şekilde olmalıdır;
sarı - kırmızı - mavi - beyaz - sarı - kırmızı - mavi - beyaz -sarı - kırmızı .....
umarım yardımcı olmuşumdur.

çok yardımcı oldunuz sağolun
 
step motoru 4 uçlu olarak kullandığını varsayarsak;
öncelikle pic'in 4 ucuna bildiğin yürüyen ışık devresini uygula yani önce rb0 ucunu 1 yap sonra onu 0 a çektiğin anda rb1 ucunu 1 yap daha sonra rb2 ve en sonunda rb3 ucu 1 olacak.bu uçlara sıra ile verirken hiç biri aynı anda 1 olmuyacak buna dikkat et ve rb3 ucundan sonra yie rb0 ucunu 1 yapıcaksın.yani buraya kadar bildiğin yürüyen ışık mantığını yapacaksın.daha sonra uln2003 entegresinin 4input ucuna picin bu 4 ucunu bağla.daha sonra uln2003 ün output uçlarından step motora giriş yap(uln2003ün datasheetine bakarak hangi uçlarının giriş çıkış olduğunu öğrenebilirsin).burada hangi uçları step motora bağlayacağın çok önemli.bunun için step motorun biraz yapısını araştır(multimetre ile uçlarını bulmak gerekebilir).Ben kaba bir varsayım ile renklerin sıra ile sarı mavi kırmızı beyaz olduğun varsayayım burada ilk iki renk olan sarı ile mavi bir bobine kırmız ile beyaz bir bobinin uçları olduğu düşünülürse;step motora sinyal yollama sıran şu şekilde olmalıdır;
sarı - kırmızı - mavi - beyaz - sarı - kırmızı - mavi - beyaz -sarı - kırmızı .....
umarım yardımcı olmuşumdur.


matıken şu şekilde söylediniz herhalde
output_high(pin_b0);
delay_ms(10);
output_low(pin_b0);
output_high(pin_b1);
delay_ms(10);
output_low(pin_b1);
output_high(pin_b2);
.....
 
Kod:
#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 i=0;
while(1){
 
output_b(a[i]);
delay_ms(500);
i+=1;
 
if(i==8){
i=0;
}
 
}
 

Forum istatistikleri

Konular
128,416
Mesajlar
917,443
Kullanıcılar
450,325
Son üye
emirrumus
Geri
Üst