seri port ile motor kontrolü

Başlatan elb03, 26 Nisan 2011, 17:59:16

elb03

Arkadaşlar uzun süredir uğraşıyorum en sonunda devreyi tasarladım 2 gün öncede denemeye başladım bilgisayar ile bağlantıyıda yapıyorum ekrana yazılar geliyor ileri gidiyor geri gidiyor diye ama motorlarda bi hareketlilik olmuyor daha önce l 298 de kullanmadım sanırım ondan kaynaklanıyor uğraştım uğrastım olmadı sorun neden kaynaklanabilir yardımcı olabilecek var mı ?

http://img545.imageshack.us/img545/4480/adszyf.png

devrede aslında 2 motor var ama öyle cizince ne olduğu anlasılmıyor diye tek motorlu resmi ekledim.

#include <16f877.h>   

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

#use delay (clock=4000000)

#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1)

char islem=0;
unsigned long int bilgi;
float voltaj,sicaklik;
int i;

void main ()
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
   set_tris_b(0x00);   
   output_b(0x00);
   set_tris_a(0x01);

/****************MENÜ**********************************/

   printf("\n\r*********************************************************");
   printf("\n\r           Motor Surme Programi                  ");
   printf("\n\r*********************************************************");
   printf("\n\r--------------------------------------------------------");
   printf("\n\r\tMotorun   ileri   gitmesi icin   W   ya basin");
   printf("\n\r\tMotorun   geri    gitmesi icin   S   ye basin");
   printf("\n\r\tMotorun sag ileri gitmesi icin   D   ye basin");
   printf("\n\r\tMotorun sol ileri gitmesi icin   A   ya basin");
   printf("\n\r\tMotorun sag geri  gitmesi icin   C   ye basin");
   printf("\n\r\tMotorun sol geri  gitmesi icin   Z   ye basin");
   printf("\n\r\tMotorun durdumasi icin           R   ye basin");
   printf("\n\r\tSicaklik olcumu yapmak icin      O   ya basin");
   printf("\n\r--------------------------------------------------------");

   while(1)
   {
      islem="null";   
      islem=getchar();
      printf("\n\r");
      while(islem=='w'||islem=='W'){
      printf("\n\rMotor ileri gidiyor...");
      break;
      }
      while (islem=='w'||islem=='W')     
      {     
      output_b(0x01);
      if(kbhit()) break;
      }
     
     
      while (islem=='s'||islem=='S')   
      {
      printf("\n\rMotor geri gidiyor...");
      break;
      }
      while (islem=='s'||islem=='S')   
      {     
      output_b(0x02);
      if(kbhit()) break;
      }
     
     
      while (islem=='E'||islem=='e')   
      {
      printf("\n\rMotor sag capraza gidiyor...");
      break;
      }
      while (islem=='E'||islem=='e')   
      {
      output_b(0x05);
      if(kbhit()) break;
      }


      while (islem=='q'||islem=='Q')   
      {
      printf("\n\rMotor sol capraza gidiyor...");
      break;
      }
      while (islem=='q'||islem=='Q')   
      {     
      output_b(0x09);
      if(kbhit()) break;
      }
           
   
      while (islem=='a'||islem=='A')   
      {
      printf("\n\rMotor sol geri gidiyor...");
      break;
      }
      while (islem=='a'||islem=='A')   
      {     
      output_b(0x0A);
      if(kbhit()) break;
      }
     
     
      while (islem=='d'||islem=='D')   
      {
      printf("\n\rMotor sag geri gidiyor...");
      break;
      }
      while (islem=='d'||islem=='D')   
      {
      output_b(0x06);
      if(kbhit()) break;
      }
     
     
      while (islem=='r'||islem=='R')   
      {
      printf("\n\rMotor durdu");
      break;
      }
      while (islem=='r'||islem=='R')   
      {
      output_b(0x00);
      if(kbhit()) break;
      }     
   }
}
     

kudretuzuner

Merhaba
Geçenlerde şöyle bir çalışmamı paylaşmıştım.İşinizi görür mü?.Ekrandan gireceğiniz bilgi ile PIC'in PORTA larından yollanan dataya uygun olarak çıkış veriyor.Siz de bu çıkışlar ile istediğiniz gibi işleyebilirsiniz.Kolay gelsin.Not:çalışmamın baudrate hızını belki RF kontrollu olarak yapılır diye 1200 olarak ayarladım
https://rapidshare.com/files/459310476/BCD_TEST_prog_tadl.rar
Amatör

elb03

kudret bey öncelikle merhaba

devreniz seri port için güzel örnekmiş fakat benim devrede isite çalısıp pratikte sorun yarattığı için çok işime yaramadı yinede teşekkür ederim sorunumla ilgilendiğiniz için  :)