فهرست مطالب:
تصویری: رمزگشای ساده روتاری: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
این دستورالعمل یک روش ساده برای رمزگشایی رمزگذار دوار متوالی با استفاده از Arduino Uno R3 را شرح می دهد.
برنامه های نرم افزاری جمع و جور برای شمارش تعداد تغییرات ، حذف گزاف گویی تماس و تعیین جهت چرخش استفاده می شود. اجزای اضافی و جداول جستجوی مورد نیاز نیست.
نسخه های وقفه و بدون وقفه کد ارائه شده است.
نسخه وقفه کد فقط به یک پین وقفه نیاز دارد.
تصاویر:
- عکس ابتدایی رمزگذار مونتاژ شده را نشان می دهد.
- تصویر صفحه کد نسخه قطع شده و شمارش هنگامی که محور رمزگذار در جهت عقربه های ساعت و خلاف جهت عقربه های ساعت بچرخد را نشان می دهد.
- ویدئو شمارش را در حین چرخش سریع نشان می دهد.
مرحله 1: نمودار مدار
نمودار سیم کشی رمزگذار در شکل 1 نشان داده شده است.
سیم های بلوز مستقیماً به پین های رمزگذار لحیم می شوند.
اگر جهت شمارش معکوس شد ، دو سیم آبی را عوض کنید.
مرحله 2: لیست قطعات
قسمت های زیر از https://www.aliexpress.com/ تهیه شده است
- فقط 1 آردوینو UNO R3 با کابل USB.
- فقط 1 رمزگذار چرخشی متوالی (EC11 یا معادل آن) با سوئیچ.
- 1 عدد دستگیره مناسب شفت
- فقط 3 سیم جهنده مرد به مرد آردوینو.
مرحله 3: نظریه
رمزگذارهای چرخشی متوالی دو موج مربعی ایجاد می کنند که هر کدام 90 درجه جابجا می شوند ، همانطور که در شکل 1 نشان داده شده است.
الگوهای منطقی در تماس A و B زمانی متفاوت است که شفت در جهت عقربه های ساعت (CW) و در جهت عقربه های ساعت (CCW) در موقعیت های 1 تا 6 بچرخد.
روشهای متداول برای تعیین جهت چرخش عبارتند از:
- سخت افزار
- وقفه های دوقلو
- جداول جستجوی الگو
این پروژه از یک روش نرم افزاری استفاده می کند که نیازی به جداول جستجو ندارد. [1]
جهت
به جای نگاه کردن به الگوهای خروجی از مخاطبین A و B ، روی تماس A تمرکز کنیم.
اگر از مخاطب B بعد از هر انتقال A نمونه بگیریم ، توجه داشته باشید که:
- هنگام چرخاندن رمزگذار CW ، مخاطب A و B دارای حالت منطقی متضادی هستند
- هنگام چرخاندن رمزگذار به صورت CCW ، مخاطب A و B دارای حالت منطقی یکسانی هستند
کد واقعی:
// ----- شمارش انتقال ها
CurrentStateA = stateContactA ()؛ if (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB) ؛ if (CurrentStateA == CurrentStateB) تعداد ++ ؛ if (CurrentStateA! = CurrentStateB) تعداد-- ؛ LastStateA = CurrentStateA ؛ }
این روش مزایای زیر را ارائه می دهد:
- جداول جستجوی مورد نیاز نیست
- فقط یک خط وقفه واحد مورد نیاز است
انصراف دادن
همه رمزگذارهای مکانیکی از "گزاف گویی تماس" رنج می برند.
اگر یک سوئیچ کنتاکت نکند/کاملاً تمیز نشود ، حالت منطقی آن به سرعت از HIGH به LOW نوسان می کند تا زمانی که تماس سوئیچ حل شود. این منجر به شمارش اشتباه می شود.
یک روش برای سرکوب گزاف گویی تماس ، افزودن یک خازن کوچک در هر تماس سوئیچ است. خازن و مقاومت کششی مرتبط با آن یک یکپارچه را تشکیل می دهند که به طور م frequثر فرکانس های بالا را کوتاه می کند و به ولتاژ سوئیچ اجازه می دهد تا به طرز دلپذیری بالا/پایین برود.
جنبه منفی این روش این است که اگر محور رمزگذار به سرعت بچرخد ، ممکن است تغییرات را از دست بدهد.
انصراف نرم افزار
این روش از دو شمارنده (باز ، بسته) استفاده می کند که روی صفر تنظیم شده اند. [2]
هنگامی که یک انتقال در مخاطب A تشخیص داده می شود:
- نظرسنجی مداوم تماس با A
- هرگاه تماس A بالا باشد ، شمارنده باز را افزایش دهید و شمارنده بسته را بازنشانی کنید.
- هر زمان که تماس A LOW باشد ، شمارنده بسته را افزایش دهید ، و شمارنده باز را بازنشانی کنید.
- هنگامی که یکی از شمارنده ها به تعداد از پیش تعیین شده برسد ، از حلقه خارج شوید. ما عملاً بدنبال دوره حالت پایدار به دنبال هرگونه جهش تماس هستیم.
کد واقعی:
// ----- Debounce Contact A
while (1) {if (digitalRead (ContactA)) {// ----- ContactA باز است بسته = 0 ؛ // یکپارچه کننده مقابل خالی Open ++؛ // ادغام if (باز کردن> MaxCount) بازگشت HIGH؛ } else {// ----- ContactA بسته است = 0؛ // یکپارچه کننده خالی مقابل Closed ++؛ // ادغام if (Closed> MaxCount) بازگشت LOW؛ }}
نیازی به لغو تماس B نیست زیرا انتقال A و Contact B با هم منطبق نیستند.
با احتساب
یک "مهار" مکانیکی به طور م countثر تعداد شما را دو برابر می کند زیرا دو تعداد بین کلیک ها ثبت می شود (شکل 1 را ببینید).
تعداد "بازداشت کننده ها" را می توان با استفاده از حساب modulo 2 تعیین کرد که در زیر نشان داده شده است.
کد واقعی:
// ----- شمارش "بازداشت شدگان"
if (تعداد٪ 2 == 0) {Serial.print ("Count:")؛ Serial.println (تعداد / 2) ؛ }
منابع
اطلاعات بیشتر را می توان در آدرس زیر یافت:
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ButtonorSwitchDebounceinSof…
مرحله 4: نرم افزار
این پروژه به نسخه جدیدی از Ardino Uno R3 IDE (محیط توسعه یکپارچه) نیاز دارد که از https://www.arduino.cc/fa/main/software در دسترس است.
هر یک از دو طرح زیر آردوینو (پیوست شده) را بارگیری کنید
- rotary_encoder_1.ino (نسخه نظرسنجی)
- rotary_encoder_2.no (نسخه وقفه)
روی نسخه دلخواه خود دوبار کلیک کنید و دستورالعمل های روی صفحه را دنبال کنید.
لذت بردن …
برای مشاهده سایر دستورالعمل های من اینجا را کلیک کنید.
توصیه شده:
چگونه می توان یک رمزگشای خط تلفن ساده DTMF (تن) ساخت: 3 مرحله
چگونه می توان یک رمزگشای ساده خط تلفن DTMF (تن) ساخت: این یک پروژه ساده است که به شما امکان می دهد سیگنال های DTMF را اساساً در هر خط تلفن رمزگشایی کنید. در این آموزش ، ما از رمزگشای MT8870D استفاده می کنیم. ما از رمزگشای تن از پیش ساخته شده استفاده می کنیم زیرا ، باور کنید ، تلاش برای انجام این کار با
رمزگشای پروتکل کنترل از راه دور RC5 بدون کتابخانه: 4 مرحله
رمزگشای پروتکل کنترل از راه دور RC5 بدون کتابخانه: قبل از رمزگشایی rc5 ابتدا بحث می کنیم که دستور rc5 چیست و ساختار آن چگونه است. بنابراین اساساً دستور rc5 در کنترل از راه دور که در تلویزیون ها ، پخش کننده های سی دی ، d2h ، سیستم های سینمای خانگی و غیره استفاده می شود استفاده می شود و دارای 13 یا 14 بیت مرتب شده در یک
نحوه برنامه ریزی رمزگشای IR برای کنترل موتور AC چند سرعته: 7 مرحله
نحوه برنامه ریزی رمزگشای IR برای کنترل موتور AC چند سرعته: موتورهای جریان متناوب تک فاز معمولاً در وسایل خانه مانند پنکه ها یافت می شوند و هنگام استفاده از تعدادی سیم پیچ گسسته برای سرعتهای تنظیم شده ، سرعت آنها را می توان به راحتی کنترل کرد. در این دستورالعمل ما یک کنترلر دیجیتال می سازیم که
رمزگشای IR IR با استفاده از ARDUINO .: 4 مرحله (همراه با تصاویر)
رمزگشای دور IR با استفاده از ARDUINO: این یکی دیگر از آموزشهای کاربر پسند برای ساخت یک رمزگشای IR بسیار ساده از راه دور با استفاده از گیرنده آردوینو و IR است. این آموزش همه چیز را از راه اندازی نرم افزار گرفته تا استفاده از گیرنده IR و رمزگشایی سیگنال ها را پوشش می دهد. اینها
رمزگشای کنترل از راه دور IR با استفاده از آردوینو: 7 مرحله
رمزگشای کنترل از راه دور IR با استفاده از آردوینو: سلام بر سازندگان ، این یک آموزش کامل در مورد نحوه رمزگشایی هر کنترل از راه دور IR است. فقط مراحل زیر را دنبال کنید