çizgi izleyen robot pic c ile

Başlatan aliaksoy1978, 23 Ocak 2007, 21:29:30

aliaksoy1978

arkadaşlar ben bir çizgi izleyen robot yapıyorum fakatpic c ile yazdığım programda bazı sorunlarla karşılaşıyorum
örneğin orta sensör çizgiden çıktığı zaman robot durmadan ilerlesin diyorum fakat sağ ve sol sensörlerden biri çizgiyi gördüğündede robot un iki motoruda dönmeye devam ediyor . bu sorunu yazılımda nasıl aşabilirim.


programdaki default kısmı çizgiden ayrıldığı zamanki kısımlar.iki motorda dönsün diyorum ama tekrar sağdan yada soldan çizgiyi gördüğündede hala iki motor da dönüyor


#include<16f628.H>             // pic özellikleri tanymlanyr
#use Delay(Clock=4000000)     //osilatör frekansy 4MHz
#byte port_a=5                //port_a nin bank0 daki adresi 05h
#byte port_b=6                //port_b nin bank0 daki adresi 06h
io_set()
{
 set_tris_a(0xff);
 set_tris_b(0x00);
}
main()
{int i,j;
 io_set();
 port_b=0x00;
   while(1){
      i= input_a();
      j= (0x0E &  i);
           switch(j){
             
             case 6  : output_bit(pin_B1,2);break;
             
             case 12 : output_bit(pin_B2,1);break;
             case 10 : output_bit(pin_B1,1);
                       output_bit(pin_B2,1);break;
             default : output_bit(pin_B1,1);
                       output_bit(pin_B2,1);break;
                    }
          }
}


ben bu şekilde yazdım başka yazım şekli olupda gönderen olursa sevinirim. şimdiden teşekkürler..

burak1987

swich'teki case kısmında case 10: ve default kısmındaki deyim'ler aynı ondan olabilir.

Alıntı Yap
switch(j){

case 6 : output_bit(pin_B1,2);break;

case 12 : output_bit(pin_B2,1);break;
case 10 : output_bit(pin_B1,1); output_bit(pin_B2,1);break;
default : output_bit(pin_B1,1); output_bit(pin_B2,1);break;
}

ayrıca default kısmından sonra break kullanmana gerek yok.

fatihsatir

Arkadaşıma aynen katılıyorum. Bu sebepten kaynaklanıyor olabilir.
Dünya güzelliklerine dalıp ahiret hayatını unutma..!

efcer88

ya arkadadasım antrak.orgda hazır c var

Cetinal

Alıntı yapılan: "efcer88"ya arkadadasım antrak.orgda hazır c var
bu arada önemli olan şey hazır olanı bulup yapmak deil olayın mantığını anlamak

ilker_32

İnternette araştır (google'yi dene) benim karşıma bir aralar böyle birşeyler gelmişti anlatımlı falan ama C ile mi yazılmıştı bilemiyorum.(asm olabilirdi) Çünkü çizgi izleyen robotlarla uğraşan sayısı çok hatta bir aralar ankarada yarışmalar düzenlenmişti. :idea:
____________
Kolay gelsin...

skaty31

arkadaşlar ben de bir çizgi izleyen yapıyorum ama benimkinde iki tane farklı yöne bakan infrared alıcı olacak bunların pic ile senkronizasyonunda takıldım anolog bilgiyi dijitale çevirme işi kafamı karıştırıyo.yardımcı olursanız sevinirim.

Cetinal

bizim sitede de  var şu an 11 adet robot projesi diye
onun içinde Atmega 8  ile yapılmış çizgi izleyen robot var o daha hızlı ve daha kıvrak diğerlerinden istersen onu dabi incele

Ziya

case 6 : output_bit(pin_B1,2);

bu komut ne iş yapar?
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

fatihsatir

Alıntı yapılan: "skaty31"arkadaşlar ben de bir çizgi izleyen yapıyorum ama benimkinde iki tane farklı yöne bakan infrared alıcı olacak bunların pic ile senkronizasyonunda takıldım anolog bilgiyi dijitale çevirme işi kafamı karıştırıyo.yardımcı olursanız sevinirim.

infrared alıcı olarak hangi modeli kullanıyorsun. Ben robotlarımda PNA4602 VE Vishay'in TSOPxxxx serisinden kullandım ve hiçbir sorun yaşamadım. Tam olarak yaşadığın sorun nedir ve modeli nedir.!
Dünya güzelliklerine dalıp ahiret hayatını unutma..!