سروو موتور یکی از پرکاربردترین قطعات در پروژههای رباتیک، اتوماسیون و کنترل حرکت است. این موتورها به دلیل دقت بالا، توانایی کنترل زاویه و سرعت، و سهولت استفاده، انتخابی ایدهآل برای مهندسان و علاقهمندان به الکترونیک محسوب میشوند. در این مقاله، به بررسی نحوه راهاندازی سروو موتور با استفاده از آردوینو میپردازیم و تمامی مراحل، از مفاهیم پایه تا کدنویسی و نکات عملی، را پوشش میدهیم.
سروو موتور یک نوع موتور الکتریکی است که با استفاده از سیگنالهای PWM (مدولاسیون پهنای پالس) میتواند موقعیت، سرعت یا حرکت زاویهای خود را بهطور دقیق کنترل کند. این موتورها معمولاً برای حرکت در بازهای مشخص (مثلاً 0 تا 180 درجه) طراحی شدهاند.
یک سروو موتور استاندارد شامل سه بخش اصلی است:
سروو موتورها در زمینههای مختلفی استفاده میشوند، از جمله:
برای راهاندازی یک سروو موتور با آردوینو، به موارد زیر نیاز دارید:
سروو موتور از سیگنال PWM برای تنظیم موقعیت زاویهای خود استفاده میکند. سیگنال PWM یک موج مربعی با فرکانس ثابت است که نسبت زمان روشن بودن به خاموش بودن آن (Duty Cycle) متغیر است.
برای کنترل سروو موتور، آردوینو با ارسال سیگنال PWM مناسب به پایه کنترلی سروو، موقعیت زاویهای آن را تنظیم میکند.
سروو موتورهای استاندارد دارای سه سیم هستند:
نکته: اگر از سروو موتورهای قویتر (مانند MG996R) استفاده میکنید، بهتر است از یک منبع تغذیه خارجی برای سروو استفاده کنید. در این صورت، حتماً زمین (GND) منبع تغذیه خارجی را به زمین آردوینو متصل کنید.
برای کنترل سروو موتور با آردوینو، از کتابخانه Servo استفاده میکنیم که بهصورت پیشفرض در نرمافزار Arduino IDE وجود دارد.
#include <Servo.h> // کتابخانه Servo
Servo myServo; // ایجاد یک شیء سروو
void setup() {
myServo.attach(9); // اتصال سروو به پین 9 آردوینو
}
void loop() {
for (int angle = 0; angle <= 180; angle++) { // حرکت از 0 به 180 درجه
myServo.write(angle); // تنظیم زاویه سروو
delay(15); // تأخیر برای حرکت نرمتر
}
for (int angle = 180; angle >= 0; angle--) { // حرکت از 180 به 0 درجه
myServo.write(angle);
delay(15);
}
}
Servo.h
: کتابخانهای برای کنترل سروو موتور.myServo.attach(9)
: مشخص میکند که سروو به پین 9 متصل است.myServo.write(angle)
: زاویه سروو را تنظیم میکند.در این پروژه، با چرخاندن یک پتانسیومتر، زاویه سروو موتور تغییر میکند.
#include <Servo.h>
Servo myServo;
int potPin = A0; // پین آنالوگ برای پتانسیومتر
void setup() {
myServo.attach(9);
}
void loop() {
int potValue = analogRead(potPin); // خواندن مقدار پتانسیومتر
int angle = map(potValue, 0, 1023, 0, 180); // تبدیل مقدار به زاویه
myServo.write(angle); // تنظیم زاویه سروو
delay(15);
}
در این پروژه، با فشار دادن یک دکمه، زاویه سروو تغییر میکند.
سروو موتور یکی از قطعات کلیدی برای پروژههای رباتیک و اتوماسیون است. در این مقاله، نحوه راهاندازی و کنترل سروو موتور با آردوینو را بهصورت گامبهگام بررسی کردیم. با درک مفاهیم پایه، اتصالات صحیح و برنامهنویسی ساده، میتوانید سروو موتور را بهراحتی در پروژههای خود به کار ببرید. با پیشرفت در پروژههای خود، میتوانید کنترلهای پیشرفتهتری مانند استفاده از سنسورها یا شبکه را نیز اضافه کنید.
تماس با ما
هیچ محصولی در سبد خرید نیست.