فهرست مطالب:

سنسور لمسی مقاوم در برابر 5 سیم: 10 مرحله
سنسور لمسی مقاوم در برابر 5 سیم: 10 مرحله

تصویری: سنسور لمسی مقاوم در برابر 5 سیم: 10 مرحله

تصویری: سنسور لمسی مقاوم در برابر 5 سیم: 10 مرحله
تصویری: یک تیغ ریش را پشت موبایل خود بگذارید ببینید چه اتفاقی میوفته 2024, نوامبر
Anonim
سنسور لمسی مقاوم در برابر 5 سیم
سنسور لمسی مقاوم در برابر 5 سیم

سلام سلام!

مدتی است که روی این سایت کار می کنم و به نظر می رسد خیلی چیزها تغییر کرده است! من بالاخره آماده هستم تا برای پروژه ای دیگر پشت فرمان برگردم و فکر می کنم زمان آن رسیده است که خودم کمی اوضاع را تغییر دهم!

مدتی بود که پروژه ای را بر اساس صفحه و توپ 271828 در نظر داشتم ، اما چیزهای زیادی برای یادگیری سنسورها و نظریه کنترل قبل از اتمام آن دارم. من فکر می کردم تا زمانی که یک یا دو چیز را یاد می گیرم ، ممکن است شما را با خود همراه کنم!

به این منظور ، هدف من از این آموزش ها نوعی ترکیبی بین آموزش های صیقلی تر من و رکوردی برای خود پروژه خواهد بود. هر آموزش فردی یک قدم در آن سفر خواهد بود و شامل جزئیاتی است که در گذشته به آنها اشاره کرده ام مانند توسعه کد (به جای کد تکمیل شده) و گام های اشتباه که در طول راه بر می دارم.

من برای این پروژه جدید بسیار هیجان زده هستم و مشتاق هستم تا ببینم چقدر خوب کار می کند!

امروز ما فقط می خواهیم یک پنل لمسی 5 وای ساده با DP-32 کار کنیم.

بیایید شروع کنیم!

مرحله 1: آنچه شما نیاز دارید

آنچه شما نیاز دارید
آنچه شما نیاز دارید

از آنجا که این آموزش در مورد کارکردن یک سنسور واحد است ، فراتر از یک میکروکنترلر و صفحه لمسی به چیزهای زیادی احتیاج ندارید.

  • یک میکروکنترلر

    من از DP32 خود با صفحه نان داخلی استفاده می کنم زیرا نمونه سازی را فوق العاده ساده می کند

  • انواع سیم و کابل.

    من می توانستم از کابل روبان داخلی صفحه لمسی استفاده کنم ، اما اگر پاره شود ، کل صفحه بی فایده است. در عوض ، من از کابل 6 سیم برای کاهش فشار بر روی کابل داخلی استفاده می کنم

  • صفحه لمسی مقاومتی 5 سیمه!

    من یک صفحه لمسی مقاومتی 4 سیم داشتم ، اما کابل روبان آن شکست

و بس!

مرحله 2: صفحه لمسی مقاومتی 5 سیم چیست؟

صفحه لمسی مقاومتی 5 سیم چیست؟
صفحه لمسی مقاومتی 5 سیم چیست؟
صفحه لمسی مقاومتی 5 سیم چیست؟
صفحه لمسی مقاومتی 5 سیم چیست؟
صفحه لمسی مقاومتی 5 سیم چیست؟
صفحه لمسی مقاومتی 5 سیم چیست؟

اگر آموزش پانل لمسی 4 سیم من را مطالعه کرده باشید ، با ایده کلی سنسور لمسی مقاومتی آشنا هستید ، اما پانل های 5 سیم و پنل های 4 سیم کمی متفاوت عمل می کنند.

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

در تصویر دوم ، ما دو سیم از چهار سیم (بالا-راست و پایین-راست) را روی ولتاژ بالا تنظیم کرده ایم (با رنگ قرمز نشان داده می شود) ، در حالی که دو سیم دیگر (بالا-چپ و پایین-چپ) روی کم تنظیم شده اند. ولتاژ (به رنگ آبی نشان داده شده است). این باعث ایجاد یک گرادیان ولتاژ در کل صفحه می شود. در این حالت ، گرادیان در امتداد محور X می رود ، بنابراین ولتاژ بالاتر نشان دهنده موقعیت بالاتر در امتداد محور X است.

وقتی انگشت خود را به پنل لمس می کنیم ، سنسور انعطاف پذیر را فشار می دهد و به جایی در امتداد شیب محور X متصل می شود. سنسورهای ولتاژ روی میکروکنترلر ما می توانند این ولتاژ را حس کرده و به شما بگویند انگشت شما در کدام قسمت محور X لمس می کند!

در تصویر سوم ، نحوه تغییر پیکربندی را مشاهده می کنید تا به ما اجازه دهد در امتداد محور Y حس کنیم. به این ترتیب ، می توانیم بگوییم انگشت ما در کجا در فضای دو بعدی لمس می کند!

مرحله 3: سیم کشی

سیم کشی
سیم کشی
سیم کشی
سیم کشی

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

البته سیم کشی شما ممکن است متفاوت باشد ، اما سیم کشی من به شرح زیر است:

0 آنالوگ (پین 6) به سنسور (پین وسط) متصل می شود

دیجیتال 3 به بالا سمت راست (بالاترین پین) متصل می شود

Digital 2 به بالا-چپ وصل می شود (دومین پین بالا)

دیجیتال 1 به پایین-چپ وصل می شود (دومین پین پایین)

0 دیجیتال به پایین راست (پایین ترین پین) متصل می شود

باز هم شایان ذکر است که من از یک کابل 6 سیم برای عبور بین میکروکنترلر و پنل استفاده می کنم. من پین بالای این کابل را وصل نکرده ام.

مرحله 4: توسعه نرم افزار

توسعه نرم افزار
توسعه نرم افزار

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

طبق معمول ، از Arduino IDE با هسته Digilent استفاده خواهم کرد. هر بخش شامل یک فایل کد ، اسکرین شات ، و همچنین شرح اضافات و آنچه که ما در تلاش برای دستیابی به آن هستیم ، خواهد بود.

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

مرحله 5: چشمک زدن حالت دولتی

چشمک زدن دستگاه دولتی
چشمک زدن دستگاه دولتی

اولین حرکت من تغییر عملکرد پلک زدن از یکی بر اساس "تاخیر ()" به یک ماشین حالت است.

برای کسانی که از دستورات سوئیچ استفاده نمی کنند ، مانند دستور if عمل می کند. این یکی (در کادر نارنجی) متغیر "حالت" ما (که از 0 شروع می شود) را آزمایش می کند. سپس برای حالت فعلی ما به مورد می پردازد. خواهید دید که مورد 0 و 2 مسئول روشن و خاموش کردن LED (به ترتیب) هستند ، در حالی که مورد 1 و 3 مسئول انتظار بین کلیدها هستند.

مرحله 6: چشمک زدن دکمه

چشمک زدن دکمه
چشمک زدن دکمه
چشمک زدن دکمه
چشمک زدن دکمه
چشمک زدن دکمه
چشمک زدن دکمه

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

حالت دوم "انتظار" را نیز حذف کردم. این بدان معناست که دکمه چراغ را برای یک ثانیه روشن می کند و می توانید بلافاصله پس از خاموش شدن دوباره آن را فشار دهید.

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

مرحله 7: ارتباط سریال

ارتباط سریال
ارتباط سریال
ارتباط سریال
ارتباط سریال

این به روز رسانی بسیار کوچک است. تنها کاری که می خواستم انجام دهم ایجاد ارتباط سریال و ارسال پیام بود. در تصویر اول ، می بینید که من Serial را در تابع setup () شروع می کنم. در داخل دستگاه دولتی ما ، خطوطی را به حالتهای 1 و 3 اضافه کردم که پیامهای ساده را از طریق سریال به کامپیوتر ارسال می کند.

مرحله 8: مختصات خواندن

مختصات خواندن
مختصات خواندن
مختصات خواندن
مختصات خواندن
مختصات خواندن
مختصات خواندن
مختصات خواندن
مختصات خواندن

خوب است که آخرین مرحله آسان بود ، زیرا این مرحله دزدی بود.

برای شروع ، متغیرهایی را برای صفحه لمسی ما اضافه کرده ام ، از جمله برخی از متغیرهای زمان اختصاصی برای صفحه لمسی و دکمه ما. دلیلش را کمی بعد خواهید دید

من کاملاً حالت دولت را دوباره نوشتم. نگاه کردن به کد کمی گیج کننده است ، بنابراین من یک بلوک دیاگرام قرار داده ام که باید نشان دهد چه کار شده است.

مواردی که باید به آنها توجه کنید: اکنون سه مرحله "انتظار" وجود دارد. یکی برای هر پیکربندی صفحه لمسی ، اجازه می دهد تا ولتاژها قبل از اندازه گیری تنظیم شوند ، و یکی به دکمه زمان می دهد تا به درستی خارج شود. این مراحل انتظار به همین دلیل است که من می خواستم به دکمه و صفحه لمسی متغیرهای زمانی خاص خود را بدهم.

توجه: ممکن است ثابت DEBOUNCE_TIME کمی پایین باشد. با خیال راحت آن را افزایش دهید.

مرحله 9: تمیز کردن

تمیز کردن
تمیز کردن
تمیز کردن
تمیز کردن
تمیز کردن
تمیز کردن

ما به نسخه نهایی کد این پروژه رسیدیم!

برای شروع ، من یک تابع به نام loop_diff () برای محاسبه زمان سپری شده اضافه کرده ام. ساعت داخلی DP32 بدون علامت طولانی است و اگرچه بسیار بعید است ، اما این احتمال وجود دارد که ساعت در زمان اجرای این کد*حلقه شود. در این صورت ، به سادگی زمان فعلی را از زمان ذخیره شده در زمان btn_time یا panel_time چیزهای عجیب و غریبی به ما می دهد ، بنابراین من loop_diff () را برای تشخیص زمان وقوع حلقه ها نوشتم و بر این اساس رفتار کنم.

من کمی تمیزکاری جزئی نیز انجام داده ام. من متغیر "state_time" که اکنون استفاده نشده است را حذف کردم. من از برچسب LED_BUILTIN (که استاندارد آردوینو است) به تگ PIN_LED1 (که استاندارد chipKit و DP32 است) تغییر کرده ام. من همچنین تمام پیام های مربوط به شروع و پایان روند را از طریق سریال حذف کرده ام ، که باعث می شود داده های ما از طریق سریال بسیار تمیزتر شود.

*من سالها پیش ریاضیات را انجام دادم و فکر می کنم برای تابع millis () چیزی در حدود یک هفته زمان اجرای ثابت طول می کشد تا متغیر حلقه شود.

مرحله دهم: اندیشه های نهایی

افکار نهایی
افکار نهایی

و بس!

اگر این کار را دنبال کرده اید ، اکنون باید یک پنل لمسی کارکرده به میکروکنترلر خود متصل کرده باشید! این یک پروژه کوچک بود ، اما بخشی از یک پروژه بزرگتر است. من در حال کار بر روی چیزی مانند بشقاب و توپ 271828 هستم و تا این اتفاق بیافتد راه زیادی در پیش دارم. من سعی می کنم شما را در تمام مراحل همراهی کنم و هر قسمت باید پروژه کوچک خود باشد.

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

ممنون ، و دفعه بعد می بینمت!

توصیه شده: