PIC 16F877a ile fırçasız motor kontrol

Başlatan Volkan Tuğgüm, 09 Mart 2016, 04:41:30

Volkan Tuğgüm

Arkadaşla öncelikle merhaba,
Haftalardır elimdeki Brushless(Fırçasız) motoru pic16f877a ve ESC ile çalıştırmaya çalışıyorum ama başaramıyorum.CCS C ile yazdığım programı.Ayrıca aynı pic ile pwm dalgası göndererek bir ledin parlaklığını ayarlayabiliyorum ancak Motoru çalıştıramıyorum.Elimde 4 adet motor ve esc bulunmakta olup farklı motorla denesem dahi aynı durum söz konusu, dolayısıyla motor ve esc'ler bozuk değil.
Programdaki amacım 2 pin'den input alarak farklı sinyaller ile motoru kontrol etmek.
kullandığım motor 11.1V CF2822
//////////////////////////////////////////////////////////////////////////////////
#include <16F877a.h>
#fuses HS,NOWDT,NOPROTECT,BROWNOUT,PUT,NOLVP
#use delay(clock=4000000)

int1 x,y;

void main()
{

while(1)
{
x=input(pin_a0);
y=input(pin_a1);

if(x==1 & y==1)
{
output_high(pin_c1);
delay_us(900);
output_low(pin_c1);
delay_ms(20);
}
else if (x==0 & y==1)
{
output_high(pin_c1);
delay_us(1250);
output_low(pin_c1);
delay_ms(20);
}

else if (x==1 & y==0)
{
output_high(pin_c1);
delay_us(1350);
output_low(pin_c1);
delay_ms(20);
}

else
{
output_high(pin_c1);
delay_us(1900);
output_low(pin_c1);
delay_ms(20);
}
}
///////////////////////////////////////////////////////////////////////////

SAYGILARIMLA

TechnoGuy

20ms delay kısmını değiştirin. 20ms toplam periyod uzunluğu. High da tuttuğunuz kadar çıkarın 20ms den.
Bu arada illa 20ms vermek zorunda değilsini diye de biliyorum. 10ms hatta 5ms verseniz bile olabiliyordu. böylece esc ye daha sık komut gönderebiliyorsunuz.
İkinci yazdığım biraz modifiye kullanıma giriyor tabi.