صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 11 به 19 از 19
Like Tree5 لایک

موضوع: stop

  1. #11
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    سلام ممنون بابت راهنمایی تون ولی یه مشکلی هس که وقتی x=4 میشه تو همون شرط میمونه و شرط های دیگه اجرا نمیشن اگه میشه بیشتر راهنمایی کنید.

  2. #12
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط godhelot نمایش پست ها
    سلام ممنون بابت راهنمایی تون ولی یه مشکلی هس که وقتی 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 ");
    }
    }
    این کدی که من زدم تقریبا کار مطلوب شما رو می کنه
    البته یه خطا داره که من فقط اینو زدم که یه مقدار دستتون بیاد باید سر کدتون چه بلایی بیارید

  3. #13
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    خیلی ممنون دوست عزیز
    لایک کردن

  4. #14
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    سلام اقا کلی کلنجار رفتم نشد.
    تو برنامه ایی که نوشتم کلی if دارم که فقط تو یکی از اونا میخام که وقتی شرط برقرار شد پایه شماره 13 های بشه و بعد از یه دیلی پایه شماره 12 های بشه و تا وقتی که شرط برقراره پایه شماره 12 های بمونه.دیگه هی شرط از اول اجرا نشه (زمانی که شرط برقراره) همونجا رو های بودن پایه شماره 12 بمونه تا وقتی که شرط قطع بشه.

  5. #15
    Member
    تاریخ عضویت
    Oct 2013
    نوشته ها
    70
    با سلام
    شما باید حین کد نویسی یه 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 باشه پین خاموش باقی میمونه.
    لایک کردن

  6. #16
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    جواب نداد نمیدونم چرا

  7. #17
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    🤓Mostafa👦:
    if(x==4){
    digitalwrite(13،high);

    delay(150);

    digitalwrite (13،low);
    }

    تو این کد میخام وقتی ایکس برابر چار شد پایه 13 های بشه و 150 میلی ثانیه های بمونه وبعد از اون لو بشه وتا وقتی که ایکس برابر چاره لو بمونه تا وقتی که شرط از حالت تساوی خارج بشه.

    اما هرکاری میکنم نمیشه لطفا کمک کنید.
    لازم به ذکره که چارچوب اصلی کد با if نوشته شده یعنی توش پره ایفه😉

  8. #18
    Member
    تاریخ عضویت
    Oct 2013
    نوشته ها
    70
    برادر من شما برنامه ای که مد نظر دارین رو جهت بررسی قرار نمیدین و با توضیحاتی که ارائه دادین و هدفی که بیان کردین کد بالا که توش flag تعریف کردم کاملا صحیح کار میکنه. حتی یه تاخیر ساده میتونه عملکرد کل برنامه رو بهم بریزه حالا برنامه ی شما که به قول خودتون پره ایفه که جای خود دارد.
    ویرایش توسط engamanc : 08-11-2016 در ساعت 11:42 AM
    لایک کردن

  9. #19
    Junior Member
    تاریخ عضویت
    Mar 2016
    نوشته ها
    23
    خیلی ممنون حل شد
    لایک کردن

صفحه 2 از 2 نخستنخست 12

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO