D

16F628A Donanımsal ve yazılımsal PWM Motor kontrolü

Başlatan darken, 30 Temmuz 2014, 19:12:08

darken

Merhabalar
16F628A ile hem yazılımsal hemde donanımsal PWM aynı anda kullanılabilirmi ?
Pic ile yazılımsal PWM üretip servoyu sürebiliyorum fakat aynı anda birde dc motor sürmem gerekıyor . DC motoru sürmek icin L298N kullanıcam.
Birkaç buton yardımı ile Hız kademeleri ayarlanıcak(%25 %50 %75), mesela sadece %50 lik bir pwm olustursam yeter. Tek sorun 2 sini birden nasıl olusturacagım.
Eger 16F628A da 2 si birden olusmuyorsa 16F877A ile oluşturabilirmiyim ?

Mesela bu kodda b3 den nasıl %50 lik PWM alabılırım ?Suan motoru sadece %100 ve %0 olarak ayarlıyabılıyorum. Program gelen veriye göre kendını sureklı tekrar eden bir while dongusu ıcınde.
Suan elimdeki koddan bir parça ;


if(z=='I'){
      output_high(pin_b3);
       
        int orta;            // servo orta
        for(orta=0;orta<=20;orta++){
      output_high(pin_a2);
      delay_us(1500);
      output_low(pin_a2);
      delay_us(18500);
     
      output_low(pin_b3);
}
}

darken

Evet sanırım bi anlık beynim göçmüş :D direkt olarak donanımsal pwm kodlarını araya koyarak kolayca hallettim :D yeni kod bu sekilde ve işimi görüyor :

if(z=='I'){
      set_pwm1_duty(127);
       
        int orta;            //orta
        for(orta=0;orta<=20;orta++){
      output_high(pin_a2);
      delay_us(1500);
      output_low(pin_a2);
      delay_us(18500);
     
      set_pwm1_duty(0);

Powered by EzPortal