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();
}
}
}
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();
}
}
}