zfer
Üye
- Katılım
- 23 Kas 2008
- Mesajlar
- 63
- Puanları
- 1
- Yaş
- 40
Merhaba arkadaşlar,
Bir motoru h köprü devresi ile hız kontrolü yapmak istiyorum. kodeunu yazdım. devreyi oluşturdum. ama bir türlü çalıştıramıyorum. bir yerde hatam var ama nerede bilmiyorum.
kod pic c de yazdım.
portb.0 a basıldığında ileri
portb.1 a basıldığında geri dönecek
ikisinin de hızı tek bir pot yardımı ile ayarlanabilecek.
Bir motoru h köprü devresi ile hız kontrolü yapmak istiyorum. kodeunu yazdım. devreyi oluşturdum. ama bir türlü çalıştıramıyorum. bir yerde hatam var ama nerede bilmiyorum.
kod pic c de yazdım.
portb.0 a basıldığında ileri
portb.1 a basıldığında geri dönecek
ikisinin de hızı tek bir pot yardımı ile ayarlanabilecek.
Kod:
#include <16f876a.h>#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)
#use fast_io(a) //Port yönlendirme komutları B portu için geçerli
#use fast_io(c)
#use fast_io(c)
#define out PIN_C2
unsigned int32 an2;
void main()
{
setup_timer_2(T2_DIV_BY_16, 124, 1); // 500 Hz
setup_CCP1(CCP_PWM);
setup_CCP2(CCP_PWM);
setup_adc(adc_clock_div_32); // ADC clock frekansı fosc/32
setup_adc_ports(ALL_ANALOG); // Tüm AN girişleri analog
while (true)
{
if (input (pin_b0)==1)
{
set_adc_channel(0);
delay_us(20);
an2=read_adc();
set_pwm1_duty(an2);
set_pwm2_duty(0);
}
else if (input (pin_b1)==1)
{
set_adc_channel(0);
delay_us(20);
an2=read_adc();
set_pwm1_duty(0);
set_pwm2_duty(an2);
}
else
{
set_pwm1_duty(0);
set_pwm2_duty(0);
}
}
}