سلام ممنون بابت راهنمایی تون ولی یه مشکلی هس که وقتی x=4 میشه تو همون شرط میمونه و شرط های دیگه اجرا نمیشن اگه میشه بیشتر راهنمایی کنید.
سلام ممنون بابت راهنمایی تون ولی یه مشکلی هس که وقتی x=4 میشه تو همون شرط میمونه و شرط های دیگه اجرا نمیشن اگه میشه بیشتر راهنمایی کنید.
باید با کدتون یه مقدار کلنجار برید:
این کدی که من زدم تقریبا کار مطلوب شما رو می کنهکد:void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: char x=Serial.read(); if(x=='4'){ Serial.println("command 1 "); delay(100); do {Serial.println("command 2 ");} while((Serial.read()=='4') || (Serial.available()==0)); } if(x=='5'){ Serial.println("command 3 "); } }
البته یه خطا داره که من فقط اینو زدم که یه مقدار دستتون بیاد باید سر کدتون چه بلایی بیارید
خیلی ممنون دوست عزیز
سلام اقا کلی کلنجار رفتم نشد.
تو برنامه ایی که نوشتم کلی if دارم که فقط تو یکی از اونا میخام که وقتی شرط برقرار شد پایه شماره 13 های بشه و بعد از یه دیلی پایه شماره 12 های بشه و تا وقتی که شرط برقراره پایه شماره 12 های بمونه.دیگه هی شرط از اول اجرا نشه (زمانی که شرط برقراره) همونجا رو های بودن پایه شماره 12 بمونه تا وقتی که شرط قطع بشه.
با سلام
شما باید حین کد نویسی یه flag تعریف کنی تا به جواب برسی.
کد زیر رو نگا کن
تو کد بالا وقتی شرط 4 شد ابتدا پین 13 روشن میشه و بعد 150 میلی ثانیه خاموش میشه و مادامیکه شرط همون 4 باشه پین 13 خاموش باقی میمونه. حال فرض کن ورودی برابر 5 بشه. پس دستورات داخل if مربوطه اجرا میشن. حال اگه دوباره شرط 4 بشه باز پین 13 روشن میشه و بعد 150 میلی ثانیه خاموش میشه و مادامی که شرط همون 4 باشه پین خاموش باقی میمونه.کد: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); } }
جواب نداد نمیدونم چرا
🤓Mostafa👦:
if(x==4){
digitalwrite(13،high);
delay(150);
digitalwrite (13،low);
}
تو این کد میخام وقتی ایکس برابر چار شد پایه 13 های بشه و 150 میلی ثانیه های بمونه وبعد از اون لو بشه وتا وقتی که ایکس برابر چاره لو بمونه تا وقتی که شرط از حالت تساوی خارج بشه.
اما هرکاری میکنم نمیشه لطفا کمک کنید.
لازم به ذکره که چارچوب اصلی کد با if نوشته شده یعنی توش پره ایفه😉
برادر من شما برنامه ای که مد نظر دارین رو جهت بررسی قرار نمیدین و با توضیحاتی که ارائه دادین و هدفی که بیان کردین کد بالا که توش flag تعریف کردم کاملا صحیح کار میکنه. حتی یه تاخیر ساده میتونه عملکرد کل برنامه رو بهم بریزه حالا برنامه ی شما که به قول خودتون پره ایفه که جای خود دارد.
ویرایش توسط engamanc : 08-11-2016 در ساعت 11:42 AM
خیلی ممنون حل شد