با سلام
شما باید حین کد نویسی یه flag تعریف کنی تا به جواب برسی.
کد زیر رو نگا کن
کد:
int flag = 0;
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(9600);
}
void loop() {
int c = Serial.parseInt();
if (c == 4 && flag == 0) {
digitalWrite(13, HIGH);
delay(150);
flag = 1;
if (c == 4 && flag == 1)
digitalWrite(13, LOW);
}
if (c == 5) {
flag = 0;
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
}
}
تو کد بالا وقتی شرط 4 شد ابتدا پین 13 روشن میشه و بعد 150 میلی ثانیه خاموش میشه و مادامیکه شرط همون 4 باشه پین 13 خاموش باقی میمونه. حال فرض کن ورودی برابر 5 بشه. پس دستورات داخل if مربوطه اجرا میشن. حال اگه دوباره شرط 4 بشه باز پین 13 روشن میشه و بعد 150 میلی ثانیه خاموش میشه و مادامی که شرط همون 4 باشه پین خاموش باقی میمونه.