dc motor pot ile hız kontrolü yapan bir pic yazılımı la

Başlatan hollywoodlu, 20 Ocak 2008, 19:34:06

hollywoodlu

Arkadaşlar ben öğrenciyim ccs c pic derleyicisiyle pic 16f877a entegresini kullanarak bir dc motoru pottan referans alarak hız ayarı yapmam gerekior bunun için ne yapmalıyım bu picin içerisinde bulunan ccp1 modülündeki pwm i kullanıyorum ama başaramadım
olmadı sadece bana pota göre pals gelecek bir program lazım bunu yazabilir misiniz??

ipek

bana bunun nasıl olucağı hakkında yöntem önerebilirmisiniz???
gibi sorar isen mutlaka yardım alırsın.
net'teki arkadaşlar bu konuda hassas'tırlar..

necati

#include <16F876.h>
#device *=16 ADC=10
#use delay(clock=10000000)
#fuses HS,WDT,PUT,BROWNOUT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)


long ADCValue=0;
long ADCValueOld=1;

#byte portA = 0X05
#byte portB = 0X06
#byte portC = 0X07

void main()
{
   set_tris_A(0b00101011);
   set_tris_B(0b00000001);
   set_tris_C(0b00000000);

   portA=0X00;
   portB=0X00;
   portC=0X00;

   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_spi(FALSE);
   setup_counters(RTCC_INTERNAL,WDT_288MS);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   setup_timer_2(T2_DIV_BY_1,255,1);
   setup_ccp1(CCP_OFF);
   setup_ccp2(CCP_PWM);
   enable_interrupts(global);

   set_adc_channel(0);
   delay_us(10);

   while(1)
   {
       ADCValue = Read_ADC();
       delay_ms(100);        // monitor 10 times a second

       if ( ADCValue != ADCValueOld )
       {
         set_pwm2_duty(ADCValue);
         ADCValueOld = ADCValue;
       }
   }
}
[email]entegreterbiyecisi@yahoo.com[/email]

hollywoodlu

çok sağol arkadaşım eline sağlık
yardımcı olduğun için çok teşekkürler

firatim38

slm arkadaşlar. ben de pic 16f88 ve l298 kullanıyorum. pot'u pic'e takıp pot ile motor kontrolu yapmam gerekli. galiba bunun için de ADC i öğrenmem gerekli. yardımcı olabilcek olan var mı?

VFR

[IMG]http://img382.yukle.tc/images/2372Adsiz.png[/img]
Şekildeki devreyi kurabilirsiniz. Pot ile hız ayarlanıyor, logic state ile de yön.

Kodu da bu:
#include <16F877.h>

#DEVICE ADC=10

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NOCPD,NOLVP,NODEBUG

#use delay(clock=4000000)

#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

int16 hiz=0;

void main()
{
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_1(T1_DISABLED);
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_DIV_32);
   
   set_tris_a(0b00000011);
   set_tris_b(0b00000000);
   set_tris_c(0b00000000);


   output_b(0x00);
   output_c(0x00);
  
   
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);

   setup_timer_2(T2_DIV_BY_16,1023,1);


   
   while(1)
                             
   {
         set_adc_channel(0);
         delay_us(20);
         hiz=read_adc();
         
         if(input(pin_a1))
         {
            output_b(0b00000010);
            set_pwm1_duty(hiz);
         }
         else
         {
            output_b(0b00000001);
            set_pwm1_duty(hiz);
         }
     
  }
}

firatim38

meraba. ya ben de pic16f88 ve l298 kullanıyorum. pic'e pot bağlayıp pot ile hız kontrolu yapcam. bana yardımcı olabilir misin kod yazılımında?

VFR

Devredeki PIC yerine 16F88 koyarsın, programı da 16F88 için düzenlersin olur biter.
Bu kadar yardımdan sonra hala böyle dersen kimse yardım etmez sana.

firatim38