آردوینو پروژه های آردوینو

آموزش ساخت صفحه نمایش لمسی با آردوینو + سورس برنامه

touchscreen
نوشته شده توسط علیرضا قربانی

آموزش ساخت صفحه نمایش لمسی به وسیله آردوینو arduino

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

در واقع پنل Nintendo DS ، یک صفحه‌ی مقاومتی است که با ‌لمس هر نقطه‌ای از صفحه‌ی نمایش ، یک مقدار ولتاژ بر روی خروجی آن ظاهر می‌شود و ما با خواندن مقدار آنالوگ آن به وسیله‌ی هر میکروکنترلی مانند آردوینو می‌توانیم مکان لمس شده را پیدا کنیم. در ادامه‌ی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

 

تجهیزات مورد نیاز

بورد آردوینو( تمامی مدل‌ها قابل استفاده هستند)

صفحه تاچ مقاومتی ( به زودی در فروشگاه موجود می‌شود)

 

اتصالات صفجه تاچ به آردوینو

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

آموزش ساخت صفحه نمایش لمسی
آموزش ساخت صفحه نمایش لمسی

 

اگر در تعجب هستید که +/-  مقاومت‌ها کجا  هستند… نگران نباشید. فقط ۴ پین را مطابق شکل فوق به آردوینو متصل کنید. حال برای کد نویسی آماده هستید. روش کار به این صورت است که در حفیفت + و – پین‌ها بر اساس چیزی‌ است که کد‌ها معین می‌کنند.

 

همانطور که مشاهده ‌می‌کنید ، صفحه‌ی تاچ دارای دو عدد پین به نام X1 و X2 برای محور افقی و دو عدد پین به نام Y1 و Y2 برای محور عمودی می‌باشد. پس در ابتدای برنامه ۴ متغیر برای نسبت دادن پین‌های صفحه تاچ به آردوینو تعریف می‌کنیم:

 

طریقه‌ی خواندن مقادیر به این صورت است که هرگاه بخواهیم مقدار لمس شده در راستای محور X را پیدا کنیم ، باید پین‌های متصل به X را به صورت خروجی تعریف ‌کنیم و پین‌های متصل به Y را به صورت ورودی تعریف کنیم. سپس X1 را در حالت HIGH  یعنی همان ۵ ولت و X2 را در حالتLOW  یا همان ۰ صفر ولت قرار دهیم و سپس مقدار Y1 را به صورت آنالوگ بخوانیم. برای خوانایی بهتر برنامه دراین قسمت یک تابع  به صورت زیر به نام readX تعریف می‌کنیم:

 

 

همچنین به صورت مشابه هرگاه بخواهیم مقدار لمس شده در راستای محور Y را پیدا کنیم ، باید پین‌های متصل به Y را به صورت خروجی تعریف ‌کنیم و پین‌های متصل به X را به صورت ورودی تعریف کنیم. سپس Y1 را در حالت HIGH  یعنی همان ۵ ولت و Y2 را در حالتLOW  یا همان ۰ صفر ولت قرار دهیم و سپس مقدار X1 را به صورت آنالوگ بخوانیم. برای خوانایی بهتر برنامه دراین قسمت یک تابع  به صورت زیر به نام readY تعریف می‌کنیم:

 

در نهایت تابع‌هایی که تعریف کردیم را در loop برنامه به کار می‌بریم:

 

 

درباره نویسنده

علیرضا قربانی

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

دیدگاهتان را بنویسید