اطلاعیه

Collapse
No announcement yet.

ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

    سلام دوستان !

    من می خواهم یک کی برد با 96 کلید بسازم .
    هرچه گشتم و مطالعه کردم مطلب خیلی شفافی از نحوه اسکن کردن کیبرد های ماتریسی نیافتم . :angry:
    می خوام این کار را بااستفاده از AVR انجام بدم .
    اگر کسی راهنمائی کنه واقعاً ممنون می شم .

    ضمناً من با Protel DXP 2006-7 زیاد کار کردم اگر کسی خواست خوشحال می شم که راهنمائیش کنم .

    #2
    پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

    خوب نحوه کار کیبورد های ماتریسی در درس معماری کامپیوتر کامل توضیح داده میشه
    در قسمت Avr هم چند پروژه که توشون اسکن کی بورد انجام شده وجود داره که می تونید استفاده کنید...
    شما دقیقا کجای کار رو اشکال دارین؟ کلا محوه اسکن کردن ماتریس 4*4 و بالاتر ...؟
    I ❤️ ECA

    دیدگاه


      #3
      پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

      سلام
      12 ستون و 8 سطر در نظر می گیرید . با توجه به مراحل زیر هم عمل کنید میشه این کارو انجام داد :
      1 - در نظر گرفتن 3 پورت میکرو واسه اسکن کردن پایه ها (البته 2 پورت کامل و یک پورت به صورت نیمه) که 1ستون ها به دو پورت و سطر ها نیز به یک پورت اتصال داده بشه .
      2- پایه هایی که مربوط به سطرها هست به عنوان ورودی و پایه هایی که به عنوان ستون ها هست به عنوان خروجی تعریف بشه .
      3 - در نظر گرفتن یک شمارنده 1 تا 12 (یا 0 تا 11) واسه فعال کردن ستون ها *
      4 - قرار دادن مقدار شمارنده بر روی دو پورت متصل به ستون ها تا ستون مورد نظر فعال شود .
      5 - چک کردن وضعیت سطرها که اگه سطری وضعیتش فرق کرده باشه به این معناست که کلیدی زده شده که پس از این مرحله برنامه باید به زیر برنامه تشخیص کلید زده شده رفته تا با توجه به مقدار درون شمارنده و سطری که وضعیتش تغییر کرده بود ، موقعیت دقیق کلید شناسایی بشه .
      6 - اگر در مرحله قبل وضعیت سطری تغییر نکرده بود (کلیدی زده نشده بود) ، پس از یک تاخیر کوتاه که معمولا در حد 200 میلی ثانیه می تونه باشه ، یک واحد به شمارنده اضافه میشه و به ابتدای برنامه پرش میشه (به مرحله 4 پرش بشه) . این اضافه شدن به خاطر این هست که این بار ستون بعدی فعال بشه تا بشه وضعیت سطرهای مربوط به اون رو چک کرد .


      * تو چک کردن صفحه کلید ماتریسی ابتدا یک به یک ستون ها رو فعال می کنن و پس از اون با استفاده از چک کردن وضعیت سطر ها ؛ فشرده شدن کلید تشخیص داده میشه .

      باقی مراحل مانند تنظیمات لرزشگیر و یا ... در مراحل بعدی انجام میشه .
      به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

      دیدگاه


        #4
        پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

        دوست عزیز خیلی از راهنمائی شما متشکرم .
        من قبلاً این برنامه ای که شما می گوئید را تست کردم .
        البته برای ماتریس های کوچک کاملاً حق با شماست و شدنی
        اما من دنبال برنامه و یا راه حلی هستم که بتونه چند کلید فشرده شده با هم رو هم ببینه
        مثل نگه داشتن شیفت و یا کنترل !
        اما حق با شماست متعارف ترین روش اسکن همین روش شیفت دادن است . برای کلیدهای مدیفای مثل شیفتو اینا هم فکر کنم بهترین کار فلگ کردنه اونا باشه .
        باز هم از اینکه جواب دادید بسیار سپاس گذارم

        دیدگاه


          #5
          پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

          با سلام
          توی یکی از بخش ها در مورد دیکد کردن کی بوردهای n سطر در m ستون توسط پروتکل ارتباط تک سیمه آنالوگ بحث شد
          خوب شما می تونی از اون استفاده بکنی اگه چند تا کلید با هم هم فشرده بشه میشه اون رو تشخیص داد

          توی اون روش سطر و ستون های مقاومت دارند و با فشرده شدن هر کلید دو سر اتصال کی بورد تغییر مقاومت مبده که اون رو میشه با آشکار سازی فرکانسی یا با استفاده ازADC آشکار سازی کرد
          حالا وقتی چند تا کلید با هم فشرده میشه این مقاومت مقدار خاصی داره که شما می تونید برای اون مقدار که معادل اون کلیده یه عمل خاصی رو تعریف بکنید
          البته این یه مشکلی داره اونم اینکه اونوقت با روی مقادیر خاصی از مقاومت ها محاسبات رو انجام بدی یا ممکنه توی چند قسمت فشرده شدن چند تا کلید توی مکانهای مختلف مقدار مقاومت یکسانی رو ایجاد بکنه
          پس این روش رو بی خیال :redface: :cry:

          دیدگاه


            #6
            پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

            5*40 رو با PIC تست کردم مشکلی نداشت . بالاتر هم فکر کنم با توجه به سرعت بالاتر AVR ، بشه پیاده کرد . اما مشکل همون هست که فشرده شدن چند کلید رو نمیشه همزمان تشخیص داد .
            کلید هایی که همزمان فشرده بشن هم یه جورایی تشخیص داده میشن . اما فقط کلید هایی که تو یک ستون باشن oo:
            به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

            دیدگاه


              #7
              پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

              نوشته اصلی توسط (حامد مظاهری)irmicro
              کلید هایی که همزمان فشرده بشن هم یه جورایی تشخیص داده میشن . اما فقط کلید هایی که تو یک ستون باشن oo:
              درسته

              من پیشنهادی که دارم اینه که 2 تا ماتریس طراحی کنید یعنی بعضی کلید هارو با یک پورت دیگه چک کنید اینطوری میشه 2 تارو باهم سنس کرد
              I ❤️ ECA

              دیدگاه


                #8
                پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

                با سلام :

                از همه دوستان که به سوال بنده حسن نظر دارند بسیار متشکرم .
                در مورد نحوه دکود کردن سخت افزاری ، راستش یک IC هست که تا 64 کلید یعنی ماتریس 8*8 را می تواند اسکن کند !
                شاید اگر در نهایت خیلی مشکل در نوشتن برنامه داشتم از 2 تا از این آی سی با هم استفاده کردم .
                اما از آنجا که Device که دارم طراحی مکینم با باطری کار میکنه استفاده از 2 آی سی کار کاملاً غلطیه پس فکر کنم چاره ای جز نوشتن یک برنامه سنگین نباشه ! :angry:
                ضمناً برنامه کنترلر داخل کی برد کامپیوتر هم بدردم می خوره
                اگر کسی بتونه اونم بهم برسونه میتونه خیلی مفید باشه

                باز هم از همگی تشکر مخصوص می کنم .

                دیدگاه


                  #9
                  پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

                  یه سوتی حسابی دادم . می خواستم بزنم 5*8 یعنی همون 40 ، زدم 5*40 یعنی 200 کلید
                  به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

                  دیدگاه


                    #10
                    پاسخ : ساختن کیبرد ماتریسی با 96 کلید یعنی ماتریس 12*8 با AVR

                    سلام
                    این صفحه کلید شما مثل صفحه کلید کامپیوتر هست؟؟؟
                    نمیتونید از صفحه کلید کامپیوتر استفاده کنید؟؟؟
                    اگر صفحه کلید شما خاص هست میتونید دیکدری که توی صفحه کلیدهای کامپیوتر هست رو باز کنید و استفاده کنید!!
                    در دیر مغان آمد یارم قدحی در دست
                    مست از می می خواران از نرگس مستش مست

                    دیدگاه

                    لطفا صبر کنید...
                    X