ویژگی های درایور استپر موتور TMC2100
درایور TMC2100، یکی از انواع درایورهای استپ موتور موجود در بازار میباشد. اصول عملکرد این درایور مانند درایورهای DRV8825 و A4988 میباشد.
این ماژول جهت کنترل استپر موتورهای دو قطبی استفاده میشود. تنها با استفاده از دو پین این ماژول میتوان جهت چرخش و گامهای چرخش استپر موتور را کنترل نمود. با ارسال هر سیگنال از طرف پین گام چرخش، موتور به اندازه یک گام جابهجا میشود. ویژگیهای این ماژول عبارت اند از:
- گام کامل این درایور، 200 گام (هر گام 1.8 درجه) به ازای هر چرخش میباشد.
- جریان مجاز پیوسته عبوری به ازای هر فاز : 1.25 آمپر(RMS) و یا 1.77 آمپر(Max)
- ماکزیمم جریان در کوتاه مدت برای هر فاز : 5 آمپر
- ولتاژ موتور : 5.5 تا 46 ولت
- دارای مد stealthChop جهت کاهش نویزپذیری
- دارای مد spreadCycle جهت افزایش گشتاور
نکته
تعداد گامهای آن از گام کامل تا گام 1/16 میباشد.
نکته
پتانسیومتر روی برد ماژول جهت ایجاد محدودیت جریان استفاده میشود.
دیتاشیت آی سی TMC2100 را میتوانید از اینجا دانلود کنید.
معرفی پایه های (Pinout) درایور استپر موتور TMC2100
این درایور دارای پایههایی به شرح زیر است:
پایه های تغذیه:
- GND-MOT: زمین تغذیه موتور
- V-MOT: ولتاژ تغذیه موتور – 5.5 تا 46 ولت
- GND-LOGIC: زمین تغذیه درایور
- V-IO: ولتاژ ورودی تغذیه دایور
نکته
برای محافظت درایور از جرقههای ولتاژ VMOT، میتوانید از خازن استفاده کنید.
پایه های سیمپیچی موتور:
- M1A: پایه اول کویل 1 موتور
- M1B: پایه دوم کویل 1 موتور
- M2A: پایه اول کویل 2 موتور
- M2B: پایه دوم کویل 2 موتور
پایه های کنترل حرکت موتور:
- DIR: سیگنال دیجیتال برای کنترل جهت حرکت موتور
- STEP: سیگنال دیجیتال برای کنترل گام های چرخش
- EN: با فعال شدن این سیگنال، خروجیهای درایور غیرفعال میشوند.
پایه های بدون استفاده:
- DIAG0: پایه بدون استفاده
- DIAG1: پایه بدون استفاده
پایه های تنظیمات درایور:
- CFG1: پایه اول تنظیمات درایور
- CFG2: پایه دوم تنظیمات درایور
- CFG3: پایه سوم تنظیمات درایور
نکته
برای مد کاری spreadCycle بایستی CFG1 را به GND متصل کنید.
تغییرات دو پایه CFG1 و CFG2، حالتهای کاری مختلفی به وجود میآورد. حالتهای پیشنهادی به رنگ سبز آورده شدهاست:
پین اوت (Pinout) درایور TMC2100 در تصویر زیر آمدهاست.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
تذکر
دقت کنید برای راهاندازی این موتور توسط درایور TMC2100 به منبع تغذیه (آداپتور، باتری و ….) بالاتر از 5.5 ولت نیاز دارید. منبع تغذیه در لیست فوق ذکر نشده است. خودتان یکی از انواع آن را تهیه کنید.
در ضمن دقت داشته باشید که منبع تغذیه شما باید بتواند جریان کویلهای موتور را تامین کند.
راه اندازی درایور استپر موتور TMC2100 با آردوینو
گام اول: سیم بندی
عکس زیر نشان دهنده نحوه اتصال درایور به دیگر قطعات میباشد.
نکته
پایه های CFG1 و CFG2 را به صورت OPEN قرار میدهیم. بنابراین در حالت 1/16 کار میکند.
گام دوم: محدودسازی جریان
بهترین روش برای تنظیم جریان موتور، محاسبه Vref از طریق پتانسیومتر میباشد.
ابتدا Vref را محاسبه کرده و سپس از طریق فرمولهای زیر IRMS و IMax محاسبه میگردند:
Irms = Vref × 0.71
Imax = Irms × 1.41
گام سوم: کد
کد زیر را روی آردوینو خود آپلود کنید.
/*
TMC2100 -Stepper-Motor-Driver-Module
made on 2 Dec 2020
by Amir Mohammad Shojaee @ Electropeak
Home
*/
const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 3200;
int incomingByte = 0; // for incoming serial data
int input = 0;
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
Serial.println("1.full rotation in forward");
Serial.println("2.full rotation in backward");
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
input = incomingByte ;
switch (input) {
case '1': // if input=1 ....... motors turn forward
forward();
break;
case '2': // if input=2 ....... motors turn backward
backward();
break;
}
delay(200);
input=0;
}
}
void forward() { //function of forward
digitalWrite(dirPin, HIGH);
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(100);
digitalWrite(stepPin, LOW);
delayMicroseconds(100);
}
delay(1000); // Wait a second
}
void backward() { //function of backward
digitalWrite(dirPin, LOW);
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(100);
digitalWrite(stepPin, LOW);
delayMicroseconds(100);
}
delay(1000); // Wait a second
}
در ابتدای برنامه شماره پین های DIR و STEP را مشخص میکنیم. سپس گام درایور را 3200 قرار میدهیم. در برنامه دو تابع داریم که یکی برای حرکت forward و دیگری برای حرکت backward نوشته شدهاست. با فشردن عدد 1 در سریال مانیتور، موتور یک دور در جهت forward و با فشردن عدد 2 موتور یک دور در جهت backward حرکت میکند.
نکته
به دلیل اینکه دو پایه CFG1 و CFG2 بدون اتصال هستند، تعداد گام موتور در 16 ضرب میشود. بنابراین مقدار 3200(200*16=3200) را در متغیر stepsPerRevolution ذخیره میکنیم.
با باز کردن سریال مانیتور تصویر زیر را مشاهده میکنید. با فشردن عدد هر گزینه میتوانید جهت حرکت موتور را در یک دور تعیین کنید.
Comments (2)
دیتاشیت اشتباهی گذاشتید.
سلام.
ممنون از توجه شما. اصلاح شد.