Çizgi izleyen devresi basılacak yardım...

Başlatan OnrrCan, 26 Temmuz 2012, 11:08:30

OnrrCan

çizgi izleyen robotum için bi devrem var ama bunu voltaj regülatörüyle nasıl pcb ye basılacak hale getiricem bilmiorum yardım edermisiniz. Bide robot PWM kontrollü olacak ben tam bilmiorum o yüzden devre yanlış olabilir onada bi yardımcı olabilirseniz sevinirim. CCS C de PWM yazılımını arıorum bu arada çok şey istedim biliorum ama en azından birine yardımcı olursanız cok sevinirim... ::)
Buyrun Devre:
https://rapidshare.com/files/3725182636/devre1.rar

yasinkir55

Neden PWM kullanmak istiyorsun ki ? Bence gerek yok Lojik kullan. Buton kontorlü ile yaza bilirsin. İF kullanarak yaz.

EN1 ve EN2 aktif halde tutman lazım motorları devreye sokman icin her zaman Lojik-1 olsun EN1 ve EN2 olanlar.

IN-1= 1 , IN2= 0 verilirse birinci motor sağ döner. IN-1= 0, IN-2=1 verildiği zamanda birinci motor tam tersine dönecektir.

diğer motoruda bu mantıkla yazacaksın örnek olarak aşağıda bir yön için gösteriyor.

output_b(0x00);    // if döngüsünden cıkınca motorları durdurur.
if(input(pin_d0))    // Sağ sensör aktif oldu  mu
{
  delay_ms(20);     // gecikme
  output_b 0xb00011111;  (veya output_b(0x1F);)  // 1. motoru çalıştırma ve sağ döndürme 
 }



Bu şekil daha kolay ama PWM ilede yapılır mı şüpeliyim. Entegre TTL ile çalışıyorsa birazcık sıkıntı olur. Datasheet bakman lazım.
Ü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 :)

serhat1990

PWM ile neden olmasın dönüşleri daha etkili yaparsın. PWM motor kontrolü için kullanılan yöntemlerden biridir. Neden pwm' de bu şüphe. Örneğin iki tane motor var. Sağa dönerken sağdaki motor yavaş , soldaki biraz daha hızlı döner bu sayede iyi bir dönüş yapmış olursun gibi. Senin söylediğin uçlar dışında enable ucuna pwm sinyali vererek motor hız kontrolü yapabilirsin. ( Entegre TTL ile çalışıyorsa birazcık sıkıntı olur. Datasheet bakman lazım. demişsin. )

yasinkir55

Motor sürücü entegrenin datasheet bakmadım. Eğer TTL harici PWM sinyallerine kararlı çalışıyorsa demiş oldun yapa bilme ihtimalin var ve daha güzel olur çokta zor değil PWM yapması sadece karşılar mı entegre onu bilmek lazım.
Ü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 :)

serhat1990

Hiç bir sıkıntı olmaz. Birçok uygulamada kullandım.

OnrrCan

çok tşekkürler ama ben zor bela PWM işini çözdüm dediğim gibi bi tek devre basımı kaldı yalnız o ilk verdığım devreyı değiştirdim yeni devre bu bunu ben ARES de çizemedim o yüzden pcb ye basamıorum ....
yenı devre;
https://rapidshare.com/files/947724030/Yen%C4%B1%20devre.rar

yasinkir55

Kullandım diyorsun o zaman programın bir kısmını yazda arkadaşa yardımcı olsana neden artistlik peşindesin.
Ü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 :)

serhat1990

Alıntı yapılan: yasinkir55 - 28 Temmuz 2012, 10:17:03
Kullandım diyorsun o zaman programın bir kısmını yazda arkadaşa yardımcı olsana neden artistlik peşindesin.

Yanlış anlıyorsun arkadaşım artistlik peşinde falan değilim. Sadece senin arkadaşı yanlış yönlendirmene diyorum. PWM gerek yok vs vs. Birşey söylerken araştırıp söylersen insanları yanlış yönlendirmessin.

Kodlar ve devre şeması aşağıdadır. Ufak bir program hazırladım bu mantıkla sensör bilgilerine göre motorları rahatlıkla sürebilirsin. L298 öneririm eğer motorların yüksek akım çekecekse .

http://www.upload.gen.tr/d.php/www/du2cjj92/Motor_Kontrol.rar.html

Umarım yardımcı olur.İyi çalışmalar dilerim.

/* Örnek PWM */
/* Serhat */
/* PicProje */

#include <16f877a.h>  //KULLANILAN PİC
#FUSES XT        // KRİSTAL OSİLATÖR KULLANILIYOR
#use delay (clock=4000000)    //4 mhz osilatör

#define IN1 PIN_C3
#define IN2 PIN_C4
#define IN3 PIN_C5
#define IN4 PIN_C6

unsigned char motorhiz=0;

void anime1(void)

{

   output_high(IN2);
   output_high(IN4);
   output_low(IN1);
   output_low(IN3);
   
   for(motorhiz=0;motorhiz<255;motorhiz++)
   {
      set_pwm1_duty(motorhiz);      //1.kanaldan motorhız degiskeni duty oranında pwm üret.
      set_pwm2_duty(255-motorhiz);  //2.kanaldan motorhız degiskeni duty oranının tam tersi oranında pwm üret...
      Delay_Ms(10);
   
   }


}

void anime2(void)
{

   output_high(IN1);
   output_high(IN3);
   output_low(IN2);
   output_low(IN4);
   
      for(motorhiz=0;motorhiz<255;motorhiz++)
   {
   
      set_pwm1_duty(motorhiz);      //1.kanaldan motorhız degiskeni duty oranında pwm üret.
      set_pwm2_duty(255-motorhiz);  //2.kanaldan motorhız degiskeni duty oranının tam tersi oranında pwm üret...
      Delay_Ms(10);
   
   }

      output_c(0x00);
      Delay_Ms(100);

}

void main()

{
   set_tris_c(0x00);
   setup_ccp1(CCP_PWM);         //CCP1 MODULU PWM çıkışı ayarlandı..
   setup_ccp2(CCP_PWM);         //CCP MODULU PWM çıkışı ayarlandı..
   setup_timer_2(T2_DIV_BY_16,255,1);  //TİMER2 ayarları yapılıyor...
   
   
   while(1)
   
   {
      anime1();
      output_c(0x00);
      Delay_Ms(100);
      anime2(); 
   
   }
   
}   


OnrrCan

serhat çok sağol kodalr için ama dediğim gibi ben o işi hallettim ya yokmu su yenı verdığğım devreyı ares de cızecek bırı :D

serhat1990

Devren pek karmaşık değilse ares'e at. Malzemeleri yerleştir. Auto Router ayarlarını yap. Orda çizdir. Yada bu işi öğren.