کنترل استپرموتور با درایور L298N{جلسه بیست و ششم}

مقدمه

در این جلسه قصد داریم یک استپر موتور را راه اندازی کنیم. ساده ترین و ارزان ترین راه برای کنترل استپرموتور استفاده از درایور موتور L298N است که می تواند سرعت و جهت چرخش هر استپرموتور دوقطبی کوچک تا متوسط ​​ را کنترل کند. برای آشنایی با استپرموتور های می توانید از لینک زیر به طور کامل با استپر موتورها آشنا شوید. 

شناخت استپرموتورها

برای کاربردهای تک موتوره، درایوری مانند L298N خوب است، اما اگر می‌خواهید ماشین CNC یا چاپگر سه بعدی کنترل کنید می بایست از ماژول های دیگر استفاده کنید. زیرا استپرموتورها انواع مختلفی دارند و درایور مخصوص به خود را نیاز دارند. 

کنترل یک استپرموتور با پل H

ماژول L298N دارای دو پل H است. هر پل H یکی از سیم پیچ های الکترومغناطیسی یک استپرموتور را به حرکت در می آورد. با انرژی دادن به این سیم پیچ های الکترومغناطیسی در یک توالی خاص، شفت استپر را می توان دقیقاً در مراحل کوچک به جلو یا عقب حرکت داد. با این حال، سرعت موتور با تعداد دفعاتی که این سیم پیچ ها انرژی می گیرند تعیین می شود.

تراشه درایور موتور L298N

در مرکز ماژول یک تراشه بزرگ و مشکی با یک هیت سینک درشت – L298N، از ST Semiconductor قرار دارد.

در داخل تراشه L298N، دو پل H استاندارد را خواهید دید که قادر به حرکت یک جفت موتور DC یا یک استپرموتور هستند. درایور موتور L298N دارای محدوده تغذیه 5 ولت تا 35 ولت است و قادر به تامین جریان پیوسته 2 آمپر در هر سیم پیچ است، بنابراین با اکثر استپرموتورهای ما بسیار خوب کار می کند.

مشخصات فنی

در اینجا مشخصات آمده است:

ولتاژ خروجی موتور 5 ولت – 35 ولت
ولتاژ خروجی موتور (توصیه می شود) 7 ولت – 12 ولت
ولتاژ ورودی منطقی 5 ولت – 7 ولت
جریان پیوسته در هر کانال 2A
حداکثر اتلاف نیرو 25 وات

برای جزئیات بیشتر لطفا به دیتاشیت زیر مراجعه کنید.

پین اوت ماژول درایور موتور L298N

ماژول L298N در مجموع دارای 12 پین است که آن را به طور کامل متصل می کند. پین ها به شرح زیر است:

در زیر یک به یک پین ها را شرح می دهیم:

پین های پاور

ماژول درایور موتور L298N از طریق ترمینال پیچی 3 پین 3.5 میلی متری تغذیه می شود.

درایور موتور L298N در واقع دارای دو پایه برق ورودی – VS و VSS است. که این پایه ها به پل های H داخلی آی سی نیرو می دهد تا موتور را به حرکت درآورد. شما می توانید یک ولتاژ ورودی بین 5 تا 12 ولت را به این پین وصل کنید.

VSSبرای هدایت مدار منطقی داخل آی سی L298N که می تواند 5 تا 7 ولت باشد استفاده می شود.

GNDپین زمین مشترک است.

پین های خروجی

کانال های خروجی درایور موتور OUT1،OUT2،OUT3وOUT4 با دو ترمینال پیچی 3.5 میلی متری است. شما می توانید هر استپر موتور 12-24 ولتی را به این ترمینال ها وصل کنید.

هر کانال ماژول می تواند تا 2A را به استپر موتور برساند. با این حال مقدار جریان تامین شده به موتور به منبع تغذیه سیستم بستگی دارد.

پین های کنترل

با استفاده از چهار پایه کنترل در IN3،IN2،IN1وIN4، می توانید هم سرعت و هم جهت چرخش استپر موتور را کنترل کنید. این پین ها در واقع سوئیچ های مدار H-Bridge را در داخل تراشه L298N کنترل می کنند.

نحوه پالس دادن به این پین ها بر رفتار موتور به صورت زیر تأثیر می گذارد:

    1. توالی پالس ها جهت چرخش موتور را تعیین می کند.
    2. فرکانس پالس ها سرعت موتور را تعیین می کند.
    3. تعداد پالس ها تعیین می کند که موتور تا چه اندازه بچرخد.

فعال کردن پین ها

پین های فعال ENA وENB برای فعال یا غیرفعال کردن موتور مستقل از سیگنال های ورودی استفاده می شود.

 

با قرار دادن پین ها در وضعیت HIGH، موتور فعال می شود، در حالی که با قراردان آنها در وضعیت LOW، موتور غیر فعال می شود.

ماژول معمولاً با جامپرهایی روی این پین ها عرضه می شود. هنگامی که جامپرها در جای خود قرار می گیرند، موتور فعال می شود. اگر می خواهید موتور را به صورت برنامه ای کنترل کنید، باید جامپرها را بردارید و آن پین ها را به پین ​​های دیجیتال آردوینو متصل کنید.

رگولاتور و جامپر 5 ولت روی برد

این ماژول دارای یک رگولاتور 5 ولت داخلی – 78M05 است. می توان آن را از طریق جامپر فعال یا غیرفعال کرد.

 

هنگامی که این جامپر در جای خود قرار می گیرد، رگولاتور 5 ولت فعال می شود که منبع تغذیه منطقی (VSS) را از منبع تغذیه موتور (VS) استخراج می کند. در این حالت، ترمینال ورودی 5 ولت (VSS) به عنوان پایه خروجی عمل می کند و 5 ولت 0.5 آمپر را ارائه می دهد. می توانید از آن برای تغذیه آردوینو یا مدارهای دیگری که به منبع تغذیه 5 ولت نیاز دارند استفاده کنید.

هنگامی که جامپر حذف می شود، رگولاتور 5 ولت غیرفعال است و باید به طور جداگانه 5 ولت را از طریق پین VSS تامین کنیم.

هشدار:

اگر منبع تغذیه موتور کمتر از 12 ولت باشد، می توانید جامپر را در جای خود بگذارید. اگر ولتاژ بالاتر از 12 ولت است، برای جلوگیری از آسیب رساندن به رگولاتور 5 ولت، باید جامپر را بردارید. همچنین وقتی جامپر در جای خود قرار دارد، به هر دو پایه VSS و VS برق ندهید.

چگونه می توان فازهای یک موتور پله ای دوقطبی را شناسایی کرد؟

قبل از شروع اتصال موتور به ماژول، باید فازهای موتوری را که قصد استفاده از آن را دارید شناسایی کنید. بهترین راه برای انجام این کار بررسی دیتاشیت موتور است.

اگر نمی توانید دیتاشیت را پیدا کنید، از ترفند زیر استفاده کنید.

    • مولتی متر خود را در حالت “مقاومت” قرار دهید و به سادگی جفت سیم ها را برای مقاومت آنها اندازه گیری کنید. مولتی متر را در حالت مینیمم قرار دهید.
    • اگر مقاومت فقط چند اهم (کوچکتر از 100Ω) باشد، یک جفت خواهید داشت.
    • دو سیم دیگر باید جفت دوم را تشکیل دهند.

سیم کشی یک استپرموتور دوقطبی به ماژول L298N و آردوینو

بیایید با اتصال منبع تغذیه به ماژول شروع کنیم. در آزمایش ما از استپر دوقطبی NEMA 17 با ولتاژ 12 ولت استفاده می کنیم. بنابراین منبع تغذیه 12 ولت خارجی را به ترمینال VS متصل می کنیم.

بعد، باید 5 ولت را به مدار منطقی L298N برسانیم. ما از رگولاتور 5 ولت داخلی برای دریافت 5 ولت از منبع تغذیه موتور استفاده خواهیم کرد، بنابراین جامپر 5 ولت EN را در جای خود بگذارید.

همچنین باید هر دو جامپر ENA و ENB را در جای خود نگه دارید تا موتور همیشه فعال باشد.

اکنون، پایه های ورودی (IN1، IN2، IN3 و IN4) ماژول L298N را به چهار پایه خروجی دیجیتال آردوینو (8، 9، 10 و 11) وصل کنید.

در نهایت یک فاز موتور را به ترمینال A (OUT1 و OUT2) و فاز دیگر را به ترمینال B (OUT3 و OUT4) وصل کنید. قطبیت مهم نیست

تصویر زیر نحوه سیم کشی همه چیز را نشان می دهد.

کد آردوینو – کنترل موتور پله ای NEMA 17

در اینجا طرح ساده ای است که باعث می شود استپر موتور در جهت عقربه های ساعت با سرعت 60 دور در دقیقه و سپس در خلاف جهت عقربه های ساعت بچرخد.

این طرح به شما درک کاملی از نحوه کنترل یک استپرموتور دوقطبی مانند NEMA 17 با درایور موتور L298N می دهد و می تواند به عنوان پایه ای برای آزمایش ها و پروژه های کاربردی تر باشد.

// Include the Arduino Stepper Library
#include <Stepper.h>

// Number of steps per output rotation
const int stepsPerRevolution = 200;

// Create Instance of Stepper library
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup()
{
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);
}

voidloop()
{
  // step one revolution in one direction:
  Serial.println(“clockwise”);
  myStepper.step(stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println(“counterclockwise”);
  myStepper.step(-stepsPerRevolution);
  delay(500);

توضیح کد:

طرح با گنجاندن کتابخانه استپر آردوینو شروع می شود . کتابخانه موتور پله ای با Arduino IDE ارائه می شود و از ترتیب پالس هایی که به موتور ارسال می شود پشتیبانی می کند.

// Include the Arduino Stepper Library
#include <Stepper.h>

پس از گنجاندن کتابخانه، متغیری به نام stepsPerRevolutionتعریف می کنیم . همانطور که از نام آن پیداست، تعداد مراحل در هر دور است که موتور شما در آن رتبه بندی شده است. در مورد ما 200 است.

// Number of steps per output rotation
const int stepsPerRevolution = 200;

مرحله بعد، یک شی از کتابخانه Stepper ایجاد می کنیم.

// Create Instance of Stepper library
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

در قسمت تنظیمات کد، سرعت استپر موتور را با فراخوانی setSpeed()تابع تنظیم کرده و ارتباط سریال را مقدار دهی اولیه می کنیم.

void setup()
{
  // set the speed at 60 rpm:
  myStepper.setSpeed(60);
  // initialize the serial port:
  Serial.begin(9600);
}

در نهایت در بخش حلقه کد، تابعی را فراخوانی می کنیم step()که باعث می شود موتور تعداد مراحل خاصی را با سرعت تعیین شده توسط setSpeed()تابع بچرخاند. ارسال یک عدد منفی به این تابع، جهت چرخش موتور را معکوس می کند.

voidloop()
{
  // step one revolution in one direction:
  Serial.println(“clockwise”);
  myStepper.step(stepsPerRevolution);
  delay(500);

  // step one revolution in the other direction:
  Serial.println(“counterclockwise”);
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

دوستان عزیز بیشتر دوره های مربوط به این وب سایت رایگان می باشد. در صورت تمایل می توانید به اندازه وسع مالی خود(هر چند ناچیز) جهت پرداخت هزینه های نگهداری وب سایت از ما حمایت کنید:

برای دریافت آخرین مطالب سایت  و همچنین مطالب منحصر به فرد دیگر که در سایت منتشر نمی شوند میتوانید در کانال تلگرام ما عضو شوید و یا در اینستاگرام ما را فالوو کنید:

اشتراک گذاری:
مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید