কেবলমাত্র 8 টি তারের সাথে 16 টি বোতাম কীভাবে সংযুক্ত হতে পারে?


9

এখানে পণ্য। আমি ধারণাটি বুঝতে পারি: এই 16 টি বোতাম 4x4 ম্যাট্রিক্স ব্যবহার করে। সারিগুলির জন্য 4 টি লাইন, কলামগুলির জন্য 4 লাইন এবং আমাদের কাছে 8 টি কেবল রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

কিন্তু:

  1. কোনও মাল্টিপ্লেক্সার ছাড়া এটি কীভাবে কাজ করতে পারে?

  2. এটি কি একাধিক বোতামের সঠিক প্রেসগুলি সনাক্ত করতে পারে? এমনকি যদি বোতামগুলি একই সারি বা একই কলাম ব্যবহার করে? উদাহরণ: পজিশনে বোতামগুলি (2,2) (2,3), (3,2), এবং (3,3) একই সময়ে চাপা হয়েছে।

  3. এটা কিভাবে কাজ করে?


7
আপনি 'কিপ্যাড মাল্টিপ্লেক্সিং' বা এর মতো লিঙ্কের জন্য গুগল অনুসন্ধানের সাথে এটি সাধারণ জ্ঞান। আপনি এই পোস্ট করার আগে, প্রথম যে চেষ্টা না?
টনিএম

3
@ টনিএম অবশ্যই আমি করেছি, অনেকগুলি অনুসন্ধান এবং আমি কিছু মাল্টিপ্লেক্সার চিপস 74HC164 অর্ডার করেছি যা কিছুদিন আগে বাড়িতে এসেছিল। যখন আমি এটি পেয়েছি তখন আমি এই মাল্টিপ্লেক্সার চিপ দিয়ে সমস্ত কিছু টেলিগ্রাম করতে যাচ্ছিলাম। তখন আমি ভাবছিলাম "কোনও মাল্টিপ্লেক্সার ছাড়া এটি কীভাবে কাজ করবে"?
বসজ

1
বাম দিকের ডিভাইসটির ভিতরে অবশ্যই মাল্টিপ্লেক্সিংয়ের একটি কোড থাকতে হবে
মার্সেলো এস্পিনোজা ভার্গাস

3
@ টনিএম আমাকে এটি দেখানোর জন্য ধন্যবাদ। আপনি কি রহস্য তৈরির পরিবর্তে পিডিএফ লিঙ্ক করতে পারেন;)? হতে পারে আমি কীপ্যাড ইত্যাদির চেয়ে অন্য কীওয়ার্ডগুলি দিয়ে অনুসন্ধান করেছি এবং সম্ভবত আমি এটির সন্ধান করিনি।
বাসজ

1
@ বাসজ: একাধিক প্রেস থাকা কোনও সমস্যা নয়। আপনি একের পর এক চারটি লাইন স্ক্যান করুন। যদি 1 টি লাইনে একটি বোতাম টিপানো পাওয়া যায়, আপনি এটি নোট করুন। এটি যখন লাইন 3 এ আসে, আপনি সেখানে অন্য একটি বোতাম টিপে দেখতে পেয়েছেন, আপনি এটিও নোট করুন। শেষ পর্যন্ত, আপনি উভয় বোতাম পাবেন। যতক্ষণ আপনি লোকেরা বোতাম টিপতে পারে তার চেয়ে বেশি দ্রুত স্ক্যান করতে সক্ষম হবেন, আপনি এটি মিস করবেন না।
গ্যাবার

উত্তর:


24
কোনও মাল্টিপ্লেক্সার ছাড়া এটি কীভাবে কাজ করতে পারে?

এটা হয় না। কীপ্যাড বোর্ডের মনে হচ্ছে কেবল স্যুইচ রয়েছে, কিছু ডায়োড সহ আমরা দেখতে পাচ্ছি না। তবে বাম বোর্ডটি মনে হচ্ছে এটিতে এটিতে একটি প্রসেসর রয়েছে। প্রায় অবশ্যই, ফার্মওয়্যারের মাধ্যমে মাল্টিপ্লেক্সিং করা হচ্ছে।

মাল্টিপ্লেক্সিং অ্যালগরিদম এরকম কিছু কাজ করে:

  1. এক সারি উঁচু গাড়ি চালান, অন্যরা কম থাকে।

  2. কলাম লাইনে প্যাসিভ পুলডাউনগুলি সক্ষম করুন।

  3. দেখুন কলামের লাইনগুলি বেশি। একটি দৃserted় সারি রেখা যুক্ত কলামের লাইনের ছেদগুলিতে বোতামগুলি টিপছে। এই সারির অন্যান্য বোতামগুলি প্রকাশিত হয়েছে।

  4. পরের সারিটি ধারাবাহিকভাবে জোর দিয়ে এক ধাপে ফিরে যান।

উপরের প্রক্রিয়াটি যথেষ্ট দ্রুত পুনরাবৃত্তি হয়েছে যাতে সমস্ত বোতামগুলি এমন সময়ের মধ্যে পরীক্ষা করা হয় যা এখনও কোনও মানব পর্যবেক্ষকের কাছে তাত্ক্ষণিক মনে হয়। এই প্রসঙ্গে "তাত্ক্ষণিক" মানুষের সীমা প্রায় 50 এমএস। এমনকি একটি নিম্ন প্রান্তের মাইক্রোকন্ট্রোলারও এর চেয়ে কম সময়ে 4x4 কিপ্যাড স্ক্যান করতে পারে।

এটি কি একাধিক বোতামের সঠিক প্রেসগুলি সনাক্ত করতে পারে?

সম্ভবত হ্যাঁ. একটি উপায় হ'ল প্রতিটি বোতামের সাহায্যে সিরিজে একটি ডায়োড লাগানো। এগুলি আপনার প্রদর্শিত বোর্ডের নীচের দিকে থাকতে পারে। ডায়োডগুলি সহ, উপরে বর্ণিত অ্যালগরিদম কেবল কাজ করে।

আর একটি উপায় হ'ল রেজিস্ট্রিগুলিকে রেখাগুলির সাথে সিরিজে রেখে তাদের এনালগ ভোল্টেজ পরিমাপ করা। এমনকি একাধিক বোতাম একাধিক সারি / কলামের লাইন একসাথে সংক্ষিপ্ত করে রাখার পরে আপনি শেষ পর্যন্ত কোন বোতামটি টিপছেন তা নির্ধারণ করতে পারেন। এর জন্য মাইক্রোতে A / D ইনপুট প্রয়োজন, কেবলমাত্র ডিজিটাল ইনপুট নয় ডায়োডগুলি কখন ব্যবহৃত হয়।


1
ধন্যবাদ। একসাথে একাধিক প্রেস সম্পর্কে কি? দ্রষ্টব্য: বাম বোর্ডটি একটি রাস্পবেরিপি।
বাসজ

1
@ হাইমান কেন এমন হয়? আপনি কি একটি উদাহরণ দিতে পারেন? যখন ডায়োড নেই তখন কেন একই সময়ে (1,2), (2,2), এবং (3,3) চাপ দেওয়া হয়? আপনার যদি একটি ছোট স্কিমেটিকস থাকে? যেহেতু এই পয়েন্টটি সত্যই গুরুত্বপূর্ণ, সম্ভবত এটি একটি হাই ডেডিকেটেড উত্তরের জন্য উপযুক্ত?
বাস্জ

8
"1 টির জন্য বাম বোর্ড দেখে মনে হচ্ছে এটিতে একটি প্রসেসর রয়েছে"। ভাল লাগল।
এনরিক ব্লাঙ্কো

3
আপনি এটি খেললে @ বাসজ এটি সুস্পষ্ট। যখনই আপনি একটি বোতাম টিপুন, আপনি একটি কলামে একটি সারি সংযুক্ত করছেন। যখনই একটি সারি এবং একটি কলাম সংযুক্ত থাকে, ছেদ করার জন্য কীটি চাপ দেওয়া হিসাবে নিবন্ধভুক্ত হয়। তবে কমপক্ষে 3 টি কী চাপলে, একটি সারি এবং একটি কলাম পরোক্ষভাবে সংযুক্ত হতে পারে ।
hobbs

2
@ বাসজ এই ছবিটি দেখুন । লাল রেখাগুলি একটি যুক্তিযুক্ত উচ্চ স্তরের নির্দেশ করে। যদি আপনি 'এক্স' দিয়ে নির্দেশিত 3 টি বোতাম ধরে থাকেন তবে আপনি সেগুলি সন্ধান করতে পারেন এবং যে পথে সিগন্যালটি প্রবাহিত হবে তা দেখতে পারেন। প্রথমত সারি 1 টি নির্বাচিত হয় এবং উচ্চ সেট করা হয়, বোতাম 1,1 টিপে এটি প্রথম কলামটিকে উচ্চ করে তোলে। বোতামটি 1,2 টিপে আমরা এখন ২ টি উচ্চতর সারি তৈরি করেছি। এখন যদি আমরা সারি 2-তে অন্য কোনও বোতাম টিপুন তবে আমরা অন্য কলামটি উচ্চ করব। এটির সাথে সমস্যাটি হ'ল umb সি বোবা, এটি জানে যে এটি সারি 1 উচ্চ স্থাপন করেছে এবং এটি 3 কলামে একটি উচ্চ দেখায়, সুতরাং এটি বোতাম 1,3 উচ্চ বলে মনে করে
ডুডল

9

ডায়োড ব্যতীত ... আপনি ফ্যান্টম আয়তক্ষেত্রগুলি পাবেন।

উদাহরণস্বরূপ আপনার উদাহরণ (2,2) (2,3), (3,2), এবং (3,3); আপনি একটি আয়তক্ষেত্র নির্বাচন করে একটি বিড়ম্বনার উদাহরণ বেছে নিয়েছেন। আপনি যদি আসলে চারটি চাপুন, এটা কাজ করবে। তবে আপনি যদি আয়তক্ষেত্রের কোনও তিনটি কোণ টিপুন, চতুর্থ কোণটি টিপে প্রদর্শিত হবে, যদিও তা না।

এই কীপ্যাডটি স্পষ্টভাবে কীবোর্ড ডেটা প্রবেশের জন্য বোঝানো হয়েছে, যেখানে ব্যবহারকারীদের কনভেনশনগুলি একসাথে একটি কী কী থাকে। আপনি লক্ষ্য করেছেন যে কোনও গ্যাস স্টেশন ক্রেডিট কার্ড এন্ট্রি কীপ্যাডে কোনও "শিফট" কী নেই।

তবে, আপনি যদি এস 1 কে একটি শিফট কী এবং S3 একটি Alt-shift কী তৈরি করেন যাতে ব্যবহারকারীরা S13 টিপানোর সময় যুক্তিসঙ্গতভাবে উভয়কে ধরে রাখতে পারে, তবে এস 15 টি চাপতে দেখাবে।


1
প্রকৃতপক্ষে, বেশিরভাগ ডেটা এন্ট্রি কীবোর্ডগুলি একবারে 2 টির বেশি কী চাপবার উদ্দেশ্যে নয়, তাই কোনও সমস্যা নেই। মিউজিকাল কীবোর্ডগুলি অন্য গল্প, কারণ একসাথে অনেকগুলি কী চাপতে পারে। তাদের বেশিরভাগের প্রতিটি কীতে ডায়োড বা স্বতন্ত্র তারের থাকে। তবে আমি সেকেন্ড হ্যান্ড শপগুলিতে একটি মিউজিকাল কীবোর্ড পেয়েছি (দাম 9 ইউরোর) যা একাধিক কীগুলির জন্য একযোগে চাপার মতো উপযুক্ত অভিযোজন নেই, অপ্রত্যাশিত এবং বিরক্তিকর ফলাফল সহ!
স্তর নদী সেন্ট

কীউইচগুলি এমন কোনও ধরণের হতে পারে যা বিল্টিন ডায়োডযুক্ত থাকতে পারে বা তাদের নীচে ডায়োডগুলি লুকিয়ে থাকতে পারে।
রেক্যান্ডবোনম্যান

1

অবিচ্ছিন্ন স্ক্যান ছাড়াই এটি কীভাবে করা যায় তা এখানে:

  • সমস্ত ড্রাইভার উচ্চ করুন
  • লাইন প্রাপ্তিতে প্যাসিভ পুলডাউনগুলি সক্ষম করুন
  • উচ্চতর লাইনগুলির মধ্যে একটি (বা স্তর পরিবর্তন করে) সনাক্ত করতে পিন পরিবর্তন অন্তরায় সেট করুন
  • এটি হয়ে গেলে, কীপ্যাড স্ক্যান সক্ষম করুন, প্রতি 10 মিমি বলুন
  • সাধারণত স্ক্যান করুন এবং কী চাপুন process
  • ইভেন্টগুলি ছাড়াই সময়সীমা শেষ হওয়ার পরে স্ক্যান বন্ধ করুন এবং প্রথম বুলেট পয়েন্টে পুনরায় চালু করুন

0

আমি খালি আতেল এভিআর মাইক্রোকন্ট্রোলারগুলিতে এসেম্বলি ল্যাঙ্গুয়েজ দিয়ে এটি করেছি।
সরলতার জন্য: কীপ্যাড সারি: আরডুইনো পিনগুলি 4,5,6 এবং 7 (এভিআর পিন PD4, PD5, PD6 এবং PD7) কীপ্যাড কলামগুলি: আরডুইনো পিনগুলি 8, 9, 10 এবং 11 ব্যবহার করুন (এভিআর পিনস পিবি0, পিবি 1, পিবি 2 এবং পিবি 3) ) পুল-আপগুলি সক্ষম করে সারি পিনের ইনপুটগুলি তৈরি করুন। কলাম পিনগুলি তাদের আউটপুট এবং আউটপুট জিরো করুন। সমস্ত সারি এবং কলাম পিনগুলিতে পিন পরিবর্তন বিঘ্ন সক্ষম করুন। http://playground.arduino.cc/Main/PinChangeInterrupt কীপ্যাডে বোতাম টিপলে একটি সারি পিনটি নীচে টানবে। বিঘ্নিত রুটিনে সারি পিনগুলি পড়তে হবে এবং কোন পিনটি কম তা খুঁজে বের করতে হবে। উপরের 4 বিট তিনটি এবং একটি শূন্য হওয়া উচিত। আপনি যদি একটি uint8_t 8 বিট ভেরিয়েবল ব্যবহার করেন তবে সংখ্যার নীচে বিটগুলিতে 4 বিট রাখতে 16 বা (var >> 4) দ্বারা ভাগ করতে পারেন। আপনি কিছুটা ওয়ার ব্যবহার করতে পারেন | উপরের 4 টি বিটকে 1-এ সেট করতে 240 দিয়ে অপারেশন করুন এবং সমস্ত বিট উল্টানোর জন্য অপারেশন করবেন না যাতে আপনার কাছে কেবলমাত্র একটি বিট সেট রয়েছে যা বোতাম টিপতে চলমান সারিটি উপস্থাপন করে। এই সংখ্যাটি 0, 1, 2 বা 3 হিসাবে সঞ্চয়
করুন পিন কনফিগারেশনটি স্যুইচ করুন:
পুল-আপগুলি সক্ষম করে কলাম পিনগুলি ইনপুটগুলি তৈরি করুন। সারি পিনগুলি আউটপুট এবং আউটপুট জিরো তাদের করুন। কলাম পিনগুলি পড়ুন এবং কোন পিনটি কম তা সন্ধান করুন। এই মানটির সাথে অনুরূপ কারসাজি করুন যদি আপনার ডান দিকে নম্বর স্থানান্তর করতে না হয়। Var ^ 240 এবং ^ var পরে আপনার কী কলামটি চালু ছিল তার কলামটি উপস্থাপন করার জন্য একটি বিট থাকবে। পোর্টগুলি পুনরায় কনফিগার করার আগে বাধা নিষ্ক্রিয় করার বিষয়টি মনে রাখবেন কারণ এটি অযাচিত বাধা সৃষ্টি করতে পারে। ডুপ্লিকেট বিঘ্নিত হ্যান্ডলিং প্রতিরোধ করতে বাধা রুটিন ছেড়ে যাওয়ার সময় আপনাকে বাধা পতাকাগুলি সাফ করতে হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.