Merhaba,
İsis de servo motor ile ufak bir uygulama yapmaya çalışıyorum. Çalışma mantığı ile ilgili. 2 tane buton var biri -90 diğeri +90 için.
PWM ile yapmadım. CCS C de varolan gecikme süreleri ile yaptım. Sıkıntım butonlardan -90 olanına bastığımda +90 sağa direkt dönüyor. Sonraki girişlerde çalışma prensibinin verdiği sonuçları düzgün bir şekilde görebiliyorum. Bunun nedeni ne olabilir? İlk girişte istenmeyen sonuç sonraki girişlerde düzgün sonuç. Yazdığım kodlar aşağıda.
#include <16f84.h>
#Fuses XT,Nowdt
#use delay(clock=4M)
unsigned int8 i,j;
void K1(){
for(i=0;i<1;i++){
output_high(pin_b0);
delay_us(1250);
output_low(pin_b0);
delay_us(1250);
}
}
Void K2(){
for(j=0;j<1;j++){
output_high(pin_b0);
delay_us(1750);
output_low(pin_b0);
delay_us(1750);
}
}
Void main(){
For(;;){
if(input(pin_a0)){while(input(pin_a0)); K1();}
if(input(pin_a1)){while(input(pin_a1)); K2();}
}
}
mesaj birleştirme:: 06 Mart 2014, 23:46:03
Sorun çözüldü. B0 pin'ini kararsız tuttuğumdan dolayıymış. Servo bilgi girişine 10K toprak yaptım sorun çözüldü.