16f877 ile iki yönlü ve pwmli dc motor sürme

alicem87

Üye
Katılım
21 Nis 2010
Mesajlar
24
Puanları
1
Yaş
36
Arkadaşlar öncelikle merhaba.

16f877 ile çift yönlü ve pwm li dc motor sürme devresi ile uğraşıoyorum.
Klasik bir söylem olacak belki ama proteus ta devreyi çizdim ve çalışıyor.Forum dan okuduğum kadarıyla devreyi bu şekliyle kurmam çalışması için yeterli olmayacak farkındayım.bu yüzden devreyi daha gerçeklemedim.

motoru sürmek için kullandığım entegre L298.bir yerde okudum 600mA max akım diyor ama benim motorum yüksüz halde 1.1A akım çekiyor.ilk sorum sizce bu bir problem yaratırmı?

ikinci sorum ise 16f877 nin çalışma frekansını 20mhz ayarladım,elektronikçilerde satılan 20 lik dedikleri kristallerden aldım sizce bu yeterli mi ve nasıl bağlayacam?

CSS C de yazdığım kod şu şekilde:


Kod:
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=20000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
int i=0; // Tamsayı tipinde değişken tanımlanıyor
int a=0;
#int_timer2
void timer2_( )
{

while(input(pin_a0))
{
     
   
        delay_ms(20);


               for(i=255;i>100;i--)
               {
               delay_ms(20);
               set_pwm1_duty(i);
               set_pwm2_duty(0);
               }


        set_pwm1_duty(0);
        delay_ms(500);

     
               if (i==100)

               for (i=255;i>100;i--)
               {

               delay_ms(20);
               set_pwm2_duty(i);
               set_pwm1_duty(0);

               }
             
       

output_a(0);
set_pwm2_duty(0);

}
}





void main ( )
{
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı...burda bir komut vardı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
enable_interrupts(INT_timer2);
enable_interrupts(GLOBAL);
setup_ccp1(CCP_PWM); // CCP1 birimi PWM çıkışı için ayarlandı
setup_timer_2(T2_DIV_BY_16,255,1); // Timer2 ayarları yapılıyor
setup_ccp2(CCP_PWM); // CCP1 birimi PWM çıkışı için ayarlandı
set_pwm1_duty(i); // PWM1 çıkışı görev saykılı belirleniyo
set_pwm2_duty(i);
while(1)
{ }
}

şimdiden teşekkürler.
 
bence l298 yerine bir köprü sürücü ile elindeki motoru değerlendirebilirsin.20mhzlik kristale gelince picin osc yazan 2 adet ucu var ona kristal 2 adet 22pF girerek sorununu çözebilirsin simulasyonda denedim bişr problem yok fakat motor sürme tekniğini değiştirmen gerekebilir ama ben olsam kurar l298 1 kez yakardım 50 kuruşluk entegre aksiyon olur:) kolay gelsin.
 
teşekkürler:)

şimdi denemeye gidiyorum hadi hayırlısı bakalım:)
ama kristalden 1 tane yeter demişti elektronikçi bi tane daha mı alayım.

22pf dediğimiz kristalin mi bi ölçü birimi?yoksa kapasitör mü?
 
22pf kondansator kristal değil .16f877 nin 13 ve 14. bacakları osilator bacakları
 
teşekkür ederim arkadaşlar.
bugun sadece sürücü devresini denedim sorunsuz çalıştı.

l298 12 voltluk bir motor için çokta ısınmayacağa benziyor.

yarın ise pic i de devreye ilave edicem.

yalnız 22pf kapasitor bağlanmış devreler de 4mhz kristal kullanılmış sizce 20 mhz için de bu aynımıdır?

Bide kristali 13 14 bacaklarına kapasitör ile bağladıktan ve beslemeleri(Vdd,Vss) verdikten sonra başka bağlamam gereken birşey olacak mı devreye?
 
yalnız 22pf kapasitor bağlanmış devreler de 4mhz kristal kullanılmış sizce 20 mhz için de bu aynımıdır?

önerilen değerler:

Konfigürasyonda hs_osc seçmeyi unutmayın.



Bide kristali 13 14 bacaklarına kapasitör ile bağladıktan ve beslemeleri(Vdd,Vss) verdikten sonra başka bağlamam gereken birşey olacak mı devreye?

Mclr bacağını 4k7 veya 10k dirençle vdd'ye bağlamak gerekiyor.
 
Konfigürasyonda hs_osc seçmeyi unutmayınız.


Öncelikle teşekkürler.

Konfigürasyonda hs_osc yi nasıl seçicem? CSS C de yazdığım programda yapmam gereken birşeymi bu yoksa?
 
fuse tanımlaması yaptığınız kısımda seçilecek, veya pic'i programlarken kullandığınız programlayıcıda da ayarlanabilir.
 
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD,HS_OSC

şeklinde mi olacak??
 

Yeni mesajlar

Forum istatistikleri

Konular
128,817
Mesajlar
920,716
Kullanıcılar
450,907
Son üye
saitdemircigil

Yeni konular

Geri
Üst