Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

16f628a motor kontrol

Başlatan chezque, 16 Mayıs 2012, 22:01:38

chezque

arkadaşlar şimdi benim yaptığım devre şu şekilde, sadece max232 ile pic arasında bağlantı yok, TXC1 ve RXA1 verici-alıcıları var. onun dışında aynen bu şekilde. c#tan da Send_Bilgi diye veriler yolluyor. ancak yazdığım program bu devrede çalışmadı. bunun sebebi nedir acaba?

devre


ccs c kodları
#include <16F628a.h>

#FUSES NOWDT            //No Watch Dog Timer
#FUSES INTRC_IO          //Internal RC Osc, no CLKOUT
#FUSES NOPUT            //No Power Up Timer
#FUSES PROTECT           //Code protected from reads
#FUSES NOBROWNOUT         //No brownout reset
#FUSES NOMCLR           //Master Clear pin used for I/O
#FUSES NOLVP            //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD            //No EE protection

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)

int Send_Bilgi;
void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
     
   while(1)
   {
      Send_Bilgi=getc();
      if(Send_Bilgi="1");
      {
         output_high(pin_b3);
         output_low(pin_b4);
         output_high(pin_b5);
         output_low(pin_b6);
         delay_ms(500);
      }
      if(Send_Bilgi="2");
      {
         output_low(pin_b3);
         output_high(pin_b4);
         output_low(pin_b5);
         output_high(pin_b6);
         delay_ms(500);
      }
      if(Send_Bilgi="3");
      {
         output_high(pin_b3);
         output_low(pin_b4);
         output_low(pin_b5);
         output_low(pin_b6);
         delay_ms(500);
      }
      if(Send_Bilgi="4");
      {
         output_low(pin_b3);
         output_low(pin_b4);
         output_high(pin_b5);
         output_low(pin_b6);
         delay_ms(500);
      }
      if(Send_Bilgi="5");
      {
         output_low(pin_b3);
         output_low(pin_b4);
         output_low(pin_b5);
         output_low(pin_b6);
         delay_ms(500);
      }
   }

}

skara1214

if komutunun içinde = değil == kullanmalısın
Herkes ölür ama herkes gerçekten yaşamaz

chezque

onu da yaptım olmadı. bide compim üzerine tıkladığımda benim açık olan portum görünmüyor. hatta devrenin çalışır hali şöyle isiste;



mesela compinin bağlantı kurduğu bacak devre dışı görünüyor şu an. max232den pice gelen bacakta da aynı sorun var. bunların sebebi nedir?

kudretuzuner

Merhaba
Arkadaşım verdiğiniz şemada TX ve RX ler sağlıklı kullanılmıyor.Max232 bağlantılarını RX ve TX ile ilişkilendirmeniz gerekir.
Amatör

chezque

hocam dediğini tam anlayamadım. nasıl bağlamam gerekiyor ki?

kudretuzuner

Merhaba
Konu şu anda anlatılacak kadar kısa değil,şöyle yazayım seri iletişim yaptığınıza göre PIC'in RX ve TX pinlerini aktif etiğiniz an artık bu pinleri sadece seri iletişim için kullanabilirsiniz.RX'i alıcı TX'i de motor sürücüde kullanamazsınız.
Amatör

AKadirY

programda portb'nin 3,4,5,6. pinlerini kullanmışsın. devrede ise 2,3,4,5. pinleri kullanmışsın...
Bi çaresi bulunur elbet...

chezque

Alıntı yapılan: AKadirY - 17 Mayıs 2012, 17:25:10
programda portb'nin 3,4,5,6. pinlerini kullanmışsın. devrede ise 2,3,4,5. pinleri kullanmışsın...

onu düzelttim hocam ama yine tık yok. ya program sanırım çalışıyor ama isiste bi sıkıntı var. mesela;
if(msg=='1')
{
durum
}


yazdığımda okumuyor. ama

[jstex]if(msg=='1');
{
durum
}[/jstex]
yazdığımda ben birşeye basmadan sırayla bütün programı tarıyor. anlamadım niye böyle yaptığını.

taso

isite max 232 ye ihtiyacın yok :) cıkartabilirsin

chezque

çıkardım aradan ama yine garip şekilde hareket ediyor. mesela pic programı içinde pin5 ve pin6 aynı anda hiç bir zaman high durumda değil ama isiste high yapıyor onu. bide basmama rağmen işlemiyor bazen de

taso

kodundaki delaylere karsılık gelirse verdiğin komut pic almayabilir. yada yanlış alabilir bilgiyi

chezque

Alıntı yapılan: taso - 17 Mayıs 2012, 19:24:32
kodundaki delaylere karsılık gelirse verdiğin komut pic almayabilir. yada yanlış alabilir bilgiyi

senin yolladığın şekilde yaptım. orada delay yok ki ama.

yasinkir55

RX uçuna bağlayacaksın gelen verileri maskeleme tarzında öteleme yapacaksın. yoksa çalıştıramazsın. A bilgisi geldi zaman a>>a; gibi olması lazım. aynı portu kullanıyorsun. RX pini harici kullanırsan yazım oluşturman gerekecektir. RX otomatik aktif ettin zaman donanım olarak yazılımsız devreye geçiyor. farklı bir uç kullanırsan donanımı kullanamıyacağından yazılım yazman gerekir. onun için RX kullan. Öteleme yap veya motorları PortA bağla
Üniversite'de Benden Yardımını Esirgemeyen Sn. Serdar ÇİÇEK Hocama Çok Teşekkür Ederim. Bu Seviyeye Gelmemde Yardımları Kişisel Olarak Gelişmemde Hocama Tekrardan Çok Teşekkürlerimi Sunarım :)