Amacım, joystick ile DC motoru ileri ve ters yönde çalıştırıp, motora bağlı olan cismin yukarısında ve aşağısında bulunan sensörlere yaklaşınca motorun durmasıdır. Joystick'i ileri ve ters yönde kontrol edebiliyorum ancak; joystick y ekseninde belirli bir açıyı geçince, joystick'i serbest bıraksam bile motor çalışıp cisim mesafe sensörüne yaklaşınca durması gerekiyor. Yani belirli bir açıya kadar joystick'i elle basılı tutarak , belirli bir açıyı geçip joystick'i bıraksam bile motorun çalışıp cisim mesafe sensörüne yaklaşınca durmasını istiyorum, yardımcı olursanız sevinirim. Şu ana kadar bu kadar yapabildim: Kod:Panoya kopyala int y_durum; int ust_mesafe; int alt_mesafe; void setup void loop { y_durum = analogRead(A0); ust_mesafe = analogRead(A1); alt_mesafe = analogRead(A2); if(y_durum<515 && 100<y_durum) { digitalWrite(7, LOW); digitalWrite(8, HIGH); if(ust_mesafe<=300) } else if(y_durum>525 && 900>y_durum) { digitalWrite(7, HIGH); digitalWrite(8, LOW); if(alt_mesafe<=300) } else }

Gowner'ın dediği gibi flowchart çizersen senin için daha kolay olacaktır. Kabaca program algoritman aşağıdaki gibi olacaktır. İlk if bloğundan sağa doğru ayrılan kolda sonuna kadar çizmedim. Ayrıca motor hareketi gibi sürerliliği olan işlerin kontrolünü if yerine while ile yaparsan daha sağlıklı olacaktır. Şöyle ki: while(HareketiBelirleyenDegisken <= 100) gibi.

Dostum 1 yıl önce arduino projeleri ile uğraşıyordum. Sana şunu diyebilirim. Yardımcı olur mu bilmiyorum. Önce programın algoritmasını bir kağıda yada bilgisayarında metin belgesinde yaz. Algoritma'da nerede yanlış yaptığını kontrol et. Yaptığım projeleri hatırlasam belki daha çok yardımcı olabilirdim.