نقل قول نوشته اصلی توسط abbasjavanmardi نمایش پست ها
من تغییرات تو برنامه رو ایجاد کردم اگه امکان داره بازبینی بفرمایید و سناریو به این شکله ک

1.اگر کلید A در حالت HIGH باشه و مقدار جاری زمان از زمان قبلی بیشتر از مقدار تایم(یک ساعت)بیشتر بشه رله چپ گرد رو روشن کنه و چهار چوب بره به سمت کلید B
2.حالا تو if چهارم گفتیم به محض رسیدن چهارچوب به کلید B, رله چپ گرد خاموش شه
3.اگر کلید َB در حالت HIGH باشه و مقدار جاری زمان از زمان قبلی بیشتر از مقدار تایم(یک ساعت)بیشتر بشه رله راست گرد رو روشن کنه و چهار چوب بره به سمت کلید A
4.حالا تو if سوم گفتیم به محض رسیدن چهارچوب به کلید A, رله راست گرد خاموش شه

کد:

با این کد جواب نمیگیری
باید شرطهای بعدیت بشه else if
نمونه کد من که تست کردم :
کد:
const int button_A = 2;  //pin for button A
const int button_B = 3;  //pin for button B
const int relay_L = 4;  //pin for Left turn motor
const int relay_R = 5;  //pin for Right turn motor
unsigned long previousMillis = 0;        // will store last time button was updated
long OffTime = 10000;          // milliseconds of off-time




void setup() {
  pinMode(button_A, INPUT);
  pinMode(button_B, INPUT);
  pinMode(relay_L, OUTPUT);
  pinMode(relay_R, OUTPUT);
  Serial.begin(9600);
}


void loop()
{
  unsigned long currentMillis = millis();
  if (Serial.available() > 0) {
    char data = Serial.read();
    if ((data == 'a') && (currentMillis - previousMillis >= OffTime))
    {
      previousMillis = currentMillis;  // Remember the time
      Serial.println("C1");
    }


    else if ((data == 'b') && (currentMillis - previousMillis >= OffTime))
    {
      previousMillis = currentMillis;  // Remember the time
      Serial.println("C2");
    }


  else  if (data == 'a')
    {
      Serial.println("C3");
    }


   else  if (data == 'b')
    {
      Serial.println("C4");
    }
  }
}