يهدف هذا المشروع إلى تعلم كيفية تشغيل وإيقاف محرك التيار المستمر عن طريق الأردوينو. فسوف نقوم بتعلم كيفية التحكم بمحرك التيار المستمر عن طريق الترانزستور.
المكونات المطلوبة
الترانستور Transistor
هو عبارة عن مفتاح الكتروني يمكن التحكم في فتحه وإغلاقه. يتركب الترانزستور من مواد شبة موصلة وله ثلاث أطراف. الأول يسمى المشع، والثاني يسمى القاعدة، والثالث يسمى المجمع.
فكرة عملة
عند مرور تيار إلى طرف القاعدة، يصبح الترانزستور في حالة توصيل وهذا يسمح بمرور التيار بين المشع والمجمع. وعند قطع التيار عن طرف القاعدة يصبح في حالة قطع أي لا يمر أي تيار بين المشع والمجمع.
محرك التيار المستمر (DC Motor)
هو عبارة عن جهاز يقوم بتحويل الطاقة من صورة كهربائية إلى صورة ميكانيكية. بمعنى أنه عند مرور تيار كهربائي سوف نحصل على عزم دوراني يمكن استخدامه مع أي جسم ليقوم بتحريكه. على سبيل المثال، نحتاج في الروبوت محرك تيار مستمر لكي يتم تحريك الروبوت، أو يمكن استخدام هذا المحرك في صنع المراوح الكهربائية أو حتى صنع مضخات المياه.
توصيل الدارة :
لا يجب توصيل محرك التيار المستمر مباشرة مع الاردوينو. لأن المحرك يحتاج إلى تيار عالي لا يستطيع الاردوينو اعطاءه له. لذلك نستخدم الترانزستور كدائرة بين الاردوينو الذي يعمل بتيار صغير وبين المحرك الذي يحتاج إلى تيارات عالية.
قم بتوصيل الدائرة كما هو موضح بالصورة التالية :
عند توصيل التيار إلى قاعدة الترانزستور بواسطة الأردوينو، يقوم المحرك بالدوران وعند فصل التيار عن القاعدة يتوقف.
الكود البرمجي :
قم بكتابة الكود التالي للتحكم بالمحرك عبر الترانزستور :
#define MOTOR 13 void setup() { pinMode(MOTOR, OUTPUT); // set the motor pin as output } void loop() { digitalWrite(MOTOR, HIGH); // Turn the motor ON delay(7000); // keep the motor ON for 7 Seconds digitalWrite(MOTOR, LOW); // Turn the motor OFF delay(7000); // keep the motor OFF for 7 Seconds }
شرح الكود
يقوم هذا الكود بتشغيل المحرك و اطفاءة. فيعمل المحرك مدة 7 ثوان ثم يتوقف 7 ثوان اخرى ليعود للعمل بعدهم و هكذا حتى يتم فصل التيار الكهربائى عن الدارة.
في البداية، نقوم بتسمية الطرف 13 فى الاردوينو “MOTOR” بعد ذلك في الدالة ()setup نقوم بتعريف هذا الطرف كمخرج
#define MOTOR 13 void setup() { pinMode(MOTOR, OUTPUT); // set the motor pin as output }
في الجزء التالي، نقوم بتشغيل أو وضع قيمة HIGH على الطرف MOTOR، فيعمل المحرك. ثم بإستخدام الدالة (delay(7000 نقوم بعمل تأخير زمني مدته 7 ثوان، فيضل المحرك سيعمل خلالها.
يتم إطفاء المحرك عن طريق وضع قيمة LOW على الطرف MOTOR ، فيتوقف المحرك عن الدوران لمدة 7 ثوان.
void loop() { digitalWrite(MOTOR, HIGH); // Turn the motor ON delay(7000); // keep the motor ON for 7 Seconds digitalWrite(MOTOR, LOW); // Turn the motor OFF delay(7000); // keep the motor OFF for 7 Seconds }