اطلاعیه

Collapse
No announcement yet.

ارتباط کلید با میکرو

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

    ارتباط کلید با میکرو

    سلام
    من برای برنامه ترمومتر نیاز دارم تا کاربر بتونه دما رو توسط 2 کلید کنترل کنه. ولی نمی دونم چجوری باید کلید هارو به میکرو متصل کنم؟؟
    البته آمدم 2 پین میکرو رو به حالت ورودی تنظیم کردم و کلید رو به اون نصب کردم و بعد هم توی حلقه اصلی گفتم اگه فلان پین صفر شد یه واحد به متغیر اضافه یا کم کن ولی وقتی یک بار کلید رو می زنم پشت سر هم اضافه یا کم میشه. حتی وقتی که دستم رو از روی کلید برداشتم. در ضمن مدار رو با پروتئوس تست کردم.
    می تونید کمک کنید؟!

    #2
    پاسخ : ارتباط کلید با میکرو

    اگه با بیسیک کار میآ‌کنید، بهترین کار اینه که از دستور Debounce استفاده کنید.
    کد:
    DEBOUNCE Px.y , state , label
    مثلا:
    کد:
    debounce pina.3 , 1 ,s

    دیدگاه


      #3
      پاسخ : ارتباط کلید با میکرو

      چون سرعت حرکت دست شما از میکرو خیلی کندتره این اتفاق میافته و وقتی شما کلید رو فشار میدین میکرو فکر میکنه شما چند بار اونو فشار دادین.
      آقا حمید راه حل رو گفتن.
      یه راه ساده هم هست که بعد دستور خوندن یه delay بذارین .جواب میده ولی واسه پروژه های خوب روش جالبی نیس میتونین مدت تاخیر رو هم با سعی و خطا بدست بیارین که حوالی 300 میلی ثانیه جواب میده.
      اگه میخواین بدونین debounce دقیقا چیه بگید توضیح بدیم.
      It's nice to be important but it's important to be nice!

      از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

      دیدگاه


        #4
        پاسخ : ارتباط کلید با میکرو

        دستتون درد نکنه بابت جواب.
        من با کدویژن کار می کنم. برای اون چه دستوری هست؟
        البته خودم با روش سعی و خطا اومدم از یه تاخیر 80 میلی ثانیه ای استفاده کردم که داره خوب کار می کنه

        دیدگاه


          #5
          پاسخ : ارتباط کلید با میکرو

          ببینید debounce به خاطر این مطرح نیس که سرعت دست شما کمه . این مفهوم به خاطر مکانیکی بودن سوییچه. وقتی کلید رو فشار میدین ممکنه چند بار قطع و وصل بشه.
          تو کدویژن من دستور آماده ندیدم شایدم من ندیدم اگه خودتون میخواین بنویسین بهتره یه فلوچارت واسه خودتون تو کاغذ بکشین بعد. مثلا بگید :
          کلید رو بخون اگه صفر بود چند میلی ثانیه بعد دوباره بخون اگه بازم صفر بود قبولش کن و گرنه اهمیت نده. حالا دوباره بخون اگه بازم صفر بود اهمیت نده چون ظاهرا کاربر هموز انگشتشو از رو کلید ورنداشته.دوباره بخون اگه یک بود یعنی کاربر مریض بالاخره دستشو ورداشت و دوباره بخون و مقدار جدید رو دریافت کن....
          خودمم نفهمیدم چی گفتم آخه اینجا شکیرا میخونه هواسم پرت میشه :mrgreen: :mrgreen: :mrgreen:
          It's nice to be important but it's important to be nice!

          از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

          دیدگاه


            #6
            پاسخ : ارتباط کلید با میکرو

            آخه آقا وحید از وقفه استفاده نکردن که با زدن یک کلید چند بار اجرا شه. توی حلقه پورت رو میخونن. احتمالا سرعت حلقه شون زیاده . اونم با delay حل میشه .

            دیدگاه


              #7
              پاسخ : ارتباط کلید با میکرو

              نوشته اصلی توسط رضا شفقی
              ببینید debounce به خاطر این مطرح نیس که سرعت دست شما کمه . این مفهوم به خاطر مکانیکی بودن سوییچه. وقتی کلید رو فشار میدین ممکنه چند بار قطع و وصل بشه.
              It's nice to be important but it's important to be nice!

              از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

              دیدگاه

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