Takometre

TOLGAA86

Üye
Katılım
29 Ağu 2014
Mesajlar
34
Puanları
1
Yaş
37
Konum
çorlu
Arkadaşlar merhaba,
Devir göstergesi yapmaya çalışıyorum. ama ccs c ile programlama kısmında takıldım. Devre şemasını ve programı gönderiyorum şimdi size. Bipolar step motor ve lcd ile çalıştırmaya çalışıyorum.
Yapmak istediğim değerler şöyle.
1 devir 8 puls yapıyor.
500 devir'de motor 30 derece dönecek.
1000 devir'de 60 derece dönecek.
2000 devir'de 125 derece dönecek. gibi....
Bunu nasıl ayarlayabilirim. Yardım edin lütfen.
Şimdiden teşekkür ederim.
 
Tako.png

#include <deneme.h>

#fuses XT,NOWDT,NOPROTECT, NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
#use fast_io(e)

unsigned int32 i=0;
long a,s=0;
float y,j=0;

#define use_portb_lcd TRUE

#include <lcd.c>

const int yarim_adim[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09}; // Step motor yarım adım dönüş adımları

#int_timer1
void timer1_kesme()
{
s++;
if (s>3)
{
s=4;
lcd_gotoxy(6,1);
printf(lcd_putc,"XXXXXX");
}
}


#int_CCP1
void yakala_kesmesi()
{


i=get_timer1();
set_timer1(0);
i=i+65535*s;
s=0;
j=i*0.000008/4;
j=60/j;
lcd_gotoxy(6,1);

printf(lcd_putc,"%f",j);



}





void main()
{
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_INTERNAL |T1_DIV_BY_8);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);

enable_interrupts(INT_CCP1);
enable_interrupts(int_timer1);
enable_interrupts(GLOBAL);
lcd_init();


setup_ccp1(CCP_CAPTURE_DIV_4);

CCP_1_HIGH=0x00;
CCP_2_LOW=0x00;


setup_ccp2(CCP_PWM); // CCP2 birimi PWM çıkışı için ayarland

setup_timer_2(T2_DIV_BY_16,170,1); // Timer2 ayarları yapılıyor

set_tris_b(0x00);
set_tris_c(0x04);
set_tris_d(0);

output_d(0x00);
output_b(0x00);

printf(lcd_putc,"\fSPIN RPM");

while(1)
{
if(j<500)
{
for(long k=0;k<100;k++)
{
output_d(yarim_adim[a]);
delay_ms(10); // Adımlar arası bekleme süresi

if (a==7) // i değişkeni 7 olunca i değeri -1 olsun
a=-1;
a++;

}
while(j<100);
}


}






}
 
1 devir 8 puls yapıyor.
500 devir'de motor 30 derece dönecek.
1000 devir'de 60 derece dönecek.
2000 devir'de 125 derece dönecek. gibi....
Bunu nasıl ayarlayabilirim. Yardım edin lütfen.
Şimdiden teşekkür ederim.
ustam kolay gelsin yanlış anlamadıysam durum şu
step motorun tam turu 360 derece olduğuna göre tam turu da 8 pals ile yaptığını söylemişsin
bu durumda 360\8=45 bir pals de motor step i 45 derece olur
yani bu şartlar altında motora mümkünatı yok 30 derecelik açı yaptıramazsın
piyasada kolay temin edilebilen 1.8 derece stepli (360\200) motor kullan
isisde step motorun uzerine çift tıkla açılan pencerede 8 yazan yere 200 yaz olsun bitsin


Vesselam
 
İpucu; pwm, servo motor
 

Yeni mesajlar

Forum istatistikleri

Konular
128,172
Mesajlar
915,633
Kullanıcılar
449,936
Son üye
AsilOzgenc

Yeni konular

Geri
Üst