dc motor yön verme

isoment01

Üye
Katılım
26 Haz 2016
Mesajlar
197
Puanları
1
Yaş
32
herkese tekrar merhaba, daha önce pwm sinyalleri ile duty cycle ı kontrol ederek motor hız kontrolü yaptım. şimdi yon vermek istiyorum. kodlarım asagıdakı gıbı ccs de derlediğimde bir problem cıkmadı fakat calısmadı. koduma bır bakabılır mısınız fonksiyonlarımda hata var mı ?
yapmak ıstedıgım hız kontrolunu bu sefer motoru ılerı gerı hareket ettırdıgımde de yapmak hem ılerı gıderken hem de gerı gıderken hız kontrolu yapabılmek ıstıyorum
kodlarım ;

#device PIC18F4680

#include <18f4680.h>

#fuses xt,nowdt,noprotect, nobrownout, nolvp, noput, nowrt, nocpd

#use delay (clock=4000000)

#use fast_io(a)

#use fast_io(c)

int i =5;

#define buton_ileri pin_a2 //

#define buton_geri pin_a3

void hiz()

{


if(input(pin_a0))

{

delay_ms(20);

while(input(pin_a0));

i=i+3;

if(i>=150)

i=150;

set_pwm1_duty(i);

}

if(input(pin_a1))

{

delay_ms(20);

while(input(pin_a1));

i=i-3;

if(i<5)

i=5;

set_pwm1_duty(i);



}

}





void ileri ()

{

output_high(pin_c3);

delay_ms(20);

}

void geri()

{

output_low(pin_c3);

delay_ms(20);

}

void main()

{

setup_psp(PSP_DISABLED);

setup_timer_1(T1_DISABLED);

setup_adc_ports(NO_ANALOGS);

setup_adc(ADC_OFF);

setup_timer_2(T2_DIV_BY_16,150,1);//16,0 us overflow, 16,0 us interrupt

set_tris_a(0x0f);

set_tris_c(0x00);

setup_ccp1(CCP_PWM);

set_pwm1_duty(i);





while(TRUE)

{

if(input(buton_ileri))

{

delay_ms(20);

ileri();

hiz();

}

if(input(buton_geri))

{

delay_ms(20);

geri();

hiz();

}





}

}
 
hocam smdı breadboard da hız ayar devrem calısıyo , step step ılerledıgım ıcın bır de proteus a gırmedım. ılerı butonu calısmıyor su anda gerı butonuna bastıgımda tır tır tır edıyo cok yuksek frekansta calıstırdıgım ıcın once durdurmam gerek algorıtmasını olusturmaya calısıyorum ama yapamadım
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…