আরডুইনো ব্যবহার করে এমআইডিআই সিকোয়েন্সার টাইমিংয়ের যথার্থতা


11

আমি এই গানের সিকোয়েন্সারগুলি তৈরি করি ।

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

কেবল এটি হুবহু সিকোয়েন্সার নয়, এটি সিকোয়েন্সারের জন্য একটি শারীরিক ইন্টারফেস। সিকোয়েন্সার এমন একটি অ্যাপ্লিকেশন যা ল্যাপটপে চালিত হয় যা সিকোয়েন্সার সংযুক্ত করে, এই জিনিসটি ব্যবহারকারীকে ফ্লাইতে ড্রাম লুপ তৈরি করতে দেয়। এটি বেশ মজাদার, তবে এটির জন্য একটি ল্যাপটপ প্রয়োজন কারণ সিকোয়েন্সারটি 'অন-বোর্ড' নয়।

আমি যা পছন্দ করব তা হ'ল আমার ডিভাইসে সিকোয়েন্সিং করা।

এখন ধরে নেওয়া যাক আমি ইউএসবি এমআইডিআই সংযোগের জন্য শ্রেণি মেনে চলার জন্য কীভাবে সমাধান করব তা আমি জানি এবং আমি ধরে নিই যে আমি কীভাবে একটি 5 পিন ডিআইএন পোর্ট থেকে এমআইডিআই নোটগুলি প্রেরণ করতে একটি আর্দুইনো ওয়্যার করব তা নির্ধারণ করতে পারি। ইভেন্ট লুপের প্রতিটি রানের চেয়ে মিনিটের পরিমাণে অসামঞ্জস্যভাবে সময় কাটার কারণে আমি সবচেয়ে বেশি উদ্বিগ্ন।

আমি জানি কিছু জিনিস:

  1. delay()টেম্পো লুপটি নিয়ন্ত্রণ করতে আপনার ভরসা করা উচিত নয় । বিলম্ব ফার্মওয়্যারের সমস্ত ক্রিয়াকলাপ বন্ধ করে দেয় এবং এটি কাজ করতে পারে না কারণ ক্রম চলার সময় পরিবর্তনের জন্য আমার শারীরিক ব্যবহারকারী ইন্টারফেসটি পোল করা দরকার।

  2. উপর ভিত্তি করে গণনাগুলি millis()আরও ভাল কারণ ফার্মওয়্যার পরিচালনা এবং চালিয়ে যেতে পারে যখন নির্দিষ্ট গণনা শেষ হয়ে যায়।

  3. যদিও আমার শারীরিক নিয়ন্ত্রণগুলির কোনওটিই বিঘ্নিত রুটিনগুলি ট্রিগার করছে না, কিছু ক্রিয়াকলাপ মূল চালনাতে বিলম্ব করতে পারে loop()। যদি আমি এমন কোনও ফাংশন ডিজাইন করি যা ব্যবহারকারীর ইনপুটটির জন্য অপেক্ষা করে, যা millis()গণনা শেষ হয়ে গেলে অবশ্যই কাজ করার জন্য একটি "সময়সীমা" হারিয়ে যাওয়ার সমস্যা সৃষ্টি করতে পারে । আমি জানি এই সমস্যাটি আমার নিজের ডিজাইনের ...

প্রশ্নাবলী:

উ: এভিআর ভিত্তিক আরডুইনো কোনও ইউজার ইন্টারফেসটি পোল করার জন্য এবং একটি মিশনকে সমালোচনামূলক টাইমিং লুপ চালানোর জন্য উপযুক্ত মাইক্রোকন্ট্রোলার? আমি জানি একটি আরএম ভিত্তিক আরডুইনো এখন অনেক দ্রুত। টেনেসি 3.0 কি আরও ভাল বিকল্প হতে পারে? এই দুটিই 3.3V বোর্ড, সুতরাং এটি নিয়ে কাজ করার আরও একটি ইস্যু ... তবে আমি আপাতত এটিকে উপেক্ষা করব।

খ। কাজটি কি দুটি মাইক্রোপ্রসেসরে বিভক্ত করা উচিত? ভোটদান পরিচালনা ও ব্যবহারকারী ইন্টারফেস আপডেট করার জন্য একটি এবং মিশনের সমালোচনামূলক টাইমিং লুপের জন্য।

গ। অন্যকিছু?

আমার মূল লক্ষ্য হ'ল কোনও কম্পিউটার ব্যবহার না করা। আমি সুইংয়ের জন্যও গণনা করতে চাই, তবে এই ক্ষেত্রে, সুইং বলতে কোনও জিনিস বোঝায় না যদি আমি লকড এবং সময়সীমার সঠিক টেম্পো না পাই। আপনার উপদেশের জন্য ধন্যবাদ!


1
আরডুইনো সবসময় কিছু বিঘ্নিত রুটিন সেট আপ করে, যার ফলে ঝিঁঝিঁ হয়। অনেক ক্ষেত্রে এটি কোনও সমস্যা নয় তবে এটি সম্পর্কে সচেতন হওয়া ভাল। noInterrupts();ঝাঁকুনি থামায়, তবে সমস্ত পছন্দসই বাধাও থামিয়ে দেয়।
জিপ্পি

1
আপনি যখন "ডু সিকোয়েন্সিং অন-বোর্ড" বলবেন, তার মানে কি প্রতি বার বিট, বিপিএম এবং বোর্ডে টিক-ট্র্যাক সেট আপ করবেন? তারপরে সম্ভবত আপনি বারের মধ্যে যে বোতাম টিপেছে তা মনে রাখতে চান যাতে ডিভাইসের "ব্রেন" আপনার ল্যাপটপে মিডি-নোটগুলি খাওয়াতে পারে? তারপরে আপনি কি পূর্বে রেকর্ড করা নোটটির উপরে আবার আঘাত করলে আপনি কিছু নির্দিষ্ট শব্দকণ্ঠ সরিয়ে ফেলতে চান? ইত্যাদি .. আপনি কতদূর যেতে চান? আপনার বীট স্টোরেজ? একটি পূর্ণ ট্র্যাকের সাথে সামঞ্জস্যপূর্ণ বারগুলির ক্রম তৈরি করছেন? নির্দিষ্ট বার সম্পাদনা করছেন? নির্দিষ্ট বারের টেম্পোর পরিবর্তন? এটি সমস্ত সিপিইউ খায় তাই সেরা সিপিইউতে যান।
অ্যান্ডি ওরফে

হ্যাঁ, সব।
স্টিভ কুলি

2
এটি আপনার তৈরি একটি মিষ্টি চেহারা!
shukc

3
অন্যেরা যা বলেছে তা ছাড়াও এটিকে এমন মনে করার মতো মনে হয় যে সম্ভবত আপনি উত্পাদন ও বিক্রয় করার ইচ্ছা করছেন। একটি আরডুইনোর দাম $ 20, অন্যদিকে একটি AVR এর দাম $ 2। আপনার অ্যাপ্লিকেশনটির যে হার্ডওয়ারগুলি প্রয়োজন তার উপর আপনি কেবল নিয়ন্ত্রণই অর্জন করবেন না, তবে আপনি প্রচুর অর্থ সাশ্রয় করবেন।
ফিল ফ্রস্ট

উত্তর:


5

সংবেদনশীল কাজগুলির সময় নির্ধারণের জন্য বাধাগুলি আপনার বন্ধু, তবে কেবলমাত্র যদি আপনি সময়কে সমালোচনামূলক দিকগুলি ব্যাঘাতের মধ্যে রাখেন এবং অন্য কোনও বাধা ঘটে না যার উচ্চতর অগ্রাধিকার থাকে। যেমন পৃষ্ঠায় 58ff বিস্তারিত "এভিআর ভিত্তিক" Arduino উপর মাইক্রোকন্ট্রোলারের (যেমন ATmega328P) বিঘ্ন অগ্রাধিকার সমাধান করেছেন উপাত্তপত্র । সুতরাং আপনি যদি টাইমার 2 কম্পাটিকে আপনার সমালোচনামূলক সময় বাধাদান হিসাবে ব্যবহার করেন এবং অন্য কোনও বিঘ্নিত না হয়ে থাকে তবে আপনাকে ঠিক করা উচিত না (কারণ এটির সর্বোচ্চ অগ্রাধিকার রয়েছে)। আপনি যদি নিম্নতর অগ্রাধিকারের বাধাও ব্যবহার করতে চান, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে সেগুলি বাধা সেবার রুটিনে প্রবেশের সময় তাদের সমস্তটি বৈশ্বিক বাধা পুনরায় সক্ষম করে:

যখন কোনও বাধা ঘটে তখন গ্লোবাল ইন্টারপান সক্ষম আই-বিট সাফ হয়ে যায় এবং সমস্ত বাধা অক্ষম থাকে। ব্যবহারকারী সফ্টওয়্যার নেস্টেড বিঘ্ন সক্ষম করতে আই-বিটটিতে যুক্তিটি লিখতে পারে। সমস্ত সক্ষম বিঘ্নিত বর্তমান বাধা রুটিন বাধা দিতে পারে।

( ডেটাশিটের 14 পৃষ্ঠা )

এটিআরএম ভিত্তিক আরডুইনোসের তুলনায় কিছুটা আলাদা কারণ তাদের কর্টেক্স-এম 3 কোরটিতে "নেস্টেড ভেক্টর ইন্টারপট কন্ট্রোলার" রয়েছে, যেখানে অগ্রাধিকারগুলি নির্দিষ্ট করা হয় না (সফ্টওয়্যারটিতে সেট করা যেতে পারে), এবং নেস্টেড ইন্টারপ্ট হ্যান্ডলিংয়ের আদর্শ। সুতরাং সমালোচনামূলক অ্যাপ্লিকেশনগুলির সময় নির্ধারণের জন্য, এআরএম ভিত্তিক আরডুইনো আপনাকে আরও নমনীয়তা দেয়। তবে, আমি মনে করি না এটি আপনার আবেদনের জন্য সত্যই প্রয়োজনীয় necessary

বড় প্রশ্নটি সত্যই যে আরডুইনো লাইব্রেরিগুলির সাহায্যে এই জিনিসগুলি কতটা সহজভাবে প্রয়োগ করা যায়। সেরা পারফরম্যান্স পেতে আপনাকে সম্ভবত লাইব্রেরির বাইরে কিছুটা সময় কোডিং করতে হবে, কমপক্ষে সময় সমালোচনামূলক বিটের জন্য, যেমন বিলম্ব () বা মিলিস () সম্পূর্ণরূপে এড়ানো উচিত।

আপনার বিভক্ত হওয়া দরকার কিনা তা নির্ভর করে আপনি কতটা প্রক্রিয়াজাত করতে চান তার উপর নির্ভর করে। আবার, গ্রন্থাগারের বাইরে গিয়ে আপনাকে সম্ভাব্যতর পারফরম্যান্স দিতে পারে।


3

এটি, উপযুক্ত প্রোগ্রামিং সহ, এটি অবশ্যই একটি এটিমেগ 328 পি (ড্রাম-লুপের জটিলতার উপর কিছুটা নির্ভর করে।

নোট করুন যে আমি এটিমেগা 328 পি বলেছিলাম , অগত্যা একটি আরডিনো নয়

আরডুইনো পরিবেশের পটভূমিতে প্রচুর ডিফল্ট স্টাফ চলছে, যা চূড়ান্তভাবে চূড়ান্তভাবে নির্ধারণকারী প্রোগ্রামিং করে তোলে (যেমন আপনার সময়-সমালোচনামূলক কিছু প্রয়োজন হবে)।

আপনার এখানে আসল প্রশ্নটি জিজ্ঞাসা করতে হবে এটি হল আপনি প্রোগ্রামিংয়ে কতটা আগ্রহী, বনাম কোনও সরঞ্জাম বিকাশে আপনি কতটা আগ্রহী?

যদিও আমি যথেষ্ট আত্মবিশ্বাসী আপনি একটি সিটি এটিমেগা (ড্রাম লুপ, একাধিক এনালগ ইনপুট, এলসিডি, বোতাম, এমআইডিআই ইন্টারফেস) এর যা কিছু করতে চান তা সম্ভব , তবে আসল প্রশ্নটি হ'ল সমস্ত কিছু নিঃসরণ করা কতটা কাজ করবে? আবার, আপনি এম্বেড এমসিইউ কোডটি অনুকূলকরণ করতে বা উপকরণ তৈরি করতে শিখতে চান? এটা বেশ সহজ শুধু একটি দ্রুত MCU যেতে প্রয়োজন হলে, কিন্তু আপনি MCU কর্মক্ষমতা নির্ধারণ করতে প্রয়োজন আপনি প্রয়োজন এখন , আপনি বুঝতে পারছি না আপনি করতে পারবেন না কাজ তাই ছয় মাস, বেশ কাজ সবকিছু হিসাবে দ্রুত হিসাবে আপনি পেতে প্রয়োজন নেই।


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

একবার আপনি আরডুইনো স্টাফ মুক্ত হয়ে গেলে আপনি বিভিন্ন এমসিইউ ব্যবহার করতে আরও অনেক বেশি মুক্ত হন (এগুলি সাধারণত অন্যরকম হয় তবে ভিন্ন। আপনি যদি এর নথি থেকে কোনওটি বের করতে পারেন তবে আপনি সম্ভবত অন্যদের জন্যও এটি করতে পারেন)।

আমি সম্প্রতি খুব বেশি এটিএমমেগা ডিভাইসগুলির সাথে কাজ করছি এবং তারা সত্যিই দুর্দান্ত। আপনি তিনটি বাধা অগ্রাধিকার পান যা সময়-সমালোচনামূলক স্টাফ পরিচালনা করতে সহজ করে তোলে a এগুলি (সান পেরিফেরিয়াল ডিজাইনগুলি! সুবিধাজনক বন্দর স্ট্রাক্টগুলি! ইত্যাদি) নিয়ে কাজ করতে খুব সুন্দর really

এছাড়াও এনএক্সপি থেকে এলপিসি ডিভাইস রয়েছে, যা এআরএম ভিত্তিক, পাশাপাশি আটমেলের কিছু এআরএম ডিভাইস (যেমন আরডুইনো ডিউতে ব্যবহৃত হয়), বা এসটি থেকে এসটিএম 32 এমসিইউ রয়েছে। এগুলির যে কোনও একটিতে এটিএমগা বা একটি এটিএমমেগা পরে উল্লেখযোগ্যভাবে আরও বেশি পারফরম্যান্স থাকবে।

একটি বৃহত্তর, আরও শক্তিশালী প্রসেসরের প্রাথমিক নেতিবাচক দাম হ'ল, তবে আপনি যদি হাজার হাজার ইউনিট তৈরি না করেন, তবে প্রতি ইউনিট সমাবেশ এবং উত্পাদন ব্যয় ব্যয়ের পার্থক্য ছাড়িয়ে চলেছে (যা সম্ভবত কয়েক ডলার হতে পারে) ) এটি মূলত অপ্রাসঙ্গিক।


সুন্দরভাবে বলতে গেলে - একটি বাণিজ্যিক পণ্যের জন্য একটি আরডুইনো কেবল যাওয়ার উপায় নয় - এগুলি ক্ষুধার্ত, ধীর এবং আইডিই অনুকূল (দ্রুত / ছোট) কোডের পরিবর্তে সুবিধার্থে এবং সহজ শেখার জন্য ডিজাইন করা হয়নি। কম খরচে এমনকি আপনার একটি এসটিএম 32 এফ 4 (32-বিট কর্টেক্স এম 4> 100 মেগাহার্টজ) বা অনুরূপ থাকতে পারে, যদিও এটি ওভারকিল হবে। আমি মনে করি ছোট PIC32 এর মতো কার্টেক্স এম 3 এস বা একটি এভিআর 32 এর মতো কিছু সম্ভবত যাওয়ার উপায়, যা আপনি উল্লেখ করেছেন। অসংখ্য বিঘ্নিত অগ্রাধিকার, ডিএমএ, পরিশীলিত পেরিফেরিয়াল, দ্রুত / কম শক্তি এবং প্রচুর পরিমাণে র‌্যাম এটিকে একটি আরডিনোর তুলনায় একটি সহজ পছন্দ করে তোলে।
অলি গ্লেজার

@OliGlaser - আমি তোমাকে পরিষ্কারভাবে একটি মধ্যবর্তী অঙ্কিত প্রয়োজন মনে যাও Arduino এবং এটিমেগা । আপনি একটি এটিমেগায় ছোট, দ্রুত কোড করতে পারেন এবং এটিএমগা এমনকি একটি আরডুইনো বোর্ডেও থাকতে পারে। অন্যদিকে, আরডুইনো "আইডিই" হ'ল আমি এখন পর্যন্ত ব্যবহার করেছি এমন চিটচিটে কোড সম্পাদকদের মধ্যে। অন্যদিকে, অপটিবুট বুটলোডারটি খুব সুন্দর। কিছু অংশ বকাঝকা হয়ে যাওয়ার অর্থ এই নয় যে আপনার পুরো জিনিসটি ফেলে দেওয়া উচিত।
কনার ওল্ফ

একদম - আমি সামগ্রিকভাবে আরডিনোকে উল্লেখ করছিলাম, বোর্ড এবং আইডিই অন্তর্ভুক্ত ছিল - এটিমেগা নয়, যা আমি নিশ্চিত যে এটি অন্য কোনও তুলনামূলক ইউসি (পিআইসি 16/18 এফ ইত্যাদি) হিসাবে ভাল তবে আমি এটিকে আমার তালিকায় অন্তর্ভুক্ত করতাম তবে আমি মনে করি আজকাল 8-বিট এবং 16/32-বিটের মধ্যে দামটি এত নিকটে থাকায় অতিরিক্ত $ 1 ব্যয় করা সম্ভবত আপনার পক্ষে খুব ভাল ধারণা এবং আপনি জানেন যে প্রসেসরের শক্তি ছাড়াই হবে (যতক্ষণ না আপনি উল্লেখ না করেই আমরা বিশাল সংখ্যক কথা বলছি) এবং নিখুঁত সর্বনিম্ন মূল্যে নির্মিত, তবে তারপরে আমি সন্দেহ করি একটি আড়ডিনো বিবেচনা করা হত :-))
অলি গ্লেজার

1

টাইমিংয়ের সঠিকতা সম্পর্কে চিন্তা করা শুরু করার আগে আমার টাইমারগুলি পড়তে হবে (এটি একটি অর্ডুইনো দিয়ে একটি মিডি স্টেপ সিকোয়েন্সারও তৈরি করা হচ্ছে, যদিও এটি it's এর চেয়ে কম শীতল দেখানোর নিশ্চয়তা রয়েছে)। এই সিরিজের নিবন্ধগুলি সর্বাধিক তথ্যবহুল হয়েছে:

http://maxembedded.com/category/microcontrollers-2/atmel-avr/avr-timers-atmel-avr/

এখনই আমি মনে করি যে সুনির্দিষ্ট সময় পাওয়ার জন্য আমার সমাধান হবে।

উ: এভিআর আরডুইনো ব্যবহার করুন

বি। একটি মাইক্রোপ্রসেসরের উপর টাস্কটি রাখুন

গ। যথাযথতা প্রয়োজনীয়তার জন্য প্রজ্ঞাপূর্ণভাবে প্রেসকেলার, টাইমার এবং বিঘ্ন ব্যবহার করুন।

হালনাগাদ

আরডুইনোর জন্য প্রাথমিক মিডি টিউটোরিয়ালটি ব্যবহার করে এবং টাইমার এবং প্রেসক্যালারগুলির উপর এই নিবন্ধটি দেখার পরে , নীচের কোডটি আমি নিয়ে এসেছি। কোডটি প্রতি ত্রৈমাসিকের একটি মিডি নোট খেলতে টাইমার 1 এবং সিটিসি মোড ব্যবহার করে এবং প্রতি ত্রৈমাসিক সেকেন্ডে একটি নোট বন্ধ রাখবে (যা ঠিক 120 বিপিএম হওয়া উচিত)। দুঃখের বিষয়, এটি এখনও 120 বিপিএমের চেয়ে ধীর গতিতে আসছে যদিও এটি আমার কাছেই সবচেয়ে কাছের ...

// Includes
#include <avr/io.h>
#include <avr/interrupt.h>

int last_action=0;

void setup()
{
    //  Set MIDI baud rate:
    Serial.begin(31250);

    // initialize Timer1
    cli();          // disable global interrupts
    TCCR1A = 0;     // set entire TCCR1A register to 0
    TCCR1B = 0;     // same for TCCR1B

    // set compare match register to desired timer count:
    OCR1A = 15624;
    // turn on CTC mode:
    TCCR1B |= (1 << WGM12);
    // Set CS12 bits for 256 prescaler:
    TCCR1B |= (1 << CS12);
    // enable timer compare interrupt:
    TIMSK1 |= (1 << OCIE1A);
    // enable global interrupts:
    sei();
}

void loop()
{
    // do some crazy stuff while my midi notes are playing
}

ISR(TIMER1_COMPA_vect)
{
  // Turn notes on
  if (last_action == 0) {
    send_note(0x90, 60, 0x45);
    last_action = 1;

  // Turn notes off
  } else {
    send_note(0x90, 60, 0x00);
    last_action = 0;
  }
}

//  plays a MIDI note
void send_note(int cmd, int pitch, int velocity) {
  Serial.write(cmd);
  Serial.write(pitch);
  Serial.write(velocity);
}

হালনাগাদ

আমি এখন ২৪ ঘন্টার জন্য এটির সাথে লড়াই করছি এবং অবশেষে ফোরামের কাছ থেকে কিছু উত্তর পেয়েছি। আমি মনে করি যে আমি উপরে যে কোডটি ব্যবহার করেছি তা বেশ ভাল good আইএসআর ব্যবহার করে, সিটিসি মোড এবং প্রেসকেলার ইত্যাদি ব্যবহার করে ফোরামে পৌঁছানোর পরে আমি মনে করি যে মিডি সিকোয়েন্সার সম্পর্কে নির্ভুলতা অর্জন সম্পর্কে সমাধান কম, তবে আমার সম্পূর্ণ হার্ডওয়্যার সেটআপ (আমার সিন্থেসাইজার এবং স্যাম্পেলার) একই দিকে জড়িয়ে পড়েছে getting মিডি ক্লক, ঘড়িটি আরডুইনো থেকে আসে।


0

আপনি কীভাবে ধীরে ধীরে একটি টিচারযুক্ত কম্পিউটার থেকে একটি µC- ভিত্তিক সিস্টেমে রূপান্তর করতে চান তার উপর নির্ভর করে আপনি সেই বাক্সের ভিতরে একটি রাস্পবেরি পাই স্থাপন বিবেচনা করতে পারেন ($ 25-35 খুচরা )। এই পদ্ধতিতে আপনার কাছে ইউএসবি পোর্ট এবং জিপিআইও পিন সহ একটি পূর্ণ (কম শক্তিযুক্ত) লিনাক্স-ভিত্তিক কম্পিউটার থাকতে পারে।


আমি নিশ্চিত যে এখানে এক্সপেনশন শিল্ড রয়েছে বা তারা পাইয়ের জন্য যা কিছু বলবে, কিন্তু স্টক বোর্ডের কাছে 17 জিপিআইও পিন রয়েছে। আমি আরডুইনো মেগায় প্রতিটি পিন ব্যবহার করছি 31 টি যোগাযোগ + 30 এলইডি, 10 এনালগ ইন 70 70+ আই / ও।
স্টিভ কুলি

ওহ, আমি বলতে চাইছিলাম যদি তাত্ক্ষণিক লক্ষ্যটি বাহ্যিক কম্পিউটারটি সরিয়ে ফেলা হয় তবে আপনি "সিকোয়েন্সার [এটি] একটি অ্যাপ্লিকেশন যা ল্যাপটপে চালিত হয়" রাখতে পারেন এবং এটি পাইতে চালাতে পারেন, অভ্যন্তরীণভাবে আপনার বিদ্যমান সিস্টেমের সাথে একইভাবে সংযুক্ত রয়েছে it's এখন সংযুক্ত।
রব স্টার্লিং

@ স্টিভকুলি - আপনার মত মনে হচ্ছে আইও মাল্টিপ্লেক্সিং / বোতাম-ম্যাট্রিক্সগুলিতে নজর দেওয়া উচিত। আপনার প্রতি বোতামটিতে পুরো ডেডিকেটেড আইও লাইন লাগবে না।
কনর ওল্ফ

@ স্টিভকুলি - হ্যালো, আপনার এমনকি এমনকি বোতামের ম্যাট্রিসও দরকার নেই। আপনি কেবলমাত্র 4 আরপিআই পিন ব্যবহার করে আপনার সমস্ত ডিজিটাল আইও করতে পারেন। কিছু শিফট রেজিস্টার (এলইডিগুলির জন্য সমান্তরাল-সিরিয়াল, এলইডিগুলির জন্য সমান্তরাল), এবং আরপিআই এর এসপিআই বন্দর থেকে শিফট রেজিস্টারগুলি চালিত করে কেবল সমস্ত বোতাম এবং এলইডিগুলি ঝুলিয়ে দিন। আপনার এসপিআই হার্ডওয়্যারের সাহায্যে সহজেই পুরো ম্যাট্রিক্সের জন্য 1Khz আপডেটের হারগুলি পাওয়া উচিত।
কনার ওল্ফ

আপনি যদি আরডুইনো মেগা ব্যবহারের একমাত্র কারণ হ'ল আইও, আপনি <$ 3 এর জন্য কয়েকটি বাহ্যিক ডিভাইস দিয়ে খুব সহজেই করা যায় এমন কোনও কিছুর জন্য প্রচুর অর্থ ব্যয় করছেন।
কনার ওল্ফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.