اطلاعیه

Collapse
No announcement yet.

تغییر حالت برنامه با استفاده از کلید

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تغییر حالت برنامه با استفاده از کلید

    به نام خدا
    سلام دوستان من اولین باره تو سایت پست میزارم ممنون میشم کمک کنید
    من میخوام با ساتفاده از یک Push Button حالت برنامه اردینو رو عوض کنم
    مثلا در حالت عادی فن شماره 1 وقتی رطوبت زیر 60 درصده شروع به چرخش میکنه ولی وقتی سوییچ رو میزنی وقتی رطوبت زیر 70 درصده شروع به چرخش کنه
    یعنی برنامه دو حالت داشته باشه که از حالت 1 با زدن سوییچ بره حالت 2

    ممنون


    برنامه ای که نوشتم به این صورته

    int hFan = 3

    int minHum = 60


    (if(h < minHum
    (digitalWrite(hFan, HIGH
    جدیدترین ویرایش توسط mt_acm; ۰۰:۰۵ ۱۳۹۸/۰۵/۱۹.

    #2
    پاسخ : تغییر حالت برنامه با استفاده از کلید

    سلام من بهتون پاسخ خواهم داد ، فقط قبلش یه اظهار تاسف کنم از کاربران انجمن که اصلا همکاری نمی کنن در پاسخ دادن !!! طلب ارث پدری نیست اما شما از نظر اخلاقی ملزم به یاد دادن آموخته های خود به دیگران هستید ... و باید بخشی از زمان خودتون رو به این کار اختصاص بدید ...

    و اما جواب ،
    شما در نهایت یک برنامه بنویسید ، قبل از نوشتن برنامه یک متغییر تعریف کنید به اسم تست ، و برابر 1 قرار دهید ... Test=1 حالا یه شرط بذارید که دکمه فشرده شده یا خیر ؟ اگه دکمه فشرده شده Test=2 مقدار تست را برابر 2 قرار دهید ...

    حالا برنامه هایی که می خواستید رو بنویسید با این تفاوت که هر برنامه رو بطور کلی درون یک شرط بذارید بصورت زیر :

    if (test==1)
    {
    barname 1
    }
    else if (test==2)
    {
    barname 2
    }

    در هنگام مقدار دهی به تست ، دقت کنید و درست برنامه نویسی و کد نویسی کنید ... فکری هم به حال قطعی برق و پاک شدن مقدار تست کنید ، احتمالا باید مقدار تست رو توی حافظه ذخیره کنید EEROM

    دیدگاه


      #3
      پاسخ : تغییر حالت برنامه با استفاده از کلید

      ممنون بابت راهنمایی و وقتی که گذاشتین
      یه سوال برای تغییر test 1 به 2 بعد ااز (if (buttonState == HIGH چه دستوری بایدبنویسم ؟
      و اینکه نمیشه به جای تک سوییچ یه دونه کلید کلنگی کوچیک بزارم که نیازی به EEprom نداشته باشه ؟
      ممنون

      دیدگاه


        #4
        پاسخ : تغییر حالت برنامه با استفاده از کلید

        توضیح کاملتری برای سوال اول میدم : یه متغییر تست ، و یه متغییر "ام" تعریف کنید int Test , int M

        در حالت اولیه Test=1;

        در قسمت وایل برنامه ، وقتی کلید فشرده میشه (فرض کنیم کلید پول آپ باشه و با فشار دادن اش ، مقدار 0 به ورودی داده میشه )
        M=DigitalRead(pine morede nazar) //Ta inja vurudi ro khundim ke cheghade
        if (M==LOW) // age kilid feshorde shode
        Test=2

        if Test==1
        barname 1
        else
        Barname 2

        توجه کنید وقتی کلید رو بزنید ، مقدار تست 2 میشه و برنامه 2 اجرا میشه ، برای اینکه بخواین یه زمانی دوباره برنامه 1 اجرا بشه ، باید یه کلید دیگه بذارید ، که با زدن اون یکی کلید ، برنامه 1 اجرا بشه


        و اما سوال دوم ، EEROM ، هر نوع کلیدی بذارید بازم نیاز به حافظه دارید چون این حافظه مشخص می کنه در دفعه اول که ماشین روشن میشه ، قراره مقدار تست چند باشه ؟1 یا 2 ؟
        مگر اینکه ساختار فیزیکی رو تغییر بدیم ...
        یه کلید دو حالته بذارید ، همونکه گفتید کلنگی ، و پول آپ اش کنید ، یعنی اگه وصل باشه (ورودی = صفر میشه) اگه قطع باشه (ورودی =یک میشه)

        حالا توی قسمت وایل برنامه :

        M=digitalread(pine morde nazar

        if M==High
        Barname 1

        if M==LOW
        barname 2

        دیدگاه


          #5
          پاسخ : تغییر حالت برنامه با استفاده از کلید

          بازم ممنون بابت توضیحات
          من مشکلم اینجاس بعد از این
          if M==High چجوری میشه این رو بزارم ؟
          (if(h < minHum
          (digitalWrite(hFan, HIGH
          میشه دوتا if پشت سر هم بیاد ؟
          ممنون

          دیدگاه


            #6
            پاسخ : تغییر حالت برنامه با استفاده از کلید

            کامل باید بگید منظور تون چیه !!!

            ببینید شما می خواین وقتی کلید فشرده شد ( M=High شد) ، یه عملی انجام بدید ... حالا اون عمل می تونه خودش شرط باشه ، ایف باشه ، یا هرچی باشه فرقی نداره

            if M==HIGH
            {

            عمل یا اعمال خود اینجا نوشته شود

            }

            دیدگاه


              #7
              پاسخ : تغییر حالت برنامه با استفاده از کلید

              دقیقا میخوام بعد از شرط اول که این هست
              if M==HIGH یه شرط دیگه بزارم که رطوبت زیر 60 بود فن روشن شود یعنی ایف بعد از ایف
              اینجوری

              if M==HIGH
              {

              } (if(h<60
              (digitalWrite(hFan, HIGH
              {
              }

              که شما فرمودین میشه ایف بعد از ایف باشه
              ممنون

              دیدگاه


                #8
                پاسخ : تغییر حالت برنامه با استفاده از کلید

                سلام
                می تونی از SWITCH و CASE استفاده کنی.
                همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
                لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
                تایپیک های من:
                حل تمام مشکلات atmega128a (eca.ir)
                آموزش کار با سایت (eca.ir)

                دیدگاه

                لطفا صبر کنید...
                X