সুচিপত্র:

রোটারি এনকোডার - এটা বুঝুন এবং ব্যবহার করুন (Arduino/অন্যান্য ontController): 3 ধাপ
রোটারি এনকোডার - এটা বুঝুন এবং ব্যবহার করুন (Arduino/অন্যান্য ontController): 3 ধাপ

ভিডিও: রোটারি এনকোডার - এটা বুঝুন এবং ব্যবহার করুন (Arduino/অন্যান্য ontController): 3 ধাপ

ভিডিও: রোটারি এনকোডার - এটা বুঝুন এবং ব্যবহার করুন (Arduino/অন্যান্য ontController): 3 ধাপ
ভিডিও: 1. what is Encoder & How many types of Encoder? এনকোডার কি, কতো প্রকার ও কি কি? এবং এদের কাজ কি কি? 2024, নভেম্বর
Anonim
রোটারি এনকোডার - এটা বুঝুন এবং ব্যবহার করুন (Arduino/অন্যান্য ontController)
রোটারি এনকোডার - এটা বুঝুন এবং ব্যবহার করুন (Arduino/অন্যান্য ontController)

একটি ঘূর্ণমান এনকোডার একটি ইলেক্ট্রো-মেকানিক্যাল ডিভাইস যা ঘূর্ণন গতিকে ডিজিটাল বা এনালগ তথ্যে রূপান্তর করে। এটি ঘড়ির কাঁটার দিকে বা ঘড়ির কাঁটার বিপরীত দিকে ঘুরতে পারে। দুটি ধরণের ঘূর্ণমান এনকোডার রয়েছে: পরম এবং আপেক্ষিক (বর্ধিত) এনকোডার।

যখন একটি নিখুঁত এনকোডার বর্তমান খাদ কোণের সমানুপাতিক একটি মান আউটপুট করে, একটি বর্ধিত এনকোডার খাদ এবং তার দিকের ধাপ আউটপুট করে। (এই ক্ষেত্রে আমাদের একটি বর্ধিত এনকোডার আছে)

রোটারি এনকোডারগুলি আরও জনপ্রিয় হয়ে উঠছে কারণ আপনি একটি বৈদ্যুতিক মডিউলে দুটি ফাংশন ব্যবহার করতে সক্ষম: অপারেশন নিশ্চিত করার জন্য একটি সহজ সুইচ এবং নেভিগেট করার জন্য রোটারি এনকোডার, যেমন একটি মেনুর মাধ্যমে।

একটি ক্রমবর্ধমান ঘূর্ণমান এনকোডার দুটি আউটপুট সংকেত তৈরি করে যখন তার খাদ ঘুরছে। দিকের উপর নির্ভর করে, একটি সংকেত অন্যটিকে নেতৃত্ব দেয়। (নিচে দেখ)

ধাপ 1: আউটপুট ডেটা বোঝা

আউটপুট ডেটা বোঝা
আউটপুট ডেটা বোঝা

আপনি দেখতে পাচ্ছেন কখন এনকোডার শাফট ঘড়ির কাঁটার দিকে ঘুরতে শুরু করে, আউটপুট A প্রথমে LOW তে পড়ে এবং আউটপুট B এটি অনুসরণ করে। ঘড়ির কাঁটার বিপরীত দিকে অপারেশনটি বিপরীত দিকে মোড় নেয়।

এখন আমাদের আমাদের ontController এ এটি বাস্তবায়ন করতে হবে (আমি একটি Arduino Nano ব্যবহার করেছি)।

ধাপ 2: সার্কিট তৈরি করুন

সার্কিট তৈরি করুন
সার্কিট তৈরি করুন
সার্কিট তৈরি করুন
সার্কিট তৈরি করুন

আউটপুট একটি উচ্চ এবং একটি নিম্ন পার্শ্ব তৈরি করার আগে আমি বর্ণিত হিসাবে। PinController এর ডেটা পিন A এবং B এ একটি পরিষ্কার উচ্চতা পেতে আমাদের পুল-আপ প্রতিরোধক যোগ করতে হবে। সাধারণ পিন সি LOW ফ্ল্যাঙ্কের জন্য সরাসরি মাটিতে চলে যায়।

অভ্যন্তরীণ সুইচ (পুশ-বোতাম) সম্পর্কে তথ্য পেতে আমরা অন্য দুটি পিন ব্যবহার করব। তাদের মধ্যে একটি VCC এবং অন্যটি dataController এর একটি ডেটা পিনে যায়। একটি পরিষ্কার LOW পেতে আমাদের ডাটা পিনে একটি পুল-ডাউন রেসিস্টর যুক্ত করতে হবে।

আপনার ont কন্ট্রোলারের অভ্যন্তরীণ পুল-আপ এবং পুল-ডাউন প্রতিরোধক ব্যবহার করাও সম্ভব!

আমার ক্ষেত্রে পিনআউট এর মত দেখাচ্ছে:

  • +3, 3V => +3, 3V (Arduino) (এছাড়াও +5V সম্ভব)
  • GND => GND (Arduino)
  • A => Pin10
  • বি =>

    পিন

    11

  • সি => জিএনডি
  • SW =>

    পিন

    12

ধাপ 3: কোড লেখা

int pinA = 10; // অভ্যন্তরীণ সুইচ A int pinB = 11; // অভ্যন্তরীণ সুইচ B int pinSW = 12; // সুইচ (চাপা এনকোডার) int encoderPosCount = 0; // শূন্য থেকে শুরু হয়, আপনি চাইলে পরিবর্তন করুন

int positionval;

বুল সুইচভাল; int mrotateLast; int mrotate;

অকার্যকর সেটআপ() {

int mrotateLast = digitalRead (pinA); Serial.begin (9600); বিলম্ব (50); }

অকার্যকর লুপ () {রিডেনকোডার (); যদি (readswitch () == 1) {Serial.println ("Switch = 1"); }}

int readencoder () {

mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// knob ঘুরছে if (digitalRead (pinB)! = mrotate) {// switch A changed first -> rotating clockwise encoderPosCount ++; Serial.println ("ঘড়ির কাঁটার দিকে ঘোরানো"); } অন্যথায় {// সুইচ বি প্রথমে পরিবর্তিত হয়েছে- Serial.println ("ঘড়ির কাঁটার বিপরীতে ঘোরানো"); }

সিরিয়াল.প্রিন্ট ("এনকোডার অবস্থান:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; ফেরত encoderPosCount; } বুল রিডসুইচ () {

যদি (digitalRead (pinSW)! = 0) {// সুইচ চাপানো হয়

while (digitalRead (pinSW)! = 0) {} // সুইচটি বর্তমানে সুইচভাল = 1 টিপানো হয়েছে; } অন্যথায় {সুইচভাল = 0;} // সুইচটি আনপ্রেসড রিটার্ন সুইচভাল; }

এখন আপনি এনকোডারটি চালু করতে পারেন এবং পরিবর্তনশীল encoderPosCount গণনা করা হবে যদি আপনি ঘড়ির কাঁটার দিকে ঘোরান এবং যদি আপনি ঘড়ির কাঁটার বিপরীত দিকে ঘুরান তাহলে নিচে গণনা করা হবে।

এটাই! সহজভাবে এবং দরকারী।

কোড পরিবর্তন এবং নির্দ্বিধায় সঞ্চালন। আপনি আপনার প্রকল্পে এটি বাস্তবায়ন করতে পারেন।

আমি একটি LED প্রকল্পও আপলোড করব যেখানে আমি আমার LEDs এর উজ্জ্বলতা সেট করতে এনকোডার ব্যবহার করেছি।

প্রস্তাবিত: