সুচিপত্র:
ভিডিও: সহজ রোটারি ডিকোডার: 4 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
এই নির্দেশযোগ্য একটি Arduino Uno R3 ব্যবহার করে একটি অনুক্রমিক ঘূর্ণমান এনকোডার ডিকোড করার একটি সহজ পদ্ধতি বর্ণনা করে।
কমপ্যাক্ট সফটওয়্যার রুটিনগুলি ট্রানজিশনের সংখ্যা গণনা, যোগাযোগ বাউন্স দূর করতে এবং ঘূর্ণনের দিক নির্ধারণ করতে ব্যবহৃত হয়। অতিরিক্ত উপাদান এবং সন্ধান টেবিল প্রয়োজন হয় না।
কোডের ইন্টারাপ্ট এবং নন-ইন্টারাপ্ট ভার্সন দেওয়া হয়েছে।
কোডের ইন্টারাপ্ট ভার্সনে শুধুমাত্র একটি ইন্টারাপ্ট পিন প্রয়োজন।
ছবি:
- খোলার ছবিটি একত্রিত এনকোডার দেখায়।
- স্ক্রিন শটটি ইন্টারাপ্ট ভার্সনের কোড দেখায় এবং এনকোডার শ্যাফট ঘড়ির কাঁটার দিকে এবং ঘড়ির কাঁটার উল্টো দিকে ঘোরে।
- ভিডিওটি দ্রুত ঘূর্ণনের সময় গণনা দেখায়।
ধাপ 1: সার্কিট ডায়াগ্রাম
এনকোডার ওয়্যারিং ডায়াগ্রামটি চিত্র 1 এ দেখানো হয়েছে।
জাম্পার তারগুলি সরাসরি এনকোডার পিনগুলিতে বিক্রি হয়।
গণনার দিক বিপরীত হলে দুটি নীল তারের বিনিময় করুন।
ধাপ 2: যন্ত্রাংশ তালিকা
নিম্নলিখিত অংশগুলি https://www.aliexpress.com/ থেকে প্রাপ্ত হয়েছিল
- ইউএসবি কেবল সহ 1 শুধুমাত্র আরডুইনো ইউএনও আর 3।
- সুইচ সহ 1 শুধুমাত্র অনুক্রমিক ঘূর্ণমান এনকোডার (EC11 বা সমতুল্য)।
- 1 শুধুমাত্র খাদ জন্য উপযুক্ত
- 3 শুধুমাত্র Arduino পুরুষ থেকে পুরুষ জাম্পার তারের।
ধাপ 3: তত্ত্ব
অনুক্রমিক ঘূর্ণমান এনকোডার দুটি বর্গ-তরঙ্গ উৎপন্ন করে যার প্রত্যেকটি 90 ডিগ্রি দ্বারা স্থানচ্যুত হয় যেমন চিত্র 1 এ দেখানো হয়েছে।
কন্টাক্ট এ এবং কন্টাক্ট বি -তে লজিক প্যাটার্ন ভিন্ন হয় যখন শ্যাফট ঘড়ির কাঁটার দিকে (CW) এবং কাউন্টার ক্লকওয়াইজ (CCW) 1 থেকে 6 পজিশনের মাধ্যমে ঘোরানো হয়।
ঘূর্ণনের দিক নির্ধারণের সাধারণ পদ্ধতিগুলির মধ্যে রয়েছে:
- হার্ডওয়্যার
- জোড়া বাধা
- প্যাটার্ন সন্ধান টেবিল
এই প্রকল্পটি এমন একটি সফটওয়্যার পদ্ধতি ব্যবহার করে যার জন্য লুকআপ টেবিলের প্রয়োজন হয় না। [1]
অভিমুখ
কন্টাক্ট এ এবং কন্টাক্ট বি থেকে আউটপুট প্যাটার্ন দেখার পরিবর্তে কন্টাক্ট এ -তে ফোকাস করা যাক।
যদি আমরা প্রতিটি পরিচিতি একটি সংক্রমণের পরে যোগাযোগ বি নমুনা করি তবে আমরা লক্ষ্য করি যে:
- কন্টাক্ট এ এবং কন্টাক্ট বি এর বিপরীত লজিক স্টেট থাকে যখন এনকোডার CW ঘুরানো হয়
- যোগাযোগ A এবং যোগাযোগ B একই যুক্তি অবস্থা যখন এনকোডার ঘুরানো হয় CCW
প্রকৃত কোড:
// ----- ট্রানজিশন গণনা
CurrentStateA = stateContactA (); যদি (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); যদি (CurrentStateA == CurrentStateB) গণনা ++; যদি (CurrentStateA! = CurrentStateB) Count--; LastStateA = CurrentStateA; }
এই পদ্ধতি নিম্নলিখিত সুবিধা প্রদান করে:
- সন্ধান টেবিল প্রয়োজন হয় না
- শুধুমাত্র একটি একক বাধা লাইন প্রয়োজন
ডিবাউন্স
সমস্ত যান্ত্রিক এনকোডার "কন্টাক্ট বাউন্স" এ ভোগে।
যদি একটি সুইচ যোগাযোগ পরিষ্কারভাবে না করে/ভাঙতে না পারে তবে সুইচ যোগাযোগ স্থির না হওয়া পর্যন্ত তার যুক্তিবিজ্ঞান উচ্চ থেকে নিম্ন পর্যন্ত দ্রুত দোলবে। এর ফলে মিথ্যা গণনা হয়।
যোগাযোগ বাউন্স দমন করার জন্য একটি পদ্ধতি হল প্রতিটি সুইচ যোগাযোগের মধ্যে একটি ছোট ক্যাপাসিটর যুক্ত করা। ক্যাপাসিটর এবং সংশ্লিষ্ট পুল-আপ প্রতিরোধক একটি সংযোজক গঠন করে যা কার্যকরভাবে উচ্চ ফ্রিকোয়েন্সি শর্ট করে এবং সুইচ ভোল্টেজকে সুন্দরভাবে বৃদ্ধি/পতনের অনুমতি দেয়।
এই পদ্ধতির নেতিবাচক দিক হল যে এনকোডার শ্যাফ্ট দ্রুত ঘোরানো হলে ট্রানজিশন মিস করা যেতে পারে।
সফটওয়্যার ডিবাউন্সিং
এই পদ্ধতিতে দুটি কাউন্টার (খোলা, বন্ধ) ব্যবহার করা হয়েছে যা শূন্যতে সেট করা হয়েছে। [2]
একবার যোগাযোগ A- এ একটি স্থানান্তর ধরা পড়লে:
- ক্রমাগত পোল যোগাযোগ এ
- খোলা কাউন্টার বাড়ান, এবং বন্ধ কাউন্টারটি পুনরায় সেট করুন, যখনই যোগাযোগ A উচ্চ হয়।
- বন্ধ কাউন্টার বাড়ান, এবং খোলা কাউন্টারটি পুনরায় সেট করুন, যখনই যোগাযোগ A কম হয়।
- কাউন্টারগুলির মধ্যে একটি পূর্বনির্ধারিত গণনায় পৌঁছলে লুপ থেকে প্রস্থান করুন। যেকোনো কন্টাক্ট বাউন্সের পর আমরা কার্যকরভাবে স্থিতিশীল অবস্থা খুঁজছি।
প্রকৃত কোড:
// ----- ডিবাউন্স যোগাযোগ এ
যখন (1) {যদি (digitalRead (ContactA)) {// ----- ContactA খোলা বন্ধ = 0; // খালি বিপরীত সংহতকারী খোলা ++; // সংহত করুন যদি (ওপেন> ম্যাক্সকাউন্ট) উচ্চ ফেরত আসে; } অন্য {// ----- ContactA বন্ধ খোলা = 0; // খালি বিপরীত সংহতকারী বন্ধ ++; // ইন্টিগ্রেট করুন যদি (বন্ধ> MaxCount) কম ফিরে আসে; }}
কন্টাক্ট বি কে ডিবাউন্স করার দরকার নেই কারণ কন্টাক্ট এ এবং কন্টাক্ট বি ট্রানজিশন একসাথে হয় না।
গণনা
একটি যান্ত্রিক "আটক" কার্যকরভাবে আপনার গণনাকে দ্বিগুণ করে কারণ দুটি গণনা ক্লিকের মধ্যে নিবন্ধিত হয় (চিত্র 1 দেখুন)।
নীচে দেখানো হিসাবে মডুলো 2 গাণিতিক ব্যবহার করে "আটক" সংখ্যা নির্ধারণ করা যেতে পারে।
প্রকৃত কোড:
// ----- "আটককারী" গণনা করুন
যদি (গণনা % 2 == 0) {সিরিয়াল.প্রিন্ট ("গণনা:"); Serial.println (গণনা / 2); }
তথ্যসূত্র
আরও তথ্য এখানে পাওয়া যাবে:
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ButtonorSwitchDebounceinSof…
ধাপ 4: সফটওয়্যার
এই প্রকল্পের জন্য Ardino Uno R3 IDE (সমন্বিত উন্নয়ন পরিবেশ) এর একটি সাম্প্রতিক সংস্করণ প্রয়োজন যা https://www.arduino.cc/en/main/software থেকে পাওয়া যায়
নিম্নলিখিত দুটি Arduino স্কেচ ডাউনলোড করুন (সংযুক্ত)
- rotary_encoder_1.ino (পোলিং ভার্সন)
- rotary_encoder_2.no (ইন্টারাপ্ট ভার্সন)
আপনার পছন্দের সংস্করণে ডাবল ক্লিক করুন এবং পর্দায় নির্দেশাবলী অনুসরণ করুন।
উপভোগ করুন…
আমার অন্যান্য নির্দেশাবলী দেখতে এখানে ক্লিক করুন।
প্রস্তাবিত:
LabDroid: মোর্স কোড এনকোডার/ডিকোডার: 4 টি ধাপ
LabDroid: Morse Code Encoder/Decoder: Note: এই নির্দেশনা LabDroid এর নতুন সংস্করণে 1: 1 উপলব্ধ করা যাবে না। আমি শীঘ্রই এটি আপডেট করব। এই প্রকল্পটি আপনাকে দেখাবে যে আপনি LabDroid দিয়ে কি করতে পারেন। যেহেতু একটি হ্যালো ওয়ার্ল্ড সাধারণত টেক্সট, আলো বা শব্দের উপর ভিত্তি করে তৈরি করা হয়, তাই আমি LabDr এর জন্য ভেবেছিলাম
বাইনারি ট্রি মোর্স ডিকোডার: 7 টি ধাপ (ছবি সহ)
বাইনারি ট্রি মোর্স ডিকোডার: a.articles {font-size: 110.0%; ফন্ট-ওজন: সাহসী; ফন্ট-স্টাইল: তির্যক; টেক্সট-ডেকোরেশন: কোনটিই নয়; background-color: red;} a.articles: hover {background-color: black;} এই নির্দেশযোগ্য ব্যাখ্যা করে কিভাবে একটি Arduino Uno R3.T ব্যবহার করে মোর্স কোড ডিকোড করতে হয়
কিভাবে একটি সাধারণ DTMF (টোন) ফোন লাইন ডিকোডার তৈরি করবেন: 3 টি ধাপ
কিভাবে একটি সাধারণ ডিটিএমএফ (টোন) ফোন লাইন ডিকোডার তৈরি করবেন: এটি একটি সাধারণ প্রকল্প যা আপনাকে ডিটিএমএফ সিগন্যাল ডিকোড করতে দেয় মূলত কোন ফোন লাইনে। এই টিউটোরিয়ালে, আমরা ডিকোডার MT8870D ব্যবহার করছি। আমরা একটি প্রি -বিল্ট টোন ডিকোডার ব্যবহার করছি কারণ, আমাকে বিশ্বাস করুন, এটি চেষ্টা করা এবং এটি করার জন্য পিছনে একটি ব্যথা
লাইব্রেরি ছাড়া RC5 রিমোট কন্ট্রোল প্রোটোকল ডিকোডার: 4 টি ধাপ
RC5 রিমোট কন্ট্রোল প্রোটোকল ডিকোডার লাইব্রেরি ছাড়াই: rc5 ডিকোড করার আগে প্রথমে আলোচনা করি rc5 কমান্ড কি এবং এর গঠন কি। তাই মূলত rc5 কমান্ডটি রিমোট কন্ট্রোলে ব্যবহৃত হয় যা টেলিভিশন, সিডি প্লেয়ার, d2h, হোম থিয়েটার সিস্টেম ইত্যাদিতে ব্যবহৃত হয়।
DIY MusiLED, সঙ্গীত সিঙ্ক্রোনাইজড LEDs এক-ক্লিক উইন্ডোজ এবং লিনাক্স অ্যাপ্লিকেশন (32-বিট এবং 64-বিট)। পুনরায় তৈরি করা সহজ, ব্যবহার করা সহজ, পোর্টে সহজ।: 3 টি ধাপ
DIY MusiLED, সঙ্গীত সিঙ্ক্রোনাইজড LEDs এক-ক্লিক উইন্ডোজ এবং লিনাক্স অ্যাপ্লিকেশন (32-বিট এবং 64-বিট)। পুনরায় তৈরি করা সহজ, ব্যবহার করা সহজ, পোর্টে সহজ। এই প্রকল্পটি আপনাকে আপনার আরডুইনো বোর্ডে 18 টি LED (6 লাল + 6 নীল + 6 হলুদ) সংযুক্ত করতে এবং আপনার কম্পিউটারের সাউন্ড কার্ডের রিয়েল-টাইম সংকেত বিশ্লেষণ করতে এবং তাদের রিলেতে সহায়তা করবে। বীট প্রভাব (ফাঁদ, উচ্চ টুপি, কিক) অনুযায়ী তাদের আলো জ্বালানোর জন্য LEDs