การออกจากคำสั่ง while ใน Arduino

ขอคำแนะนำหน่อยครับพอดีกำลังทำรถวิ่งตามเส้น มีเงื่อนไขอยู่ว่าให้มันจอดตามจุดที่กำหนด เช่น มีจุดอยู่4 จุด จุดที่1คือจุดเริ่มต้น(และเมือทำงานเสร็จให้กลับมาจุดเดิม) โดยจะแบ่งเป็น3โปรแกรม โปรแกรมที่ 1 ให้รถไปจอดที่จุดที่ 1 2 3 และมีการหน่วงเวลาในจอดแต่ละจุด และกลับมาจุดเริ่มต้นรอรับคำสั่งต่อไป ส่วนโปรแกรมที่ 2 และ 3 ก็เช่นกันแต่ จะเปลี่ยนจุดจอดไปไม่ซ้ำกัน

แต่ผมยังติดอยุ่ที่ว่ามันยังทำงาน วนๆ อยู่ใน while โดยไม่ออกมารอรับคำสั่งต่อไปเมื่อมันวิ่งมาถึงจุดเริ่มต้น อีกครั้ง
คำสั่งตามนี้เลยครับ

void menuUsed(MenuUseEvent used){
lcd.setCursor(0,0);  
  lcd.print("Working        ");

      
while ((used.item.getName()) == "NodeStop A B C")
  
  {  
    value = digitalRead(SensorStop);
    if (HIGH == value) {
      digitalWrite(ledPin,LOW  );
       TrackNodeABC();
       } else {

      digitalWrite(ledPin,HIGH  );
        Break();
      }

}
  
  
while ((used.item.getName()) == "NodeStop B C")
  {  

   value = digitalRead(SensorStop);
    if (HIGH == value) {
    digitalWrite(ledPin,LOW  );  
      TrackNodeBC();

       } else {

      digitalWrite(ledPin,HIGH  );
        Break();
      }

  }
  
while ((used.item.getName()) == "NodeStop A B")

  {    

   value = digitalRead(SensorStop);
    if ( value == HIGH) {  
//for (counter = 0; counter > 5; counter++)      
      digitalWrite(ledPin, LOW );
      TrackNodeAB();
      if (counter == 4)
        break;
      
       } else {

      digitalWrite(ledPin,HIGH  );
        Break();
      }
    
      
}

      lcd.setCursor(0,1);
      lcd.print(used.item.getName());
      delay(300);  //delay to allow message reading
      lcd.setCursor(0,0);  
      lcd.print("Select Program");
      menu.toRoot();  //back to Main


}
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่