سرخط خبرها
خانه » avr » آموزش avr » Touch screen-صفحه لمسی-تاچ اسکرین

Touch screen-صفحه لمسی-تاچ اسکرین

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

چرا ؟

چون صفحه لمسی داره و به قول معروف کلاس داره

حالا اگر شما میخواهید یک دستگاهی بسازید که با تکنولوژی روز ساخته شده باشه و دارای صفحه لمسی باشه می تونید به راحتی این کار را انجام دهید و دستگاه تان را سریع به فروش برسانید و کلی کلاس بگذارید که صفحه لمسی داره و …

در این قسمت به شما یک صفحه لمسی را معرفی می کنیم که اندازه ان به اندازه یک ال سی دی گرافیکی ۱۲۸*۶۴ می باشد.

که بر روی Glcdقرار می دهید و با فشار دادن صفحه ( اگر با قلم های مخصوص این کار را انجام بدید خیلی بهتر است که این خود دلایلی دارد) می تونید کار خود را انجام بدهید و به دستگاه دستور بدهید.

نا گفته نماند که این صفحات لمسی دارای اندازه های مختلف می باشد که در این جا فقط به یک نمونه اشاره می شود.

در زیر شکلی از این Touch screen اورده شده است.

touch20screen-yazdkit-com

این نوع صفحه لمسی دارای ۴ سیم می باشد که به وسیله دو سیم میانی می توان مختصات x وy نقطه فشار داده شده بر روی صفحه را بدست اورد لازم است که بگوییم خروجی x و y به صورت ولتاژ می باشد که بسته به نوع موقعیت مکان فشار داده شده به صفحه، ولتاژ خروجی تغییر می کند که برای بدست اوردن مختصات باید این دو خروجی را به A/D میکرو بدهید.

برای این که بتوانیم مختصات نقطه x را بدست اوریم باید به صفحه به صورت زیرسیم های تغذیه را وصل نماییم

touch20screen-yazdkit-com203

سپس برای این که بتوانید مختصات Y را بدست اوردید باید شکل دادن تغذیه به پایه ها را تغییر دهید و به صورت زیر وصل نمایید.

touch-screen-yazdkit-com-4

باید عمل تغییر دادن ولتاژ پایه ها برای بدست اوردن X ,Y سریع صورت گیرد به همین دلیل نمی توان به طور دستی این کار را انجام داد و باید با میکرو این عمل را انجام دهید.

اگر به دو عکس با لا با دقت توجه کرده باشید می بینید که در دو صورت یکی از پایه ها باید HI-Z (های امپدانس) باشد.

برای این که بتوانید با میکرو این حالت را به وجود اورید باید به صورت زیر عمل نمایید.(این دستور برایAVR و به زبان بیسیک می باشد ).باید برای به وجود اوردن این حالت پینی که به این پایه متصل شده است را به عنوان ورودی در نظر گرفته و سپس ان را RESET نمایید.

به عنوان مثال:

Config Porta.0 = input

Reset Porta.0

در مورد تغذیه هم که می توانید ان را به ۵ ولت وصل نمایید.

در شکل زیر طریقه وصل کردن صفحه لمسی به میکرو ATMEGA 32 کشیده شده است.

touch20screen-yazdkit-com201-1

اما باز هم اگر دقت کرده باشددر دو حالت اتصال نقاط VCC و GND و همچنین HI-Z یکی نمی باشد برای این که سریع حالت پایه ها را برای بدست اوردن نقطه X تنظیم کنید وسپس حالت پایه ها برای بدست اوردن نفقطه Y تغییر دهید باید به صورت زیر عمل کنید که به زبان بیسیک نوشته شده است.

Config Porta.0 = Output

Config Porta.1 = Input

Config Porta.2 = Output

Config Porta.3 = Input

Set Porta.0

Reset Porta.1

Reset Porta.2

Reset Porta.3

X = Getadc(1)

X = X / 4

Waitms 10

Config Porta.0 = Input

Config Porta.1 = Output

Config Porta.2 = Input

Config Porta.3 = Output

Reset Porta.0

Set Porta.1

Reset Porta.2

Reset Porta.3

Y = Getadc(2)

Y = Y / 8

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

حالا نوبت به lcd گرافیکی می رسد.در این جا نحوه ارتباط دهی ۲ ال سی دی گرافیکی با میکرو توضیح می دهیم که یکی از ان ها به شماره Ts-12864A-2است و دیگری به شماره KXM12864J-3 می باشد که هر دو ان ها از چیپ KS0108 ساخته شدهاند و همچنین چیدمان پایه ها کاملا مثل هم است و می توان گفت که یکی هستند.

قبلا در همین سایت (یزد کیت دات کام) پروژه ایی با GLCD قرار داده شده بود که به خوبی هم کار می کند ولی شاید شما ان را ساخته باشید جواب نگرفته باشید چون در نقشه ایی که با پروتیوس کشیده شده بود طریقه چیدمان پایه ها در فایل پروتیوس با چیدمان پایه ها در ال سی دی گرافیکی با هم تفاوت داشت که این عیب ناشی از ضعیف بودن کتابخانه پروتیوس می باشد و کسی در این میان مقصر نمی باشد.

در زیر عکسی اورده شده است که پایه های ال سی دی گرافیکی را نوشته است که چیدمان پایه ها مانند چیدمان پایه ها در ال سی دی گرافیکی واقعی می ماند.

touch-screen

touch20screen-yazdkit-com202

با دستور زیر lcd گرافیکی را در avr مشخص می کنیم.

hwstack = 32

swstack = 10

framesize = 40

$lib “glcdKS108.lib”

Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portc , Ce = 0 , Ce2 = 1 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5

در دستور بالا ce نوشته که csb است

Ce2 که csa است

Cd که d/I است

Rd که r/w است

Reset که res است

Enable که باید به e وصل شود.

برای دریافت نقشه کامل طریقه اتصال  TOUCH SCEEEN فایل زیر را که در قالب PDF است را دانلو نمایید.

دانلود “نقشه اتصال touch screen” touch-screen.pdf – Downloaded 10187 times – 7 KB

برای این که کاربران بتوانید به راحتی مدار خود را بسازید برنامه نوشته شده به زبان بیسیک را برایتان اماده کرده ایم که خودم شخصا استفاده کرده ام و به خوبی هم جواب گرفته ام در ضمن باید برنامه را با بسکام ورژن ۱٫۱۱٫۹٫۰ باز بکنید .

دانلود “برنامه و سورس touch screen” glcd-yazdkit.com.zip – Downloaded 7690 times – 19 KB

لازم به ذکر است که بگویم تغذیه کل مدار ۵ ولت می باشد و همچنین پایه های تغذیه ای سی ATMEGA32 به این صورت می باشد که پایه ۱۰ای سی را به۵ ولت پایه ۱۱ را به زمین وصل نمایید.

همچنین ببینید

ساخت دور سنج با استفاده از سنسور اثر هال UGN3503

در چندین پست قبلی سنسور اثر هال Ugn3505  معرفی گردید که میتوانید جهت دیدن ان ...

۷۹ دیدگاه

  1. سلام از سایت خوبتون ممنون خسته نباشید از سایت ماهم دیدن بفرمایید http://www.daydeal.ir

  2. خیلی ممنون بالاخره راه افتاد
    فقط دوستان دقت کنند اگه AREF و AVCC رو به VCC وصل نکنند پورت A و خصوصا ADC کار نخواهد کرد و مثل من سردرگم خواهند شد. البته اگه به مگا۱۶ و ۳۲ وصل می کنید این مشکل پیش میاد مگا۸ نیازی به وصل کردن اینا نداره. شما واسه رضای خدا وصل کنید کاری به حرف من نداشته باشید

  3. ممنون این مطالب باعث شد تا بتونم با میکرو ARM STM32F4 صفحه رو راه اندازی کنم
    اگه لازم بود بگین همینجا کدش را بزارم

  4. آقا دمتون جزغاله:)
    خیلی باحالی از این بهتر نمیشد توضیح داد . مشکل ما که حل شد

  5. salam
    saitetun aaliye.
    man bayad dar morede anvae lcd haye tach tahghigh konam dar vaghe bayad anvae lcd haye tacho nam bebaram va dar morede yekish tozih bedam mishe komakam konin.
    mamnun

پاسخ دهید