arduino เมื่อใช้คำสั่งแล้วให้หน่วงเวลาถึงจะใช้ได้อีก

arduino เมื่อใช้คำสั่งแล้วให้หน่วงเวลาถึงจะใช้ได้อีก
//******************** มอเตอร์ขวา **************************//
#define enableRightMotor 6              // กำหนดขา 6 เป็นขาของ ENA ของมอเตอร์ขวา A
#define rightMotorPin1 7                // กำหนดขา 7 เป็นขาของ INT 1 (เดินหน้า)
#define rightMotorPin2 8                // กำหนดขา 8 เป็นขาของ INT 2 (ถอยหลัง)
//******************** มอเตอร์ซ้าย **************************//
#define enableLeftMotor 5               // กำหนดขา 5 เป็นขาของ ENB ของมอเตอร์ซ้าย B
#define leftMotorPin1 9                 // กำหนดขา 9 เป็นขาของ INT 3 (เดินหน้า)
#define leftMotorPin2 10                // กำหนดขา 10 เป็นขาของ INT 4 (ถอยหลัง)
//********************* เซนเซอร์ 5 ตัว******************************//
#define IR6 A4                          // กำหนดขา A2 เป็น IR4
#define IR7 A5                          // กำหนดขา A3 เป็น IR5
//******************** ปรับความเร็วมอเตอร์ **************************//
#define White 50
#define SP_Normal 80                     // ความเร็วทางตรงปกติ
#define SP_Low 95                        // ความเร็วการเบี่ยงกลับมาให้ตรงด้วยความเร็วต่ำ
#define SP_Medium 120                     // ความเร็วการเบี่ยงกลับมาให้ตรงด้วยความเร็วระดับกลาง
#define SP_High 130                       // ความเร็วการเบี่ยงกลับมาให้ตรงด้วยความเร็วระดับสูง
#define SP_VeryHigh 140                   // ความเร็วการเบี่ยงกลับมาให้ตรงด้วยความเร็วระดับสูงมาก
//*************************************************************//
void arrow_tracking()
{
  pinMode(rightMotorPin1, OUTPUT);
  pinMode(rightMotorPin2, OUTPUT);
  pinMode(leftMotorPin1, OUTPUT);
  pinMode(leftMotorPin2, OUTPUT);
  pinMode(enableRightMotor, OUTPUT);
  pinMode(enableLeftMotor, OUTPUT);
  pinMode(IR6, INPUT);
  pinMode(IR7, INPUT);
  int s6 = analogRead(IR6);  //เซนเซอร์ตรวจลูกศรซ้าย
  int s7 = analogRead(IR7);  //เซนเซอร์ตรวจลูกศรขวา
  
  if((s6 <= White) && (s7 >= White))
  {
    //ให้วิ่งตรงด้วยความเร็ว ระดับ SP_Normal
    analogWrite(enableRightMotor, SP_Normal);
    analogWrite(enableLeftMotor, SP_Normal);
    delay(200);
    digitalWrite(rightMotorPin1, LOW);
    digitalWrite(rightMotorPin2, LOW);
    digitalWrite(leftMotorPin1, LOW);
    digitalWrite(leftMotorPin2, LOW);
    delay(1000);
    digitalWrite(rightMotorPin1, HIGH);
    digitalWrite(rightMotorPin2, LOW);
    digitalWrite(leftMotorPin1, HIGH);
    digitalWrite(leftMotorPin2, LOW);
    delay(100);
  }
  if((s6 >= White) && (s7 <= White))
  {
    //ให้วิ่งตรงด้วยความเร็ว ระดับ SP_Normal
    analogWrite(enableRightMotor, SP_Normal);
    analogWrite(enableLeftMotor, SP_Normal);
    delay(200);
    digitalWrite(rightMotorPin1, LOW);
    digitalWrite(rightMotorPin2, LOW);
    digitalWrite(leftMotorPin1, LOW);
    digitalWrite(leftMotorPin2, LOW);
    delay(1000);
    digitalWrite(rightMotorPin1, HIGH);
    digitalWrite(rightMotorPin2, LOW);
    digitalWrite(leftMotorPin1, HIGH);
    digitalWrite(leftMotorPin2, LOW);
    delay(100);
  }
}

จากโค้ดของบนเลยอะครับ
คือถ้า if((s6 <= White) && (s7 >= White)) อยากให้มันหน่วงเวลาสัก 200 ละเริ่มคำสั่งอีก 1000 พอครบแล้วก็ให้เริ่มอีกคำสั่งอีก 100 และอยากให้มันหน่วงคำสั่งอีกอะครับไม่อยากให้มันใช้ถี่เกินไปแบบให้คำสั่งมีคูลดาวตัวมันถึงจะใช้ได้อีกอะครับ ไม่ทราบว่าควรแทรกคำสั่งตรงไหนหรอครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่