ماژول L298 چیست؟ — راهنمای کاربردی استفاده

۷۰۲۰ بازدید
آخرین به‌روزرسانی: ۱۰ اردیبهشت ۱۴۰۲
زمان مطالعه: ۱۳ دقیقه
ماژول L298 چیست؟ — راهنمای کاربردی استفاده

اگر قصد ساخت چیزی مانند ربات را داشته باشید که در آن موتور برای چرخش به کار رفته است، باید کنترل موتور را به صورت دقیق و قابل قبول انجام دهید. در این موارد، موتورهای DC کاربرد فراوانی دارند. یکی از ساده‌ترین و ارزان‌ترین راه‌ها برای کنترل موتورهای DC، استفاده از ماژول L298 است. با استفاده از این واسط در کنار آردوینو می‌توانید سرعت و جهت چرخش دو موتور DC را کنترل کنید. همچنین، با ماژول L298 می‌توانید موتورهای پله‌ای دوقطبی را به خوبی کنترل کنید. در ادامه، مطالب بیشتری را درباره ماژول L298 برای کنترل موتورهای DC و موتورهای پله‌ای بیان می‌کنیم.

997696

کنترل موتور DC

برای اینکه بتوانیم کنترل کاملی بر موتور DC داشته باشیم، باید سرعت و جهت چرخش آن را کنترل کنیم. با تلفیق این دو تکنیک می‌توان به این مهم دست یافت:

  • مدولاسیون پهنای پالس (PWM) برای کنترل سرعت
  • پل اچ (H-Bridge) برای کنترل جهت چرخش

مدولاسیون پهنای پالس برای کنترل سرعت

سرعت یک موتور DC را می‌توان با تغییر ولتاژ ورودی آن کنترل کرد. یک روش معمول برای انجام این کار استفاده از PWM است. مدولاسیون پهنای پالس روشی است که در آن مقدار متوسط ​​ولتاژ ورودی با تولید دنباله‌ای از پالس‌های ON-OFF تنظیم می‌شود. ولتاژ متوسط ​​متناسب با پهنای پالس‌ها، معروف به چرخه کاری (Duty Cycle)، است.

هرچه چرخه کاری بزرگ‌تر باشد، متوسط ​​ولتاژ اعمال شده بر موتور DC بیشتر و در نتیجه سرعت بیشتر و هرچه چرخه کاری کمتر باشد، ولتاژ متوسط ​​اعمال شده روی موتور DC کمتر و در نتیجه سرعت آن کمتر است.

تصویر زیر تکنیک PWM را با چرخه‌های کاری مختلف و ولتاژ متوسط ​​متناظر با آن‌ها نشان می‌دهد.

تکنیک مدولاسیون پهنای پاس (PWM)
تکنیک مدولاسیون پهنای پاس (PWM)

پل اچ برای کنترل جهت چرخش

جهت چرخش موتور DC را می‌توان با تغییر قطب ولتاژ ورودی آن کنترل کرد. یک روش معمول برای انجام این کار استفاده از «پل اچ» (H-Bridge) است. مدار پل اچ شامل چهار سوئیچ است که موتور در مرکز آن قرار دارد و یک آرایش مانند حرف انگلیسی H را تشکیل می‌دهند.

بسته شدن همزمان دو کلید خاص، قطب ولتاژ اعمال شده به موتور را برعکس می‌کند و این امر باعث تغییر جهت چرخش موتور می‌شود. تصویر متحرک زیر، عملکرد مدار پل اچ را نشان می‌دهد.

عملکرد پل اچ
عملکرد پل اچ

آشنایی با ماژول L298

در قلب ماژول L298 تراشه بزرگ و مشکی L298N همراه با هیت سینک قرار دارد. ماژول L298 و به طور دقیق‌تر، ماژول L298N یک درایور موتور پل اچ دو کاناله است که می‌تواند یک جفت موتور DC را کنترل کند. این بدان معنی است که ماژول L298 می‌تواند به صورت جداگانه تا دو موتور را هدایت کند و این قابلیت، ماژول L238 را برای ساخت کنترل‌کننده‌های ربات‌های دوچرخ ایده‌آل می‌کند.

ماژول L298

منبع تغذیه ماژول L298

ماژول درایور موتور L298N از طریق 3 پین ۳٫۵ میلی‌متری تغذیه می‌شود و شامل پین‌هایی برای منبع تغذیه موتور (Vs)، زمین و منبع تغذیه 5 ولت (Vss) است.

تذکر: آی‌سی درایور 298N در واقع دارای دو پایه توان ورودی است: "Vss" و "Vs". پل اچ از پین Vs توان خود را برای هدایت موتورها دریافت می‌کند. ولتاژ این پین می‌تواند 5 تا 35 ولت باشد. ولتاژ Vss برای تغذیه مدارهای منطقی است که مقدار آن ممکن است بین 5 تا 7 ولت باشد. هر دوی این ولتاژ‌ها زمین مشترکی به نام "GND" دارند.

ماژول تصویر زیر، دارای یک رگولاتور ولتاژ 78M05 با مقدار ۵ ولت است که سازنده آن اس‌تی‌مایکروالکترونیکس (STMicroelectronics) است. این رگولاتور روی برد، از طریق جامپر فعال‌ یا غیرفعال‌ می‌شود.

ماژول L298N

وقتی این جامپر در مدار قرار داده شود، رگولاتور 5 ولت فعال می‌شود و منبع تغذیه منطقی (Vss) را از منبع تغذیه موتور (Vs) تأمین می‌کند. در این حالت، ترمینال ورودی 5 ولت به عنوان پین خروجی عمل می‌کند و 5 ولتِ 0٫5 آمپری را تحویل می‌دهد. می‌توان از این رگولاتور برای تغذیه آردوینو یا مدارهای دیگری که به منبع تغذیه 5 ولت نیاز دارند، استفاده کرد.

هنگامی که جامپر را برداریم، رگولاتور 5 ولت از کار می‌افتد و باید 5 ولت را از طریق ترمینال ورودی 5 ولت جداگانه تأمین کنیم.

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

افت ولتاژ ماژول L298N

اگر 12 ولت را به ترمینال منبع تغذیه موتور وصل کنیم، موتورها ولتاژ حدود 10 ولت دریافت می‌کنند. این بدین معناست که یک موتور 12 ولت DC هرگز با حداکثر سرعت خود نخواهد چرخید.

افت ولتاژ ماژول L298N

برای خارج شدن حداکثر سرعت از موتور ، منبع تغذیه موتور باید کمی ولتاژ بالاتر (2 ولت) از ولتاژ واقعی موتور باشد.

با توجه به افت ولتاژ 2 ولت، اگر از موتورهای 5 ولت استفاده می‌کنید، باید 7 ولت در ترمینال منبع تغذیه موتور تأمین کنید. اگر موتور 12 ولت دارید، ولتاژ تغذیه موتور شما باید 14 ولت باشد.

پین‌های خروجی ماژول L298

کانال‌های خروجی درایور موتور L298N برای موتور A و B با دو پین 3٫5 میلیمتری به لبه ماژول متصل می‌شوند.

پین‌ های خرو L298

می‌توانید دو موتور DC با ولتاژ بین 5 تا 35 ولت را به این ترمینال‌ها متصل کنید. هر کانال روی ماژول می‌تواند حداکثر 2A به موتور DC تحویل دهد. با این حال، میزان جریان تحویل داده شده به موتور به منبع تغذیه سیستم بستگی دارد.

پین‌های کنترل ماژول L298

برای هریک از کانال‌های L298N، دو نوع پین کنترل وجود دارد که به ما امکان کنترل همزمان سرعت و چرخش موتورهای DC را می‌دهد. پین‌های کنترلِ جهت و پین‌های کنترلِ سرعت.

پین‌های کنترل جهت در شکل زیر مشخص شده‌اند.

پین‌های کنترل جهت

با استفاده از پین‌های کنترل جهت، می‌توانیم موتور را در دو جهت بچرخانیم‌. این پین‌ها در واقع سوئیچ‌های مدار پل اچ داخل آی‌سی L298N را کنترل می‌کنند. ماژول L298 دارای دو پایه کنترلِ جهت برای هر کانال است. پایه‌های IN1 و IN2 جهت چرخش موتور A را کنترل می‌کنند، در حالی که IN3 و IN4 موتور B را کنترل می‌کنند. جهت چرخش یک موتور را می‌توان با اعمالِ منطقِ HIGH (5 ولت) یا منطقِ LOW (زمین) به این ورودی‌ها کنترل کرد. جدول زیر نحوه انجام این کار را نشان می‌دهد.

ورودی ۱ورودی ۲جهت چرخش
Low (0)Low (0)موتور خاموش
High (1)Low (0)مستقیم
Low (0)High (1)عکس
High (1)High (1)موتور خاموش

پین‌های کنترل سرعت در شکل زیر مشخص شده‌اند.

پین‌های کنترل سرعت

پین‌های کنترل سرعت، یعنی ENA و ENB، برای روشن یا خاموش کردن موتورها و کنترل سرعت آن‌ها استفاده می‌شوند.

با اعمال HIGH، این پایه‌ها موتور را می‌چرخانند و اعمال LOW باعث متوقف شدن آن‌ها می‌شود، اما با PWM می‌توانیم سرعت موتورها را کنترل کنیم.

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

پین‌های ماژول L298N

شکل زیر ماژول L298 و پین‌های آن را نشان می‌دهد.

ماژول L298

  • پین VCC توان موتور را تأمین می‌کند. ورودی این پین می‌تواند هر مقداری بین 5 تا 35 ولت باشد. به یاد داشته باشید اگر جامپر 5 ولت EN در جای خود قرار داشته باشد، برای رسیدن به حداکثر سرعت، باید 2 ولت بیشتر از ولتاژ واقعی موتور را تأمین کنید.
  • GND پایه زمین مشترک است.
  • پین 5V منبع تغذیه مدارهای منطقی سوئیچینگ داخل آی‌سی L298N است. اگر جامپر 5 ولت EN در جای خود باشد، این پین به عنوان یک خروجی عمل می‌کند و می‌توان از آن برای تغذیه آردوینو استفاده کرد. اگر جامپر ۵ ولت EN برداشته شود، باید آن را به پایه 5 ولت آردوینو وصل کنید.
  • از پین‌های ENA برای کنترل سرعت موتور A استفاده می‌شود. اعمال HIGH به این پایه (HIGH نگه داشتن جامپر) باعث چرخش موتور A می‌شود و LOW شدن آن باعث متوقف شدن موتور می‌شود. برداشتن جامپر و اتصال ورودی PWM به این پایه، باعث می‌شود بتوانیم سرعت موتور A را کنترل کنیم.
  • از پین‌های IN1 و IN2 برای کنترل جهت چرخش موتور A استفاده می‌شود. هنگامی که یکی از آن‌ها HIGH و دیگری LOW باشد، موتور A می‌چرخد. اگر هر دو ورودی HIGH یا LOW باشند، موتور A متوقف می‌شود.
  • پین‌های IN3 و IN4 برای کنترل جهت چرخش موتور B به کار می‌روند. وقتی یکی از این پین‌ها HIGH باشد و دیگری LOW، موتور B می‌چرخد. اگر هر دو ورودی HIGH یا LOW باشند، موتور B متوقف می‌شود.
  • از پین‌های ENB برای کنترل سرعت موتور B استفاده می‌شود. اعمال HIGH به این پایه (HIGH نگه داشتن جامپر) باعث چرخش موتور B می‌شود، LOW کردن آن باعث متوقف شدن موتور می‌شود. با برداشتن جامپر و اتصال این پایه به ورودی PWM می‌توانیم سرعت موتور B را کنترل کنیم.
  • پین‌های OUT1 و OUT2 به موتور A متصل می‌شوند.
  • پین‌های OUT3 و OUT4 به موتور B متصل می‌شوند.

کنترل موتور DC با ماژول L298

اکنون که همه چیز را در مورد ماژول L298N می‌دانیم، می‌توانیم اتصال آن به آردوینو را شروع کنیم.

با اتصال منبع تغذیه به موتورها شروع می‌کنیم. در این پروژه، از موتورهای اصطلاحاً گیربکس DC (همچنین معروف به موتورهای TT) استفاده شده که معمولاً در ربات‌های دو چرخ به کار می‌روند. ولتاژ‌ نامی این موتورها 3 تا 12 ولت است. بنابراین، با در نظر گرفتن افت ولتاژ داخلی آی‌سی L298N، موتورها 10 ولت دریافت می‌کنند و با سرعت کمتری می‌چرخند که البته قابل قبول است.

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

اکنون پین‌های ورودی و فعال‌ساز (ENA و IN1 و IN2 و IN3 و IN4 و ENB) از ماژول L298N به شش پایه خروجی دیجیتال آردوینو (۹ و ۸ و ۷ و ۵ و ۴ و ۳) متصل شده‌اند. توجه داشته باشید که پایه‌های خروجی آردوینو، یعنی 9 و 3، هر دو PWM هستند.

در نهایت، یک موتور را به ترمینال A (OUT1 و OUT2) و موتور دیگر را به ترمینال B (OUT3 و OUT4) متصل کنید. بعد از اتمام کار باید چیزی شبیه به تصویر زیر داشته باشید.

ماژول L298N

کد آردوینو کنترل موتور DC

برنامه زیر، درک کاملی از نحوه کنترل سرعت و جهت چرخش موتور DC با درایور L298N را ارائه می‌دهد و می‌تواند مبنای آزمایش‌های عملی و پروژه‌های بیشتری باشد.

1// Motor A connections
2int enA = 9;
3int in1 = 8;
4int in2 = 7;
5// Motor B connections
6int enB = 3;
7int in3 = 5;
8int in4 = 4;
9
10void setup() {
11	// Set all the motor control pins to outputs
12	pinMode(enA, OUTPUT);
13	pinMode(enB, OUTPUT);
14	pinMode(in1, OUTPUT);
15	pinMode(in2, OUTPUT);
16	pinMode(in3, OUTPUT);
17	pinMode(in4, OUTPUT);
18	
19	// Turn off motors - Initial state
20	digitalWrite(in1, LOW);
21	digitalWrite(in2, LOW);
22	digitalWrite(in3, LOW);
23	digitalWrite(in4, LOW);
24}
25
26void loop() {
27	directionControl();
28	delay(1000);
29	speedControl();
30	delay(1000);
31}
32
33// This function lets you control spinning direction of motors
34void directionControl() {
35	// Set motors to maximum speed
36	// For PWM maximum possible values are 0 to 255
37	analogWrite(enA, 255);
38	analogWrite(enB, 255);
39
40	// Turn on motor A & B
41	digitalWrite(in1, HIGH);
42	digitalWrite(in2, LOW);
43	digitalWrite(in3, HIGH);
44	digitalWrite(in4, LOW);
45	delay(2000);
46	
47	// Now change motor directions
48	digitalWrite(in1, LOW);
49	digitalWrite(in2, HIGH);
50	digitalWrite(in3, LOW);
51	digitalWrite(in4, HIGH);
52	delay(2000);
53	
54	// Turn off motors
55	digitalWrite(in1, LOW);
56	digitalWrite(in2, LOW);
57	digitalWrite(in3, LOW);
58	digitalWrite(in4, LOW);
59}
60
61// This function lets you control speed of the motors
62void speedControl() {
63	// Turn on motors
64	digitalWrite(in1, LOW);
65	digitalWrite(in2, HIGH);
66	digitalWrite(in3, LOW);
67	digitalWrite(in4, HIGH);
68	
69	// Accelerate from zero to maximum speed
70	for (int i = 0; i < 256; i++) {
71		analogWrite(enA, i);
72		analogWrite(enB, i);
73		delay(20);
74	}
75	
76	// Decelerate from maximum speed to zero
77	for (int i = 255; i >= 0; --i) {
78		analogWrite(enA, i);
79		analogWrite(enB, i);
80		delay(20);
81	}
82	
83	// Now turn off motors
84	digitalWrite(in1, LOW);
85	digitalWrite(in2, LOW);
86	digitalWrite(in3, LOW);
87	digitalWrite(in4, LOW);
88}

اکنون کد را توضیح می‌دهیم. کد آردوینو بالا بسیار سرراست است و به هیچ کتابخانه‌‌ای نیاز ندارد. کد با معرفی پین‌های آردوینو به پین‌های کنترل ماژول L298 شروع می‌شود:

1// Motor A connections
2int enA = 9;
3int in1 = 8;
4int in2 = 7;
5// Motor B connections
6int enB = 3;
7int in3 = 5;
8int in4 = 4;

در بخش تنظیم (setup) کد، تمام پین های کنترل موتور به عنوان خروجی (OUTPUT) دیجیتال معرفی می‌شوند و برای خاموش (OFF) کردن هر دو موتور، LOW در نظر گرفته می‌شود.

1void setup() {
2	// Set all the motor control pins to outputs
3	pinMode(enA, OUTPUT);
4	pinMode(enB, OUTPUT);
5	pinMode(in1, OUTPUT);
6	pinMode(in2, OUTPUT);
7	pinMode(in3, OUTPUT);
8	pinMode(in4, OUTPUT);
9	
10	// Turn off motors - Initial state
11	digitalWrite(in1, LOW);
12	digitalWrite(in2, LOW);
13	digitalWrite(in3, LOW);
14	digitalWrite(in4, LOW);
15}

در بخش حلقه کد، دو تابع تعریف شده توسط کاربر را در بازه یک ثانیه فراخوانی می‌کنیم.

1void loop() {
2	directionControl();
3	delay(1000);
4	speedControl();
5	delay(1000);
6}

این توابع به صورت زیر هستند:

  • () directionControl: این تابع هردو موتور را به صورت مستقیم در حداکثر سرعت و در مدت دو ثانیه می‌چرخاند. سپس جهت چرخش موتور را عکس کرده و در جهت عکس، آن را به مدت دو ثانیه دیگر می‌چرخاند. در نهایت، موتورها خاموش می‌شوند.
1void directionControl() {
2	// Set motors to maximum speed
3	// For PWM maximum possible values are 0 to 255
4	analogWrite(enA, 255);
5	analogWrite(enB, 255);
6
7	// Turn on motor A & B
8	digitalWrite(in1, HIGH);
9	digitalWrite(in2, LOW);
10	digitalWrite(in3, HIGH);
11	digitalWrite(in4, LOW);
12	delay(2000);
13	
14	// Now change motor directions
15	digitalWrite(in1, LOW);
16	digitalWrite(in2, HIGH);
17	digitalWrite(in3, LOW);
18	digitalWrite(in4, HIGH);
19	delay(2000);
20	
21	// Turn off motors
22	digitalWrite(in1, LOW);
23	digitalWrite(in2, LOW);
24	digitalWrite(in3, LOW);
25	digitalWrite(in4, LOW);
26}
  • () speedControl: این تابع به دو موتور شتاب می‌دهد و با تولید سیگنال‌های PWM و استفاده از تابع ()analogWrite سرعت دو موتور را از صفر تا مقدار حداکثر افزایش می‌دهد. سپس، سرعت آن‌ها را به صفر کاهش داده، در نهایت، موتورها خاموش می‌شوند.
1void speedControl() {
2	// Turn on motors
3	digitalWrite(in1, LOW);
4	digitalWrite(in2, HIGH);
5	digitalWrite(in3, LOW);
6	digitalWrite(in4, HIGH);
7	
8	// Accelerate from zero to maximum speed
9	for (int i = 0; i < 256; i++) {
10		analogWrite(enA, i);
11		analogWrite(enB, i);
12		delay(20);
13	}
14	
15	// Decelerate from maximum speed to zero
16	for (int i = 255; i >= 0; --i) {
17		analogWrite(enA, i);
18		analogWrite(enB, i);
19		delay(20);
20	}
21	
22	// Now turn off motors
23	digitalWrite(in1, LOW);
24	digitalWrite(in2, LOW);
25	digitalWrite(in3, LOW);
26	digitalWrite(in4, LOW);
27}

کنترل موتور پله‌ای با ماژول L298

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

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

تصویر زیر موتور پله‌ای را با پل اچ نشان می‌دهد.

در این پروژه، از موتور پله‌ای دوقطبی NEMA 17 با ولتاژ نامی 12 ولت استفاده شده است. این موتور 200 گام در هر دور را ارائه می‌دهد و می‌تواند با سرعت 60 دور در دقیقه کار کند. اگر چنین مشخصاتی را از قبل درباره موتور نمی‌دانید، حتماً درباره آن‌ها اطلاعات کسب کنید

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

موتور پله‌ای

اتصالات نسبتاً ساده است. با اتصال منبع تغذیه 12 ولت خارجی به ترمینال VCC شروع کنید. و جامپر ۵ ولت EN را در جای خود نگه دارید. همچنین باید هر دو جامپر ENA و ENB را در جای خود قرار دهید تا موتور همیشه فعال باشد.

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

در پایان، همان‌طور که در تصویر زیر نشان داده شده است، سیم‌های A + و A- و B + و B- را از موتور پله‌ای به ماژول وصل کنید.

درایو موتور پله‌ای دوقطبی (NEMA 17)

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

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

1// Include the Arduino Stepper Library
2#include <Stepper.h>
3
4// Number of steps per output rotation
5const int stepsPerRevolution = 200;
6
7// Create Instance of Stepper library
8Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
9
10
11void setup()
12{
13	// set the speed at 60 rpm:
14	myStepper.setSpeed(60);
15	// initialize the serial port:
16	Serial.begin(9600);
17}
18
19void loop() 
20{
21	// step one revolution in one direction:
22	Serial.println("clockwise");
23	myStepper.step(stepsPerRevolution);
24	delay(500);
25
26	// step one revolution in the other direction:
27	Serial.println("counterclockwise");
28	myStepper.step(-stepsPerRevolution);
29	delay(500);
30}

اکنون کد بالا را شرح می‌دهیم. کد با گنجاندن کتابخانه Arduino Stepper شروع می‌شود. کتابخانه موتور پله‌ای (Arduino Stepper) همراه با Arduino IDE است و توالی پالس‌هایی که به موتور پله‌ای ارسال خواهیم کرد را مهیا می‌کند.

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

پس از گنجاندن کتابخانه، متغیری به نام stepsPerRevolution تعریف می‌کنیم. همان‌طور که از نام آن مشخص است، این متغیر تعداد گام‌ها در هر دور را نشان می‌دهد. در موردی که ما بررسی می‌کنیم، این مقدار برابر با 200 است، یعنی 1٫8 درجه در هر گام.

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

در ادامه، نمونه‌ای از کتابخانه Stepper را ایجاد می‌کنیم. با این کار، تعداد گام‌ها در هر دور اتصال پین موتور و آردوینو به عنوان پارامتر خواهد بود.

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

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

1void setup()
2{
3	// set the speed at 60 rpm:
4	myStepper.setSpeed(60);
5	// initialize the serial port:
6	Serial.begin(9600);
7}

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

1void loop() 
2{
3	// step one revolution in one direction:
4	Serial.println("clockwise");
5	myStepper.step(stepsPerRevolution);
6	delay(500);
7
8	// step one revolution in the other direction:
9	Serial.println("counterclockwise");
10	myStepper.step(-stepsPerRevolution);
11	delay(500);
12}

معرفی فیلم آموزش مبانی ​الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی

آموزش مبانی ​الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی

برای آشنایی با مقدمات الکترونیک، پیشنهاد می‌کنیم به فیلم آموزش مبانی ​الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی مراجعه کنید که در قالب ۱۳ درس و در مدت زمان ۱۲ ساعت و ۴ دقیقه تهیه شده است. در درس اول این آموزش، مفاهیم اساسی و قطعات بنیادی الکترونیک بیان شده است. درس‌های دوم و سوم درباره دیودها و یکسوسازی، چندبرابرکنندگی و تغییر سیگنال با آن‌هاست. در درس‌های چهارم تا ششم، ترانزیستور، تقویت‌کننده‌های ترانزیستوری یک‌طبقه و چندطبقه معرفی شده‌اند. ترانزیستورهای اثر میدان در درس هفتم مورد بررسی قرار گرفته‌اند. تقویت‌کننده قدرت، تقویت‌کننده تفاضلی و تقویت‌کننده‌های عملیاتی، به ترتیب، موضوعات درس‌های هشتم تا دهم هستند.

در درس یازدهم آموزش، درباره تنظیم‌کننده‌های ولتاژ بحث شده است. به گیت‌های منطقی در درس دوازدهم پرداخته شده و در نهایت، در درس سیزدهم، مطالبی درباره آی‌سی 555 ارائه شده است.

  • برای مشاهده فیلم آموزش مبانی ​الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی + اینجا کلیک کنید.

معرفی فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی 

آموزش برد آردوینو (Arduino) با انجام پروژه های عملی

برای آشنایی بیشتر با آردوینو پیشنهاد می‌کنیم به فیلم آموزش برد آردوینو (Arduino) با انجام پروژه های عملی «فرادرس» مراجعه کنید که مدت زمان آن ۱۹ ساعت و ۱۰ دقیقه است. در درس اول این آموزش که در ۹ درس تدوین شده، معرفی اجمالی با برد آردوینو (Arduino) بیان شده است. در درس دوم، واحد ارتباط سریال در آردوینو مورد بحث قرار گرفته است. موضوع درس سوم واحد PWM و ADC در آردوینو است.

واحد وقفه و SPI در آردوینو نیز در درس‌های چهارم و پنجم معرفی شده‌اند. به واحد TWI و I2C در آردوینو نیز در درس ششم پرداخته شده است. حافظه EEPROM نیز موضوع درس هفتم است. آرایه‌ها و رشته‌ها در آردوینو از مباحث مهمی هستند که در درس هشتم گنجانده شده‌اند و در نایت، برنامه‌نویسی پیشرفته برد آردوینو در درس نهم آموزش داده شده است.

معرفی فیلم آموزش آشنایی با سخت افزار موبایل و تبلت و عیب یابی آن ها

آموزش آشنایی با سخت افزار موبایل و تبلت و عیب یابی آن ها

برای آشنایی بیشتر با مدارهای الکترونیکی، پیشنهاد می‌کنیم به فیلم آموزش آشنایی با سخت افزار موبایل و تبلت و عیب یابی آن ها مراجعه کنید که توسط فرادرس تهیه و تدوین شده است. مدت این آموزش ویدیویی ۴ ساعت و ۳ دقیقه است و در ۱۰ فصل تدوین شده است. در درس اول آموزش، با تجهیزات و ابزارآلات مورد نیاز برای تعمیرات آشنا می‌شوید و در درس دوم مقدمات الکترونیک را فرا می‌گیرید. درس سوم درباره آشنایی با دستگاه‌های اندازه‌گیری است و قطعه‌شناسی و نحوه آزمایش سالم بودن قطعه در درس چهارن ارائه شده است. آشنایی با آی‌سی‌های اصلی موبایل و وظایف آن‌ها، مبحث مهم درس پنجم است. نقشه‌خوانی از مهارت‌های لازم برای تعمیرات است که در درس ششم ارائه شده است.

مخابرات و شبکه موبایل نیز از مباحث تخصصی تعمیرات است که به طور کامل در درس هفتم مورد بحث قرار گرفته است. عیب‌یابی و تست جریان‌کشی از مهم‌ترین مباحث این آموزش هستند و به ترتیب در درس‌های هشتم و نهم به طور کامل معرفی شده‌اند. در نهایت، در درس دهم، با اصول و مهارت‌های فنی تعمیرات موبایل و تبلت آشنا خواهید شد.

  • برای مشاهده فیلم آموزش آشنایی با سخت افزار موبایل و تبلت و عیب یابی آن ها + اینجا کلیک کنید.
بر اساس رای ۱۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Last Minute EngineersLast Minute Engineers
۴ دیدگاه برای «ماژول L298 چیست؟ — راهنمای کاربردی استفاده»

سلام. من این مدار رو برای استپ موتور بستم. و یه کدی که بیاد موتور رو ۱۸۰ درجه بچرخونه و بعد ۱۰ ثانیه تاخیر بده و تکرار کنه رو روی آردویینو اجرا کردم.
وقتی اجرا میشه به شدت درایور و هیت سینک اون داغ میکنه. دلیل چی هست؟

عالي عالي عالي خيلي براي كلاس رباتيكم بدرد خورد

سلام مسیح عزیز.
خوشحالیم که از این آموزش استفاده کرده‌اید.
سالم و سربلند باشید.

عالی بود، کامل و جامع و مهمتر کاربردی بود

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *