چگونه می توان هنگام اتصال دکمه به آردوینو از گزاف گویی مخاطب خلاص شد

فهرست مطالب:

چگونه می توان هنگام اتصال دکمه به آردوینو از گزاف گویی مخاطب خلاص شد
چگونه می توان هنگام اتصال دکمه به آردوینو از گزاف گویی مخاطب خلاص شد

تصویری: چگونه می توان هنگام اتصال دکمه به آردوینو از گزاف گویی مخاطب خلاص شد

تصویری: چگونه می توان هنگام اتصال دکمه به آردوینو از گزاف گویی مخاطب خلاص شد
تصویری: آموزش ماژولReed Switch از پکیج 37 سنسور آردوینو arduino - آشکار ساز میدان مغناطیسی 2024, ممکن است
Anonim

ما قبلاً به اتصال دکمه ای به Arduino پرداخته ایم و موضوع "برگشت" مخاطبین را لمس کرده ایم. این یک پدیده بسیار آزار دهنده است که باعث فشار مکرر دکمه ها می شود و مدیریت برنامه ای کلیک دکمه ها را دشوار می کند. بیایید در مورد چگونگی خلاص شدن از تماس گزاف گویی صحبت کنیم.

اثر گزاف گویی تماس بگیرید
اثر گزاف گویی تماس بگیرید

ضروری

  • - آردوینو ؛
  • - دکمه تدبیر
  • - مقاومت با مقدار اسمی 10 کیلو اهم
  • - دیود ساطع نور؛
  • - اتصال سیم ها

دستورالعمل ها

مرحله 1

تماس گزاف گویی یک پدیده رایج در کلیدهای مکانیکی ، دکمه های فشار ، کلیدهای ضامن و رله ها است. با توجه به اینكه تماس ها معمولاً از فلزات و آلیاژهایی كه خاصیت ارتجاعی دارند ساخته می شود ، در صورت بسته شدن فیزیكی ، بلافاصله اتصال مطمئنی برقرار نمی كنند. در مدت زمان کوتاهی ، مخاطبین چندین بار بسته می شوند و یکدیگر را دفع می کنند. در نتیجه ، جریان الکتریکی نه بلافاصله ، بلکه پس از یک سری فراز و نشیب ها یک مقدار حالت پایدار به خود می گیرد. مدت زمان این اثر گذرا به ماده تماس ، اندازه و طرح بستگی دارد. این تصویر هنگام بسته شدن مخاطبین دکمه تاک ، یک اسیلوگرام معمولی را نشان می دهد. مشاهده می شود که زمان از لحظه تغییر حالت پایدار چندین میلی ثانیه است. این "گزاف گویی" نامیده می شود.

این اثر در مدارهای الکتریکی برای کنترل روشنایی ، موتورها یا سایر سنسورها و دستگاه های اینرسی قابل مشاهده نیست. اما در مدارهایی که خواندن و پردازش سریع اطلاعات وجود دارد (جایی که فرکانس ها با همان پالس های "گزاف گویی" یا بالاتر از آنها هستند) ، این یک مشکل است. به طور خاص ، آردوینو UNO ، که با سرعت 16 مگاهرتز کار می کند ، با پذیرش توالی یک و صفر به جای یک سوئیچ واحد 0 به 1 ، در گرفتن تماس تماس بسیار عالی است.

هنگام فشار دادن یک دکمه با گزاف گویی تماس بگیرید
هنگام فشار دادن یک دکمه با گزاف گویی تماس بگیرید

گام 2

بیایید ببینیم که گزاف گویی تماس چگونه بر عملکرد صحیح مدار تأثیر می گذارد. بیایید دکمه ساعت را با استفاده از یک مدار کشویی به Arduino وصل کنیم. با فشار دادن دکمه ، LED را روشن کرده و روشن می گذاریم تا دوباره دکمه فشار داده شود. برای شفافیت ، ما یک LED خارجی را به پایه 13 دیجیتال متصل می کنیم ، اگرچه می توان از LED داخلی آن صرف نظر کرد.

اتصال دکمه به Arduino با استفاده از مدار مقاومت کششی
اتصال دکمه به Arduino با استفاده از مدار مقاومت کششی

مرحله 3

برای انجام این کار ، اولین چیزی که به ذهن شما خطور می کند:

- حالت قبلی دکمه را بخاطر بسپارید ؛

- مقایسه با وضعیت فعلی ؛

- اگر حالت تغییر کرده باشد ، پس ما وضعیت LED را تغییر می دهیم.

بیایید چنین طرحی را بنویسیم و آن را در حافظه آردوینو بارگذاری کنیم.

با روشن شدن مدار ، تأثیر تندرست تماس بلافاصله قابل مشاهده است. این امر در این امر خود را نشان می دهد که LED بلافاصله پس از فشار دادن دکمه روشن نمی شود ، یا روشن می شود و سپس خاموش می شود ، یا بلافاصله پس از فشار دادن دکمه خاموش نمی شود ، اما همچنان روشن است. به طور کلی ، مدار پایدار کار نمی کند. و اگر برای کاری با روشن کردن LED این خیلی مهم نیست ، پس برای کارهای جدی تر ، به راحتی غیر قابل قبول است.

طرح فشار دادن دکمه پردازش بدون در نظر گرفتن گزاف گویی تماس
طرح فشار دادن دکمه پردازش بدون در نظر گرفتن گزاف گویی تماس

مرحله 4

ما سعی خواهیم کرد وضعیت را برطرف کنیم. ما می دانیم که گزاف گویی تماس پس از بسته شدن تماس در عرض چند میلی ثانیه رخ می دهد. بگذارید مثلاً 5 میلی ثانیه صبر کنیم بعد از تغییر حالت دکمه. این زمان برای یک فرد تقریباً فوری است و فشار دادن یک دکمه توسط یک شخص معمولاً بسیار بیشتر طول می کشد - ده ها میلی ثانیه. و آردوینو با چنین مدت کوتاهی عالی کار می کند و این 5 میلی ثانیه به شما امکان می دهد فشار تماس یک دکمه را از بین ببرید.

در این طرح ، ما روش deboun () را اعلام خواهیم کرد ("گزاف گویی" در انگلیسی فقط "گزاف گویی" است ، پیشوند "de" به معنای روند معکوس است) ، که ورودی قبلی دکمه را ارائه می دهیم. اگر فشار یک دکمه بیش از 5 میلی ثانیه طول بکشد ، در واقع فشار است.

با تشخیص پرس ، ما وضعیت LED را تغییر می دهیم.

طرح را روی صفحه آردوینو بارگذاری کنید. الان همه چیز خیلی بهتر شده است! دکمه بدون شکست کار می کند ، با فشار دادن ، LED حالت را تغییر می دهد ، همانطور که می خواستیم.

طرح پردازش یک دکمه ، با در نظر گرفتن گزاف گویی مخاطب
طرح پردازش یک دکمه ، با در نظر گرفتن گزاف گویی مخاطب

مرحله 5

عملکرد مشابه توسط کتابخانه های خاص مانند کتابخانه Bounce2 ارائه می شود.می توانید آن را از پیوند در بخش "منابع" یا در وب سایت https://github.com/thomasfredericks/Bounce2 بارگیری کنید. برای نصب کتابخانه ، آن را در فهرست کتابخانه های محیط توسعه Arduino قرار دهید و IDE را دوباره راه اندازی کنید.

کتابخانه "Bounce2" شامل روش های زیر است:

جستن () - مقداردهی اولیه شی "گزاف گویی" ؛

void interval (ms) - زمان تاخیر را بر حسب میلی ثانیه تنظیم می کند.

void attach (شماره پین) - پینی را که دکمه به آن متصل است تنظیم می کند.

int update () - شی object را به روز می کند و اگر حالت پین تغییر کرده باشد درست برمی گردد و در غیر این صورت false است.

int read () - حالت جدید پین را می خواند.

بیایید طرح خود را با استفاده از کتابخانه دوباره بنویسیم. همچنین می توانید وضعیت گذشته دکمه را با حالت فعلی به خاطر بسپارید و مقایسه کنید ، اما بیایید الگوریتم را ساده کنیم. با فشردن دکمه ، ما فشارها را می شماریم و هر فشار عجیب LED را روشن می کند و هر فشار یکنواخت آن را خاموش می کند. این طرح مختصر ، آسان خوانا و آسان برای استفاده به نظر می رسد.

توصیه شده: