28BYJ-48 স্টেপার মোটর: আপনার যা জানা দরকার

28byj-48 স্টেপার মোটর

El 28BYJ-48 একটি ইউনিপোলার স্টেপার মোটর কম খরচে এবং উচ্চ নির্ভুলতা, ইলেকট্রনিক্স প্রকল্পের জন্য আদর্শ, 3D প্রিন্টার, CNC মেশিন এবং রোবোটিক্সের জন্য। এর কমপ্যাক্ট আকার, কম বিদ্যুত খরচ এবং ব্যবহারের সহজতা এটিকে ইলেকট্রনিক্স শৌখিন এবং পেশাদারদের জন্য একটি জনপ্রিয় পছন্দ করে তোলে।

উপরন্তু, এই ইঞ্জিনের সাথে, ক ULN2003 সহ মডিউল, আপনার নিয়ন্ত্রণের জন্য। এইভাবে, মাইক্রোকন্ট্রোলার বা একটি বোর্ড ব্যবহার করে এই সিস্টেমটি সম্পূর্ণরূপে ব্যবহার করতে সক্ষম হওয়ার জন্য আমাদের কাছে প্রয়োজনীয় সবকিছু রয়েছে Arduino বা অনুরূপ.

28BYJ-48 স্টেপার মোটর কি?

ইনডোর বৈদ্যুতিক মোটর: স্ট্যাটার-রটার

Un স্টেপার মোটর এক ধরনের বৈদ্যুতিক মোটর যা ক্রমাগত ঘূর্ণনের পরিবর্তে ছোট বিচ্ছিন্ন কৌণিক ধাপে চলে। এটি ইলেক্ট্রোম্যাগনেটের একটি সেট ব্যবহার করে কাজ করে যা একটি নির্দিষ্ট ক্রমে সক্রিয় হয়। বিভিন্ন ইলেক্ট্রোম্যাগনেট সক্রিয় করার মাধ্যমে, একটি চৌম্বক ক্ষেত্র তৈরি হয় যা মোটরের রটারকে আকর্ষণ করে, যার ফলে এটি একবারে এক ধাপ ঘোরে। প্রতি বিপ্লবের ধাপের সংখ্যা এবং আন্দোলনের নির্ভুলতা নির্দিষ্ট মোটর নকশা এবং ব্যবহৃত নিয়ন্ত্রণ ক্রম উপর নির্ভর করে।

স্টেপার মোটরগুলির মধ্যে আমাদের দুটি প্রকার রয়েছে:

  • ইউনিপোলার- তাদের কয়েলের একটি একক সেট রয়েছে এবং কারেন্টকে বিপরীত করতে এবং মোটরটিকে উভয় দিকে ঘোরানোর জন্য একটি বিশেষ নিয়ামকের প্রয়োজন হয়।
  • বাইপোলার- তাদের দুটি স্বতন্ত্র কয়েলের সেট রয়েছে, যা তাদের একটি বিশেষ নিয়ন্ত্রকের প্রয়োজন ছাড়াই উভয় দিকে ঘুরতে দেয়।

28BYJ-28 এর ক্ষেত্রে এটি ইউনিপোলার টাইপ, যেমনটি আমি আগে উল্লেখ করেছি। এবং, এই দলের মধ্যে, এটি নিম্নলিখিত থাকার দ্বারা চিহ্নিত করা হয় চশমা:

  • ইউনিপোলার স্টেপার: মাত্র 4টি তারের সাথে সহজ নিয়ন্ত্রণ।
  • ইন্টিগ্রেটেড রিডুসার: উচ্চ নির্ভুলতা (প্রতি ধাপে 0.088°) এবং টর্ক (3 N·cm) অফার করে।
  • কম খরচ: 83 mA (5V মডেল) বা 32 mA (12V মডেল)।
  • প্রতিপালন: 5V বা 12V (মডেলের উপর নির্ভর করে)।
  • অর্থনৈতিক মূল্য: প্রতি ইউনিট €1.2 থেকে, অথবা যদি তারা একটি ULN2003 মডিউল অন্তর্ভুক্ত করে তবে আরও কিছু বেশি।

জন্য হিসাবে সম্ভাব্য অ্যাপ্লিকেশন, আমি ইতিমধ্যে তাদের কিছু আগে উল্লেখ করেছি, কিন্তু এখানে আমি আপনাকে আবার আপনার প্রকল্পগুলির জন্য কিছু ধারণা দিই:

  • জলবাহী এবং বায়ুসংক্রান্ত ভালভ নিয়ন্ত্রণ.
  • আর্টিকুলেটেড রোবট এবং রোবোটিক অস্ত্র।
  • সেন্সর অবস্থান।
  • স্ক্যানার জন্য ঘোরানো টেবিল.
  • 3D প্রিন্টার।
  • সিএনসি মেশিন।

স্টেপার মোটর একা কাজ করে না, এটির জন্য অন্য উপাদান প্রয়োজন। এক্ষেত্রে, 28BYJ-48 একটি সমন্বিত ULN2003 সহ একটি বোর্ড দ্বারা নিয়ন্ত্রিত হয়, যা মোটর কয়েলগুলিকে পাওয়ার জন্য আরডুইনো আউটপুটগুলির কারেন্টকে প্রসারিত করার অনুমতি দেয়। সঠিক ক্রমানুসারে কয়েলগুলি সক্রিয় করার মাধ্যমে, মোটরটি ধাপে ধাপে অত্যন্ত নির্ভুলতার সাথে ঘোরে।

নিয়ন্ত্রণ ক্রম এবং পর্যায়গুলির ধরন

আছে 28BYJ-48 এর জন্য বিভিন্ন নিয়ন্ত্রণ ক্রম, সবচেয়ে সাধারণ হল:

  • সম্পূর্ণ তরঙ্গ ক্রম: একই সময়ে সমস্ত কয়েল সক্রিয় করে।
  • অর্ধেক ধাপের ক্রম: একই সময়ে দুটি সংলগ্ন কয়েল সক্রিয় করে।
  • মাইক্রোস্কোপিক ধাপ ক্রম: একবারে একটি কয়েল সক্রিয় করে।

দেখা যাক পর্যায়গুলি বিস্তারিত:

  • ক্রম 1-পর্যায়: একটি 1-ফেজ সিকোয়েন্সে আমরা একবারে একটি একক কয়েল চালু করি। এই ইগনিশন ক্রমটিকে একটি টেবিলে নিয়ে গেলে, ইঞ্জিন পিনআউটে নিম্নলিখিতগুলি তৈরি করতে হবে:
এর মধ্যে paso A B এ ' খ'
1 ON বন্ধ বন্ধ বন্ধ
2 বন্ধ ON বন্ধ বন্ধ
3 বন্ধ বন্ধ ON বন্ধ
4 বন্ধ বন্ধ বন্ধ ON
  • 2-পর্যায়ের ক্রম: আমরা প্রতিটি পর্বে দুটি সম্পর্কীয় কয়েল চালু করি, তাই উত্পন্ন চৌম্বক ক্ষেত্রটি বেশি (41% বেশি) তাই মোটরের আরও টর্ক রয়েছে, অর্থাৎ আমরা আরও শক্তি পাই। একটি নেতিবাচক পয়েন্ট হিসাবে, আমরা দ্বিগুণ শক্তি খরচ. টেবিলের জন্য, এটি হবে:
এর মধ্যে paso A B এ ' খ'
1 ON ON বন্ধ বন্ধ
2 বন্ধ ON ON বন্ধ
3 বন্ধ বন্ধ ON ON
4 ON বন্ধ বন্ধ ON
  • অর্ধ-পদক্ষেপের ক্রম: এটি আরেকটি ধাপ যা আমরা দেখতে যাচ্ছি, আপনি অনুভব করতে পারবেন কোনটি আপনার সবচেয়ে বেশি আগ্রহী। এখানে আমরা পর্যায়ক্রমে এক এবং দুটি কয়েল চালু করি, অর্ধেক ধাপের নির্ভুলতা অর্জন করি। এটি এমন অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয় যেখানে সর্বোচ্চ নির্ভুলতার প্রয়োজন হয়, যদিও অ্যাপ্লিকেশনটি টর্কের সীমাতে থাকলে সমস্যা হতে পারে। সারণী আকারে ক্রম প্রকাশ করার ফলে:
অর্ধ-পদক্ষেপ A B এ ' খ'
1 ON বন্ধ বন্ধ বন্ধ
2 ON ON বন্ধ বন্ধ
3 বন্ধ ON বন্ধ বন্ধ
4 বন্ধ ON ON বন্ধ
5 বন্ধ বন্ধ ON বন্ধ
6 বন্ধ বন্ধ ON ON
7 বন্ধ বন্ধ বন্ধ ON
8 ON বন্ধ বন্ধ ON

Arduino সহ 28BYJ-28

Arduino সহ 28byj-48

প্রথম জিনিস সঠিকভাবে সংযোগ করা হয় মডিউল এবং মোটর 28byj-48 আমাদের Arduino বোর্ডে, এটি করার জন্য, আপনাকে কেবল নিম্নলিখিত সংযোগগুলি করতে হবে:

  • পিন - ULN2003 থেকে Arduino এর GND পর্যন্ত।
  • আরডুইনো থেকে ULN2003-এর পিন + Vcc (5v বা অন্য ক্ষেত্রে, যদি এটি একটি 12v মোটর হয়, সেই ভোল্টেজ সহ একটি পাওয়ার সাপ্লাই ব্যবহার করতে হবে)।
  • ULN1-এর IN2, IN3, IN4 এবং IN2003 আরডুইনোর ডিজিটাল ইনপুট D8, D9, D10 এবং D11-এ।
  • 28byj-48 মোটর, এটিকে ULN2003 মডিউলের পোর্টের সাথে সংযুক্ত করুন।

এখন আপনি সংযুক্ত, পরবর্তী জিনিস ব্যবহার করা হয় Arduino IDE-তে একটি উদাহরণ, যা আপনি আপনার পছন্দ অনুযায়ী পরীক্ষা বা পরিবর্তন করতে ব্যবহার করতে পারেন। এই উদাহরণে, সমস্ত ফেজ টেবিল মন্তব্য করা হয়েছে, যেমন // লাইনের সামনে, আপনি জানেন... আপনি যদি তাদের মধ্যে একটি ব্যবহার করতে চান তবে নির্দেশের সামনে // মুছে দিন।

//Definir los pines
const int motorPin1 = 8;    // 28BYJ48 In1
const int motorPin2 = 9;    // 28BYJ48 In2
const int motorPin3 = 10;   // 28BYJ48 In3
const int motorPin4 = 11;   // 28BYJ48 In4
                   
//Definición de variables
int motorSpeed = 1200;   //Velocidad del motor
int stepCounter = 0;     //Contador de pasos
int stepsPerRev = 4076;  //Pasos para un giro completo

//Tablas de secuencia (descomentar la que necesites)
//Secuencia 1-fase
//const int numSteps = 4;
//const int stepsLookup[4] = { B1000, B0100, B0010, B0001 };

//Secuencia 2-fases
//const int numSteps = 4;
//const int stepsLookup[4] = { B1100, B0110, B0011, B1001 };

//Secuencia media fase
//const int numSteps = 8;
//const int stepsLookup[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };

void setup()
{
  //Declarar los pines usados como salida
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop()
{
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    clockwise();
    delayMicroseconds(motorSpeed);
  }
  for (int i = 0; i < stepsPerRev * 2; i++)
  {
    anticlockwise();
    delayMicroseconds(motorSpeed);
  }
  delay(1000);
}

void clockwise()
{
  stepCounter++;
  if (stepCounter >= numSteps) stepCounter = 0;
  setOutput(stepCounter);
}

void anticlockwise()
{
  stepCounter--;
  if (stepCounter < 0) stepCounter = numSteps - 1;
  setOutput(stepCounter);
}

void setOutput(int step)
{
  digitalWrite(motorPin1, bitRead(stepsLookup[step], 0));
  digitalWrite(motorPin2, bitRead(stepsLookup[step], 1));
  digitalWrite(motorPin3, bitRead(stepsLookup[step], 2));
  digitalWrite(motorPin4, bitRead(stepsLookup[step], 3));
}


মন্তব্য করতে প্রথম হতে হবে

আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

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