ویژگی های موتور گیربکس دار تک محوره 1:120
اگر در حوزه الکترونیک و رباتیک فعالیت میکنید، حداقل یک بار با موتورهای DC برخورد داشتهاید. این موتورها یکی از پرکاربردترین المانها در الکترونیک و رباتیک میباشند. این موتورها انرژی الکتریکی جریان مستقیم را به انرژی مکانیکی تبدیل میکنند.
استاتور این موتورها توسط یک منبع خارجی تامین میشود. در نتیجه آن، جریان جاری شده در استاتور، میدان یکنواختی را در زیر قطب ها به وجود میآورد. البته میتوان میدان استاتور را از یک آهنربای دائم نیز تامین کرد. حال اگر آرمیچر هم توسط منبع خارجی و یا خود استاتور تغذیه شود، یک میدان نیز در آرمیچر پدید میآید. از بر همکنش میدان های استاتور و آرمیچر، موتور شروع به چرخش میکند.
این موتورها در ولتاژ و سرعت های گوناگون ساخته میشوند. با اضافه کردن گیربکس به این موتورها میتوان با کاهش سرعت آن، گشتاور اعمالی به آن را افزایش داد. کنترل سرعت موتورهای DC به سه روش زیر انجام میشود:
- کنترل ولتاژ
- کنترل جریان
- مقاومت آرمیچر
معرفی پایه های (Pinout) موتور گیربکس دار تک محوره 1:120
این موتورها دارای دو پایه جهت اتصال به منبع تغذیه میباشد.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
تذکر
برای ادامه آموزش راهاندازی میتوانید از انواع موتورهای DC و درایورهای آنها استفاده کنید.
نرم افزارهای مورد نیاز
راه اندازی موتور گیربکس دار تک محوره 1:120 با آردوینو
گام اول: سیم بندی
عکس زیر نحوه اتصال دو موتور جهت راهاندازی را نشان میدهد.
هشدار
دقت کنید به دلیل اینکه موتورهای شما حداکثر 6 ولت میباشد از منبع تغذیه با ولتاژ بالاتر از 6 ولت استفاده نکنید.
گام دوم: کد
کد زیر را روی آردوینو خود آپلود کنید.
/*
DC-Motor
made on 29 Dec 2020
by Amir Mohammad Shojaee @ Electropeak
Home
*/
#define A1 5 // Motor A pins
#define A2 6
#define B1 10 // Motor B pins
#define B2 11
int incomingByte = 0; // for incoming serial data
void setup() {
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(B1, OUTPUT);
pinMode(B2, OUTPUT);
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(B1, LOW);
digitalWrite(B2, LOW);
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
Serial.println("select direction of movement");
Serial.println("1.forward");
Serial.println("2.backward");
Serial.println("3.stop");
}
int input = 0;
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
input = incomingByte - 48; //convert ASCII code of numbers to 1,2,3
switch (input) {
case 1: // if input=1 ....... motors turn forward
forward();
break;
case 2: // if input=2 ....... motors turn backward
backward();
break;
case 3: // if input=1 ....... motors turn stop
Stop();
break;
}
delay(200);
input=0;
}
}
void forward() { //function of forward
analogWrite(A1, 255);
analogWrite(A2, 0);
analogWrite(B1, 255);
analogWrite(B2, 0);
}
void backward() { //function of backward
analogWrite(A1, 0);
analogWrite(A2, 210);
analogWrite(B1, 0);
analogWrite(B2, 210);
}
void Stop() { //function of stop
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(B1, LOW);
digitalWrite(B2, LOW);
}
توسط این برنامه میتوان از طریق سریال مانیتور، جهت حرکت موتورها را کنترل کرد. به نحوی که اگر کلید شماره 1 وارد شود، موتور با حداکثر سرعت در جهت مستقیم حرکت میکند. اگر کلید شماره 2 وارد شود، موتور با سرعتی کمتر از حداکثر در جهت معکوس حرکت میکند. در آخر نیز با فشردن کلید شماره 3، موتور میایستد.