iki aynı durumda farklı işlem gerçekeştirme.

Başlatan bbs2006, 23 Mart 2016, 22:40:07

bbs2006

çizgi izleyen robotta sensörler  tüm siyah okurken ve iki adet sag ve sol sensör  engel göme işlemi  gerçekleştirdi. bu iki defa gerçekleşecek ancak 1. görmede farklı bir işlem  2. görmede farklı bir işlem gerçekleştirmek istiyorum. 1 görmede bir değişken atadım ancak  işlem bittiiktan sonra bunu değiştirip ikinci görmede bu değişkene göre  işlem yaptırmak istiyorum. bunun için ne önerirsiniz.

vitruvius

Ne sorduğunuzu anlayamadım. Kullandığınız değişken için switch-case oluşturun.

mehmet

Bir değişken birinci durumda bir
artırılır. Bu değer ile gerçekleşen olay
ikinci durumun oluşmasını sağlar.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

bbs2006

#3
Birinci İfade
if((input(mesafe_sag)==0)&&(input(mesafe_sol)==0)&&(oku_sen==0b11111111)){
                     ilk=0;
                    // output_high(pin_a0);
                     motor_surme();
                     set_pwm1_duty(50);
                     set_pwm2_duty(20);
                     delay_ms(5);
                     
                     }


ikinci ifade
if((input(mesafe_sag)==0)&&(input(mesafe_sol)==0)&&(oku_sen==0b11111111))
                   { ilkson=1;
   if(ilk!=ilkson){
                     motor_surme();
                     set_pwm1_duty(70);
                     set_pwm2_duty(70);}} 
                     ilk=0;ilkson=0;


bu şekilde bir ifade kullandım. mantık doğrumu

mesaj birleştirme:: 23 Mart 2016, 22:57:00

Sayın vitruvius  hocam.
iki aynı şart  var. birinci şartda bir işlem aynı şart ikinci defa gerçekleştiğinde farklı bir işlem gerçekleştirmek istiyorum.

vitruvius

ilkson değişkenine gerek yok. Şöyle bir şey yapabilirsiniz:

int1 ilk = 0;

if((input(mesafe_sag)==0)&&(input(mesafe_sol)==0)&&(oku_sen==0b11111111) && (ilk == 0))
{
   // output_high(pin_a0);
   motor_surme();
   set_pwm1_duty(50);
   set_pwm2_duty(20);
   delay_ms(5);
   ilk = 1;
}

if((input(mesafe_sag)==0)&&(input(mesafe_sol)==0)&&(oku_sen==0b11111111) && (ilk == 1))
{
   // output_high(pin_a0);
   motor_surme();
   set_pwm1_duty(70);
   set_pwm2_duty(70);
   delay_ms(5);
   ilk = 0;
}

bbs2006

#5
çok teşekkür ederim.  programa bu şekilde ekleyeceğim.

mesaj birleştirme:: 23 Mart 2016, 23:26:34

sola virajda  kesikli beyaz çizgi takibi için ne yapılabilir. ben aynı şekilde düz beyaz çizgi mantığı kullanıyorum ama sıkıntı oluyor.

vitruvius




vitruvius

Çizgi izleyen robot üzerine bir tecrübem yok ama en son konumunu korumaya çalışırsan pek sorun olmaz diye düşünüyorum. Yani kesikli çizgiye gelmeden önce düz gidiyorsa düz gitmeye devam etsin. Sonunda kenardaki sensörlerinden biri çizgiyi algılayacaktır ve uygun dönüşü yapacaktır.

bbs2006

son konuma işlemi ile bilgi verebilirmisiniz

bbs2006

merhaba
çizgi izleyen robotta önceki konumu koruma işlemi gerçekleştirmek istersek nasıl bir yazılım yapmalıyım.