robotun ahreket etmemesi

Başlatan bbs2006, 27 Mart 2016, 23:12:27

bbs2006

merhaba
çizgi izleyen robotta  başlatma butonuna bastığım zaman  devre çalışmıyor. ve sensörleri kaldırıp ve çizgi üzerine koyduğum zaman çalışmaya başlıyor. bastığım zaman direk çalışması için ne yapabilirim.

okg

Merhaba,
Buton fonksiyonunuzu paylaşırsanız daha rahat yardımcı olabiliriz.
KTU Elektronik Haberleşme - YTÜ Haberşelme YL - GTU Haberleşme YL

vitruvius

Pist üzerindeyken mi butona basıyorsunuz? Belki de çizgiyi algılayamadığı için çalışmıyordur? Kodu görmeden de bir şey diyemeyiz.

bbs2006

pist üzerinde iken basıyorum.

void main(){               // Ana fonksiyon.
setup_ccp1(ccp_pwm);       //sag motor için kullanılacak
setup_ccp2(ccp_pwm);       //sol motor için kullanılacak
setup_timer_2(T2_DIV_BY_4,124,4);         //Timer2 ayarları yapılıyor.
                                          //zaman=0.0001  Fr=10 Khz.  
                                                                                    
output_high(stdby);        //motor sürücü entegresi stanby  HIGH olmalı.                                     
while(True){
if(input(baslatma))
{
     
      delay_ms(20);
      while((input(baslatma)));
      flag_Baslat = 1;
}
   if(flag_Baslat==1)
   {
oku_sen=input_d();// d portundan sensör degerleri okunup oku_sen ata.
zemin_oku=input_e();
//zemin_oku=0b00000101&zemin_oku;

switch(zemin_oku){


case 5:                                 //cny70 sen zemin 1(siyah) okudu.
      {
       siyah_zemin(oku_sen);break;}

case 0: {                                //cny70 sen zemin 0(beyaz) okudu.
        beyaz_zemin(oku_sen);break;}
}

}              
}
}

ayrıca size bir sorum olaacaktı. size özelden atabilirmiyim.

vitruvius

Kodu hiç debug yapıp baktın mı? Debug yapmayı bilmiyorsan, önce çizgi algılamayı bir kenara bırak ve bir butona basıp motorların çalışmasını sağla. Böylece sorun butonda mı algoritmanda mı anlarsın. Çok basit şekilde "bayrak" mantığını kullanarak butona basıldığında motorun çalışıyor mu bir bak. Bu arada bayrağı kodda bir ara sıfırlamalısın. Yoksa robot hep çalışacaktır.

zemin_oku değişkenin sadece 0 yada 5 değeri alacağından emin misin? Eminsen ne kadar eminsin? Switch-case'de "default"u kullnmamışsın. Belki de sorun switch-case yapında. Debug yapıp bakmak lazım iyice.

Sorun forumda sorulması gereken bir şey değil de özel bir şeyse mesaj atabilirsin.

bbs2006

ccs c de debug işlemi nasıl yapılıyor. ben  bulamadım.

vitruvius