نمایش نتایج: از 1 به 4 از 4

موضوع: کمک فقط با یک کلید به sleep mod رفته و با زدن دوباره همان کل کلید روشن شود

  1. #1
    Junior Member
    تاریخ عضویت
    Mar 2018
    نوشته ها
    2

    Exclamation کمک فقط با یک کلید به sleep mod رفته و با زدن دوباره همان کل کلید روشن شود

    1-چطور میتوان در آردوینو nano یا uno برنامه رو به شکلی نوشت که فقط با یک میکرو سوییچ ،آن را به sleep mod و power down برد و با زدن دوباره همان کلید به حالت روشن کامل در اورد .

    2- چطور میتوان در اجرای Interrupt خارجی delay ایجاد کرد
    3-آیا اولویت اجرای Interrupt در حلقه ifو for یا ... فرق دارد؟؟
    این سوالات همش مربوط به سوال اول است
    ممنون میشم دوستانی که اطلاعات دارن کمک کنن
    ویرایش توسط abbassh1 : 03-31-2018 در ساعت 06:29 PM

  2. #2
    Junior Member
    تاریخ عضویت
    Apr 2018
    نوشته ها
    2
    نقل قول نوشته اصلی توسط abbassh1 نمایش پست ها
    1-چطور میتوان در آردوینو nano یا uno برنامه رو به شکلی نوشت که فقط با یک میکرو سوییچ ،آن را به sleep mod و power down برد و با زدن دوباره همان کلید به حالت روشن کامل در اورد .

    2- چطور میتوان در اجرای Interrupt خارجی delay ایجاد کرد
    3-آیا اولویت اجرای Interrupt در حلقه ifو for یا ... فرق دارد؟؟
    این سوالات همش مربوط به سوال اول است
    ممنون میشم دوستانی که اطلاعات دارن کمک کنن
    با سلام
    از طریق کد زیر میتوانید توسط شاسی و تحریک آن خروجی رو فعال داعم و با تحریک دوباره ی آن خروجی رو غیر فعال کنید و این روند ادامه دارد...
    کد:
    bool LED= false ;
    void setup() {
      // put your setup code here, to run once:
      pinMode(12,OUTPUT);
      pinMode(2,INPUT_PULLUP);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      if(digitalRead(2)==0){
        LED = !LED ;
        digitalWrite(12,LED);
        delay(1000);
      }
    }

  3. #3
    Junior Member
    تاریخ عضویت
    Mar 2018
    نوشته ها
    2

    Question کمک فقط با یک کلید به sleep mod رفته و با زدن دوباره همان کل کلید روشن شود

    نقل قول نوشته اصلی توسط mehran76gh نمایش پست ها
    با سلام
    از طریق کد زیر میتوانید توسط شاسی و تحریک آن خروجی رو فعال داعم و با تحریک دوباره ی آن خروجی رو غیر فعال کنید و این روند ادامه دارد...
    کد:
    bool LED= false ;
    void setup() {
      // put your setup code here, to run once:
      pinMode(12,OUTPUT);
      pinMode(2,INPUT_PULLUP);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      if(digitalRead(2)==0){
        LED = !LED ;
        digitalWrite(12,LED);
        delay(1000);
      }
    }

    تشکر
    ولی دوست عزیز این ارتباطی به سوال من نداره.....

  4. #4
    Member
    تاریخ عضویت
    Apr 2015
    محل سکونت
    ایران :|
    نوشته ها
    76
    اینتراپت قطعه کد کاملا جدایی از روند اصلی میکروکنترلره. خود اینتراپت ها هم بین خودشون اولویت دارن. اما اولویت اینتراپت خارجی از همه بالاتره. پس نگرانی از نظر اولویت اجرا نداره.
    حدس میزنم یه چیزی مث دکمه ی خاموش روشن گوشیا میخواید. که مثلا نگهش میدارید روشن میشه گوشی. اونا هم دقیقا از همین روش استفاده میکنن.
    احتمال زیاد با روش نوشتن اینتراپت و ... آشنا هستید.
    روند انجام کار مد نظر شما اینطوره :
    یه اینتراپت مینویسید برای ورودی کلید که به محض فشار دادن کلید اجرا میشه.
    به محض اجرا شدن، وضعیت کنونی پایه رو تو یه متغییر ذخیره کنید. مثلا یه متغییر بول تعریف کنید و مقدار پایه رو بندازید توش (مقدار پایه رو میتونید با digitalRead بخونید)
    یه دیلی به دلخواه (مثلا 3 ثانیه) بنویسید
    الان دوباره چک کنید که دکمه همچنان فشار داده شده س یا نه. اینطوری که باید وضعیت کنونی دکمه، با وضعیت 3 ثانیه پیشش که تو متغییر ذخیره کردید یکی باشه. اگه یکی نبود، یعنی مثلا دکمه رو فقط برای مدت کوتاهی فشار داده بوده و الان دستشو برداشته.
    الان یه شرط قرار بدید :
    اگر مطمئن شدید همچنان دستش رو کلیده، تغییر وضعیت بدید (میتونید وضعیت میکرو رو توی یه متغییر ذخیره کنید برای استفاده بهتر). مثلا متغییری به اسم power تعریف کنید و وضعیت رو برای خودتون توش ذخیره کنید.
    اگر دستش رو به مدت کافی نگه نداشته بود و دکمه رو آزاد کرده بود و وضعیت قبلی دستگاه، خواب بوده، دستگاه رو ببرید تو مود اسلیپ (چون دستگاه با وقفه بیدار میشه در هر حال)
    اگه به قدر کافی نگه داشته بود تغییر وضعیت بدید. اگر بیدار بوده خواب، اگر خواب بوده هم کاری نکنید چون خودش بیدار شده

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

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

SEO by vBSEO