التحكم بمحرك سيرفو servo motor

أنواع المحركات

توجد عدة أنواع من المحركات _أشهرها

 1-محرك دي سي motor-DC 

2- محرك خطوة stepper motor

3- محرك سيرفو servo motor

لاحظ أيضا أن محركات السيرفو تنقسم لقسمين

سيرفو الزاوية hobby (angle ) servo سيرفو الدورات الكاملة continuous rotation servo
حسب الدخل (عادة عرض نبضات) تـتحرك الذراع إلى الزاویة المطلوبة و تقف عندھا. ھذا النوع أكثر شیوعا.يـدور مثل محرك دي سي. ویمكـنك التـحـكم بسرعـته واتجاھـه یحتـوي داخلیا على bridge-H للتكـبیر والتـحكـم. (ھـذا النوع أصبح نادر الوجود)

التوصيل

يحتوي محرك السيرفو على ثلاث أطراف توصيل 2 منها تستخدم للتغذية (VCC, GND) والطرف الآخر للتحكم (Pulse).

سيرفو الزاوية

 المحركات الرخيصة غير موثوقة كثيرا ً وبعضها تكون تالفة قبل استخدامها. لاحظ أن المحركات عادة تأتي بنطاق تشغيل من الزوايا (مثلاً 0 إلى 180 درجة -نصف دورة فقط) لكن في الواقع هي لا تتحمل هذه الزوايا . مع التجربة يمكنك ملاحظة النطاق الآمن و الذي لا يسبب اهتزاز المحرك (تقريبا 15-170 درجة). يستخدم الأمر ()moto.write هنا لتحديد الزاوية حيث يقوم السيرفو بالتموضع حسب الزاوية المعطاة.

				
					#include "Servo.h"
Servo moto; //any name should do
void setup(){
moto .attach(13);
moto .write(170);} // to set the angle
void loop(){}


				
			

سيرفو دوراني

تختلف طريقة التحكم في حال استخدام محرك دوراني (يدور دورة كاملة وليس زوايا فقط) full rotation servo  حيث يمكنك التحكم بسرعة الدوران و الإتجاه بشكل أسهل من محرك الدي سي. بعد تضمين المكتبة وتعريف الكائن (المحرك) بإمكاننا استخدام الأوامر التالية للتحكم بدوران المحرك:

سيرفو الزاوية hobby (angle ) servo سيرفو الدورات الكاملة continuous rotation servo
تحدید المنفذ المتصل للتحكم بالمحرك;moto.attach(10)
الدوران بأقصى سرعة مع عقارب الساعة;moto.write(170)
الدوران بأقصى سرعة عكس عقارب الساعة;moto.write(15)
أمر آخر للتحكم بدقة في حركة المحرك;(1300)moto.writeMicroseconds
إيقاف المحرك;()moto.detach

عادة القيم (2000،1500،1000 ) تستخدم (للأمر ()moto.writeMicroseconds ) للحركة بأي اتجاه أو إيقاف المحرك ، لكن يجب عليك تجربة محركك

				
					#include "Servo .h"
Servo moto ;
moto .attach(13); //pin connected to motor
moto .writeMicroseconds(1300); //1300=clockwise
delay(2000);
moto .writeMicroseconds(1700); //1700=counterClockWise
delay(2000);
moto .detach(); //stops the motor

				
			

التحكم بمحرك سيرفو باستخدام المقاومة المتغيرة

في هذا التمرين سيتم قراءة القيمة المدخلة من المقاومة المتغيرة وإدخالها في متغير x، ومن ثم تحويل قيمته الى مدى مجال حركة المحرك السيرفو وهي من 10 الى 175 درجة باستخدام الأمر map. وأخيرا إعطاء الأمر لمحرك السيرفو بالحركة حسب قيمة المتغير. 

				
					#include "Servo.h"
Servo moto;
int X = 0;
void setup(){
pinMode(A0, INPUT);
moto.attach(13);}
void loop(){
X = analogRead(A0); // reed Potentiometer value
moto.write(map(X, 0, 1023, 15, 170)); // map the value to (15-170)
delay(1000); }

				
			

انتقل إلى المتجر

محرك سيرفو 360 درجة

60.00 ر.س

محرك سيرفو SG90

20.00 ر.س

محرك سيرفو | SG5010

35.00 ر.س

اردوينو اونو | ARDUINO UNO

50.00 ر.س
انتقال إلى الأعلى