14 Mart 2012 Çarşamba

16F877 ile ADC ve Pot Kullanarak R/C Servo Kontrolü

Bread Board görüntüsü (1 servo)
Şimdilik sadece şemasını ve kodlarını koyabildim, en uygun zamanda açıklamasını ekleyeceğim.

Bread Board görüntüsü (paralel 3 servo)
ISIS Simülasyon şeması
ISIS Osilaskop görüntüsü
#include <16f877.h>
#device ADC=10
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=10000000)

long int giris, bekle, cikis;

void main ()
{
   setup_psp(PSP_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_CCP1(CCP_OFF);
   setup_CCP2(CCP_OFF);
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   set_adc_channel(0);
   delay_us(20);
   while(1)
   {
      giris=read_adc();
      cikis=((giris*1.76)+600);
      bekle=(20000-cikis);
      output_high(pin_b1);
      delay_us(cikis);
      output_low(pin_b1);
      delay_us(bekle);   
   }
}
......

4 yorum:

  1. merhaba bu projede motor sayısını ve potansiyometre sayısını nasıl arttırabilirim kodlar üzerinde bir örnek verebilir misiniz paylaşımlar için teşekkürler.

    YanıtlaSil
  2. servo_pwm.hex.c file cannot be opened hatası alıyorum acaba sebebini biliyormusunuz

    YanıtlaSil
  3. merhaba acaba bana while içindeki şu kısmı açıklarmısınız nasıl hesaplanır
    ""cikis=((giris*1.76)+600);
    bekle=(20000-cikis);""

    YanıtlaSil
  4. Hangi program ile yazdınız mplapx mi yoksa başka program ile mi

    YanıtlaSil