محرك التيار المستمر | DC motor July 26, 2017 – Posted in: Learn arduino – Tags: , ,

في هذا الدرس سنتعلم كيفية التحكم بمحرك التيار المستمر الصغير DC Motor باستخدام الأردوينو وسنقوم باستخدام خاصية  ‘Pulse Width Modulation –بالأردوينو ‘PMW’  وذلك للتحكم في سرعة المحرك عبر ارسال رقم ما بين 0 و 255 من شاشة الاتصال التسلسلي Serial Monitor. التي تعاملنا معهم في الدروس السابقة.

القطع المطلوبة

سوف نحتاج في هذا الدرس الى محرك صغير بقوة 3-6 فولت, ترانزستر من نوع ,PN2222 , صمام ثنائي-ديود- من نوع 1N4001, مقاومة 220 اوم , لوحة توصيل , اردوينو اونو , اسلاك توصيل ميل –ميل .

 ترانزستر محرك صغير بقوة ٦ فولت
   
 مقاومة 220 اوم  صمام ثنائي-Diode
   
 اردوينو اونو  لوحة توصيل
 
 اسلاك توصيل

 

يحتاج محرك DC الصغير الى كمية كبيرة من التيار أكثر مما يتم إخراجه من المنفذ الرقمي للاردوينو بحيث انه يمكن التعامل معها مباشرة. إذا حاولنا ربط المحرك مباشرة إلى منفذ  اردوينو، يمكن للاردينو ان تحترق او تتضرر.

الترانزستور مثلا يمكن استخدامه كمفتاح بحيث انه يستخدم القليل من التيار الكهربائي من المنفذ الرقمي للاردوينو للسيطرة على تيار أكبر بكثير للمحرك. للترانزستور 3 ارجل. معظم الشحنات تتدفق من الجامع collector إلى الباعث emitter، ولكن هذا لن يحدث إلا عند تدفق كمية صغيرة من خلال منفذ القاعدة baise. يتم توفير هذا التيار بمقدار قليل من المنفذ الرقمي للاردوينو.

هناك الصمام الثنائي (دايود) متصلة على التوازي مع المحرك. الدايود تسمح فقط الكهرباء بالتدفق في اتجاه واحد (اتجاه السهم). عند إيقاف الطاقة في المحرك، يتم اخراج جهد سلبي في الدائرة والتي يمكن أن تتلف اردوينو أو الترانزستور. الصمام الثنائي يحميهم من التيار العكسي الناشئ من المحرك.

طريقة التوصيل

أولا سوف نقوم بتوصيل منفذ رقم ٣ بأحد اطراف المقاومة و الطرف الاخر نوصله في منفذ الbase  للترانزيستور اما طرف ال Emitter’ فنوصله مع المنفذ الأرضي للاردوينو  كما في الصوره التالية


ونوصل collector من الترانستر مع احد اطرف المحرك والطرف الاخر من المحرك نوصله مع ال٥ فولت كما في الصوره الناليه


وأخيرا نوصل cathode من الديود مع ال٥ فولت للاردوينوا و المحرك و Anode من الديود مع collector للترانسيستور والطرف الاخر من المحرك كما في الصور التالية

الكود البرمجي للأردوينو

قم برفع الكود التالي على متحكم الأردوينو

بعد ما قمنا بتحميل الكود الى لوحة الاردوينو قم بفتح نافذة الاتصال التسلسلي  Serial Monitor  سوف تظهر رسالة تطلب منك ادخال قيمة طاقة المحرك ( ما بين 0 و 255 ).

لنقم الان بادخال قيم مختلفة وننظر الى المحرك ماذا يحصل له, نلاحظ ان سرعة المحرك تعتمد على القيمة المدخلة فتكون سرعة المحرك القصوى عند ادخال قيمة ٢٥٥ ويتوقف عند ادخال قيمة 0.

بعد ما شاهدنا ما حصل دعونا نتجه لشرح الكود

شرح الكود

أولا سوف نقوم بإعطاء منفذ رقم 3 اسم motorPin واستخدامه كمخرج, وتفعيل خاصية الاتصال التسلسلي عبر امر Serial.begin مع سرعة 9600 بت ي الثانية, وطباعة Speed 0 to 255.

في دالة loop الأمر ‘Serial.parseInt’ يستخدم لقراءة الرقم المدخل  عبر شاشة الاتصال التسلسلي Serial Monitor وتحويله لقيمة رقمية ‘int’, كما في الامر التالي.

وبإمكانك ادخال أي رقم ، جملة if الشرطية في السطر الذي يليه تقوم بالكتابة التماثلية  ‘analogWrite’ عند وجود رقم بين 0 و 255 فقط. التي بدورها سوف تخرج لنا قيمة من الطاقة تعتمد على القيمة المدخلة.