دليل التحكم في محرك التيار المستمر L298N مع أردوينو: دليل التحكم في محرك التيار المستمر

يُعدّ مُشغّل المحرك L298N أحد أكثر الوحدات استخدامًا للتحكم في محركات التيار المستمر باستخدام أردوينو. سواءً كنتَ تُصمّم سيارتك الروبوتية الأولى، أو ناقلًا آليًا، أو حامل كاميرا متحركًا، فإنّ فهم كيفية توصيل وبرمجة جسر H المزدوج L298N يُعدّ مهارة أساسية. لذا، يُقدّم لك هذا الدليل شرحًا وافيًا لكل ما تحتاج معرفته، بدءًا من أساسيات التحكم في محركات جسر H، مرورًا بالتوصيل، وكتابة أكواد أردوينو، والتحكم في سرعة PWM، واستكشاف الأخطاء وإصلاحها، وصولًا إلى الإجابة عن الأسئلة الشائعة. بنهاية هذا الدليل، ستكون قادرًا على التحكم بثقة في سرعة واتجاه محرك التيار المستمر باستخدام L298N وأردوينو.

ما ستتعلمه

  • ما هو محرك L298N، وماذا يفعل جسر H، ولماذا تحتاج إلى محرك في المقام الأول.
  • مخطط توصيل L298N الكامل، بما في ذلك ENA و ENB و IN1 إلى IN4 ومخرجات المحرك ومحطات الطاقة.
  • توصيل وحدة L298N بلوحة أردوينو ومحرك تيار مستمر واحد أو اثنين مع مصدر طاقة خارجي مناسب.
  • كيفية كتابة كود أردوينو الذي يتحكم في اتجاه المحرك باستخدام digitalWrite() وسرعة المحرك باستخدام analogWrite() باستخدام PWM.
  • اختبار وضبط واستكشاف أخطاء إعداد محرك التشغيل الخاص بك لضمان عمله بشكل موثوق.
  • كيف تتم مقارنة L298N مع خيارات محركات Arduino الشائعة الأخرى مثل Arduino Motor Shield و L293D shield.

ما هو محرك القيادة L298N؟

تُعدّ L298N دائرة متكاملة لتشغيل محركات التيار المستمر ثنائية الجسر H، مثبتة على لوحة توصيل. وبذلك، تُمكّنك من التحكم بمحركين تيار مستمر بشكل مستقل، وتحديد اتجاه وسرعة كل محرك من خلال أردوينو أو أي متحكم دقيق آخر. علاوة على ذلك، يمكن للوحدة التعامل مع جهد تغذية المحرك من 5 فولت إلى 35 فولت، وتوفير تيار مستمر يصل إلى 2 أمبير لكل قناة، وهو ما يكفي لمعظم محركات الهواة الصغيرة والمتوسطة. إذا كنت جديدًا على أردوينو، فإليك دليلنا. ما هو أردوينو؟ يُعد هذا الدليل مكانًا رائعًا للبدء قبل الخوض في التحكم الحركي.

في الواقع، تُعد وحدة L298N خيارًا شائعًا لمشاريع الروبوتات نظرًا لانخفاض تكلفتها وتوافرها على نطاق واسع وسهولة استخدامها للمبتدئين. وهي تُستخدم في عدد لا يُحصى من سيارات الروبوت التي تعمل بنظام أردوينو، بما في ذلك سيارتنا الخاصة. سيارة روبوتية تتجنب العوائق و سيارة روبوت يتم التحكم فيها عبر البلوتوث مشاريع.

كيف يعمل جسر H

جسر H هو دائرة كهربائية تتكون من أربعة مفاتيح مرتبة على شكل حرف H حول محرك. من خلال فتح وإغلاق أزواج مختلفة من المفاتيح، يمكنك بالتالي جعل التيار يمر عبر المحرك في أي من الاتجاهين، مما يتحكم في دوران المحرك للأمام أو للخلف.

الاتجاه الأمامي

على وجه التحديد، عندما يتم إغلاق المفتاحين S1 و S4 بينما يظل المفتاحان S2 و S3 مفتوحين، يتدفق التيار من مصدر الطاقة عبر المحرك في اتجاه واحد، مما يتسبب في دورانه للأمام.

الاتجاه الأمامي: يتم إغلاق S1 و S4، ويتدفق التيار من اليسار إلى اليمين عبر المحرك.

الاتجاه المعاكس

وعلى العكس من ذلك، عندما يتم إغلاق المفتاحين S2 و S3 بينما يظل المفتاحان S1 و S4 مفتوحين، فإن التيار يتدفق في الاتجاه المعاكس، مما يؤدي إلى عكس اتجاه دوران المحرك.

الاتجاه العكسي: عند إغلاق المفتاحين S2 و S3، يتدفق التيار من اليمين إلى اليسار عبر المحرك.

التحكم في السرعة بتقنية PWM

تعديل عرض النبضة (PWM) هو الأسلوب المستخدم للتحكم في سرعة المحرك. فبدلاً من تزويد المحرك بجهد ثابت، يقوم الأردوينو بتشغيل وإيقاف دبوس التفعيل بسرعة. وتُحدد نسبة زمن التشغيل إلى زمن الإيقاف، والتي تُسمى دورة التشغيل، متوسط الجهد الذي يتلقاه المحرك. على سبيل المثال، توفر دورة تشغيل بنسبة 50% نصف جهد الإمداد تقريبًا، مما يؤدي إلى انخفاض سرعة المحرك. في المقابل، توفر دورة تشغيل بنسبة 100% الجهد الكامل للحصول على أقصى سرعة. في وحدة L298N، تُطبق إشارات PWM على دبابيس التفعيل ENA وENB.

PWM signal diagram showing different duty cycles for DC motor speed control with Arduino
تتحكم دورة التشغيل PWM في متوسط الجهد وسرعة المحرك: دورة التشغيل الأعلى تعني دورانًا أسرع.

شرح توصيلات L298N

تحتوي لوحة التوصيل L298N على عدة مجموعات من الدبابيس والموصلات. لذلك، من الضروري فهم كل منها قبل توصيل أي شيء.

L298N motor driver module pinout diagram showing motor terminals, power inputs, and control pins for Arduino projects.

أطراف خرج المحرك (OUT1، OUT2، OUT3، OUT4): باختصار، تتصل هذه الأطراف اللولبية مباشرةً بمحركات التيار المستمر. تحديدًا، يقوم الطرفان OUT1 وOUT2 بتشغيل المحرك A، بينما يقوم الطرفان OUT3 وOUT4 بتشغيل المحرك B.

أطراف الطاقة (+12 فولت، أرضي، +5 فولت): يستقبل طرف +12V تحديدًا مصدر طاقة المحرك الخارجي، والذي يتراوح جهده بين 5 و35 فولت حسب نوع المحرك. أما GND فهو الأرضي المشترك بين مصدر طاقة المحرك، ووحدة التحكم المنطقية L298N، ولوحة أردوينو. ويمكن لطرف +5V إما إخراج 5 فولت (عند تفعيل منظم الجهد المدمج عبر وصلة توصيل) أو استقبال جهد 5 فولت (عند إزالة وصلة التوصيل وتجاوز جهد المحرك 12 فولت).

دبابيس التفعيل والإدخال

تفعيل الدبابيس (ENA، ENB): تتحكم هذه المنافذ في حالة تفعيل كل قناة من قنوات المحرك وسرعتها. فعند تركيب وصلة توصيل على منفذ ENA أو ENB، يعمل المحرك بأقصى سرعة عند ضبط منافذ اتجاهه. ولكن عند إزالة وصلة التوصيل وتوصيل ENA أو ENB بمنفذ PWM في أردوينو، يُمكن التحكم بالسرعة الكاملة عبر دالة analogWrite().

دبابيس الإدخال (IN1، IN2، IN3، IN4): تتحكم هذه المنافذ الرقمية الأربعة في اتجاه دوران كل محرك. تحديدًا، يتحكم المنفذان IN1 وIN2 في المحرك A، بينما يتحكم المنفذان IN3 وIN4 في المحرك B. بعبارة أخرى، المنطق واضح: ضبط المنفذ IN1 على مستوى عالٍ والمنفذ IN2 على مستوى منخفض يُدير المحرك A للأمام، وعكس هاتين القيمتين يُديره للخلف، وضبطهما على نفس الحالة (كلاهما منخفض أو كلاهما عالٍ) يُوقف المحرك.

المكونات المطلوبة (قائمة المواد)

قبل البدء بالتوصيل، جهّز المكونات التالية. قبل البدء، إذا كنت جديدًا في تطوير تطبيقات أردوينو، فراجع دليلنا. برنامج تعليمي أساسيات برمجة أردوينو قم بإعداد بيئة التطوير المتكاملة (IDE) واللوحة أولاً.

عنصر كمية ملحوظات
أردوينو أونو (أو لوحة متوافقة) 1 أي لوحة أردوينو مزودة بمنافذ رقمية تدعم تعديل عرض النبضة (PWM) ستفي بالغرض
وحدة تشغيل محرك L298N ثنائية الجسر H 1 لوحة التوصيل الحمراء ذات أطراف التوصيل اللولبية
محرك DC (محرك هواية 3 فولت - 12 فولت) 1 أو 2 محركات التروس TT للسيارات الروبوتية تعمل بشكل جيد
مصدر طاقة خارجي للمحركات 1 حزمة بطاريات أو مصدر طاقة مناسب لجهد المحرك (مثل 4 بطاريات AA، أو بطارية ليثيوم بوليمر 7.4 فولت، أو محول 9 فولت - 12 فولت)
أسلاك توصيل (من النوع MF) ~10 لتوصيل دبابيس L298N بدبابيس رأس Arduino
لوحة التجارب (اختياري) 1 مفيد لتنظيم الاتصالات أثناء عملية النمذجة الأولية
هيكل الروبوت وعجلاته (اختياري) مجموعة واحدة مطلوب إذا كنت تقوم ببناء مشروع سيارة روبوتية

توصيلات L298N باستخدام أردوينو

يوضح الجدول أدناه التوصيلات الكاملة بين وحدة L298N و Arduino Uno للتحكم في محركين DC بسرعة واتجاه مستقلين.

دبوس L298N وظيفة دبوس أردوينو ملحوظات
وكالة الطاقة الذرية سرعة المحرك أ (PWM) D10 (PWM) قم بإزالة غطاء التوصيل من ENA لتمكين التحكم في سرعة PWM
IN1 إدخال اتجاه المحرك أ 1 D9 اضبط على عالي أو منخفض للتحكم في الاتجاه
IN2 إدخال اتجاه المحرك أ 2 D8 اضبط على عالي أو منخفض للتحكم في الاتجاه
IN3 إدخال اتجاه المحرك B 1 D7 اضبط على عالي أو منخفض للتحكم في الاتجاه
IN4 إدخال اتجاه المحرك B 2 D6 اضبط على عالي أو منخفض للتحكم في الاتجاه
إن بي سرعة المحرك B (PWM) D5 (PWM) قم بإزالة غطاء وصلة التوصيل من وحدة ENB لتمكين التحكم في سرعة PWM
+12 فولت (VCC) مصدر طاقة المحرك موجب قم بالتوصيل بالطرف الموجب للبطارية الخارجية أو مصدر الطاقة (5 فولت - 35 فولت؛ عادةً 6 فولت - 12 فولت لمعظم مشاريع الروبوتات)
أرضي أرضية مشتركة أرضي شديد الأهمية: قم بتوصيل طرف التأريض (GND) الخاص بـ L298N بكل من التأريض الخارجي للتغذية والتأريض الخاص بـ Arduino.
+5 فولت مخرج منظم جهد 5 فولت مدمج مع تركيب وصلة التوصيل المدمجة، يُخرج هذا الجهاز 5 فولت. يمكن استخدامه لتشغيل الأردوينو بشكل اختياري، ولكن يُنصح معظم المبتدئين بتشغيل الأردوينو بشكل منفصل عبر منفذ USB.
Wiring diagram showing L298N motor driver connected to Arduino Uno and two DC motors with external battery pack
مخطط التوصيل الكامل: L298N متصل بـ Arduino Uno مع محركين DC ومصدر طاقة خارجي.

مصدر الطاقة والسلامة

تُعدّ أخطاء الطاقة السبب الرئيسي للمشاكل في مشاريع L298N. اتبع هذه الإرشادات للحفاظ على تشغيل جهازك بأمان.

استخدم دائمًا مصدر طاقة خارجي للمحركات. هذا الأمر مهم لأن محركات التيار المستمر تسحب تيارًا أعلى بكثير مما يمكن أن يوفره منفذ 5 فولت في لوحة أردوينو بأمان. ونتيجة لذلك، فإن محاولة تشغيل المحركات مباشرةً من لوحة أردوينو قد تتسبب في انخفاض الجهد، وسلوك غير منتظم، وتلف دائم للوحة. استخدم بطارية خارجية أو محول طاقة موصولًا بطرف +12 فولت في لوحة L298N.

إيجاد أرضية مشتركة. يجب توصيل كل من أرضي أردوينو (GND)، وأرضي شريحة L298N (GND)، والطرف السالب لمصدر طاقة المحرك الخارجي معًا. فبدون أرضية مشتركة، لن تتمكن شريحة L298N من تفسير الإشارات المنطقية الصادرة من أردوينو بشكل صحيح؛ وبالتالي، قد تتصرف المحركات بشكل غير متوقع أو قد لا تتحرك على الإطلاق.

قم بمطابقة مصدر الطاقة مع محركاتك. للقيام بذلك، تحقق من تصنيف الجهد لمحركات التيار المستمر لديك واختر مصدر طاقة مناسبًا. بالنسبة لمحركات التروس TT الشائعة الاستخدام في سيارات الروبوت، فإن حزمة بطاريات AA رباعية (6 فولت) أو بطارية ليثيوم بوليمر 7.4 فولت تعمل بشكل جيد. يدعم مُكوّن L298N نفسه جهودًا للمحركات تتراوح من 5 فولت إلى 35 فولت.

منظم الجهد، والانخفاض، والضوضاء

افهم منظم الجهد 5 فولت الموجود على اللوحة. تحتوي لوحة L298N على منظم جهد مدمج مزود بغطاء توصيل. عند تركيب غطاء التوصيل وتزويد طرف +12V بجهد يتراوح بين 7 و12 فولت، يُخرج طرف +5V على اللوحة جهدًا منظمًا قدره 5 فولت، يمكنك استخدامه لتشغيل أردوينو (قم بتوصيله بطرف 5V في أردوينو، وليس بطرف Vin). من ناحية أخرى، إذا تجاوز جهد تغذية المحرك 12 فولت، فيجب إزالة غطاء التوصيل هذا لحماية منظم الجهد، وستحتاج إلى تزويد طرف +5V بجهد منطقي 5 فولت بشكل منفصل.

توقع انخفاضًا في الجهد. بالإضافة إلى ذلك، يستخدم مُشغّل L298N تقنية الترانزستور ثنائي القطب، مما يعني فقدان ما يقارب 1.4 إلى 2 فولت على شكل حرارة عبر الدائرة. على سبيل المثال، إذا قمت بتزويده بجهد 6 فولت، فإن محركاتك تتلقى فعليًا ما بين 4 إلى 4.6 فولت. لذا، خطط لجهد التزويد وفقًا لذلك.

انتبه لضوضاء المحرك. علاوة على ذلك، تُولّد محركات التيار المستمر ضوضاء كهربائية وارتفاعات مفاجئة في الجهد، خاصةً عند بدء التشغيل أو عكس اتجاه الدوران. إذا أُعيد تشغيل لوحة أردوينو بشكل غير متوقع عند تشغيل المحرك، فمن المرجح أن تكون هذه الضوضاء هي السبب. تأكد من سلامة توصيلات الطاقة، وفكّر في إضافة مكثف سيراميكي سعته 100 نانوفاراد عبر كل طرف من أطراف المحرك، واحرص دائمًا على فصل مصدر طاقة المحرك عن مصدر طاقة أردوينو.

كود أردوينو: التحكم في محركين كهربائيين يعملان بالتيار المستمر

بعد إتمام عملية التوصيل، يمكنك تحميل البرنامج التالي إلى لوحة أردوينو. يوضح هذا البرنامج تحديدًا الحركة الأمامية والتوقف والحركة العكسية لمحركين يعملان بالتيار المستمر بنصف السرعة. إذا كنت بحاجة إلى مراجعة كيفية تحميل البرامج، فراجع دليلنا. أساسيات برمجة أردوينو مرشد.

/** * مُشغّل محرك L298N - تحكم في محركين DC * المؤلف: عمر درايدريا * الموقع الإلكتروني: omartronics.com * * يتحكم في الحركة الأمامية والخلفية والتوقف لمحركين DC * باستخدام جسر H المزدوج L298N مع تحكم في السرعة بتقنية PWM. */ #define IN1 9 // اتجاه المحرك A، دبوس 1 #define IN2 8 // اتجاه المحرك A، دبوس 2 #define IN3 7 // اتجاه المحرك B، دبوس 1 #define IN4 6 // اتجاه المحرك B، دبوس 2 #define ENA 10 // التحكم في سرعة المحرك A (PWM) #define ENB 5 // التحكم في سرعة المحرك B (PWM) void setup() { // ضبط جميع دبابيس التحكم في المحرك كمخارج pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); // بدء التشغيل مع إيقاف المحركات digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void loop() { // --- تحريك كلا المحركين للأمام بنصف السرعة --- digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENA, 128); // المحرك A بسرعة ~50% analogWrite(ENB, 128); // المحرك B بسرعة ~50% delay(2000); // --- إيقاف كلا المحركين --- digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(2000); // --- تحريك كلا المحركين للخلف بنصف السرعة --- digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); analogWrite(ENA, 128); analogWrite(ENB, 128); delay(2000); // --- إيقاف كلا المحركين --- digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); delay(1000); }

شرح الكود

تعريفات الدبابيس (الأسطر 10-15): تم تعريف ستة منافذ باستخدام #define. يتحكم المنفذان IN1 وIN2 في اتجاه دوران المحرك A، بينما يتحكم المنفذان IN3 وIN4 في اتجاه دوران المحرك B. يتحكم المنفذان ENA وENB في سرعة كل محرك عبر تقنية تعديل عرض النبضة (PWM). يُستخدم المنفذان 10 و5 لـ ENA وENB لأنهما يدعمان تقنية PWM على لوحة أردوينو أونو.

دالة setup(): أولًا، يتم ضبط جميع المنافذ الستة كمخارج باستخدام الدالة pinMode(). ثم، يتم ضبط جميع منافذ الاتجاه على مستوى منخفض (LOW) لضمان بدء تشغيل كلا المحركين في حالة توقف. هذا ضروري لأن بعض لوحات أردوينو قد تترك المنافذ في حالة غير متوقعة بعد إعادة التشغيل.

الحركة للأمام: يتم ضبط المدخل IN1 على مستوى عالٍ والمدخل IN2 على مستوى منخفض، مما يُشير إلى جسر H بتحريك المحرك A للأمام. وبالمثل، يؤدي ضبط المدخل IN3 على مستوى عالٍ والمدخل IN4 على مستوى منخفض إلى تحريك المحرك B للأمام. بعد ذلك، تُرسل الدالة analogWrite(ENA, 128) إشارة PWM بدورة تشغيل تبلغ حوالي 50% (128 من 255)، مما يُشغل المحرك بنصف سرعته تقريبًا. ثم ينتظر البرنامج ثانيتين.

حالة التوقف: جميع دبابيس الاتجاه الأربعة مضبوطة على مستوى منخفض. عندما يكون كلا مدخلي قناة المحرك متطابقين، يتوقف المحرك. والجدير بالذكر أنه لا داعي لتغيير دبابيس التفعيل لأن منطق الاتجاه يمنع بالفعل أي تدفق للتيار.

الحركة إلى الخلف: بالنسبة للمسار العكسي، يتم ضبط IN1 على مستوى منخفض وIN2 على مستوى عالٍ، مما يعكس اتجاه المحرك A. وبالمثل، يتم ضبط IN3 على مستوى منخفض وIN4 على مستوى عالٍ، مما يعكس اتجاه المحرك B. ومرة أخرى، يتم ضبط السرعة على 128 لنصف السرعة.

أمثلة على محرك واحد

إذا كنت تحتاج فقط إلى التحكم في محرك تيار مستمر واحد، فاستخدم المحرك A (IN1، IN2، ENA) واترك المحرك B غير موصول. يوضح الرسم التخطيطي أدناه مثالًا بسيطًا لمحرك واحد يقوم بدورات أمامية، وإيقاف، وعكسية، وإيقاف، بسرعة قابلة للتعديل.

/** * L298N - وحدة تحكم بمحرك تيار مستمر واحد * المؤلف: عمر درايدريا * الموقع الإلكتروني: omartronics.com * * يقوم بتشغيل محرك تيار مستمر واحد للأمام، ثم إيقافه، ثم عكس اتجاهه، ثم إيقافه مرة أخرى. * يستخدم قناة المحرك A فقط (IN1، IN2، ENA). */ #define IN1 9 // اتجاه المحرك A، دبوس 1 #define IN2 8 // اتجاه المحرك A، دبوس 2 #define ENA 10 // سرعة المحرك A (PWM) void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENA, OUTPUT); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); } void loop() { // للأمام بسرعة 75 % digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, 191); delay(2000); // إيقاف digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); delay(1000); // عكس الاتجاه بسرعة 50 % digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); analogWrite(ENA, 128); delay(2000); // إيقاف digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); delay(1000); }

يستخدم هذا الرسم التخطيطي ثلاثة منافذ فقط في لوحة أردوينو. قم بتوصيل المنفذ IN1 بالمنفذ 9، والمنفذ IN2 بالمنفذ 8، والمنفذ ENA (بعد إزالة وصلة التوصيل) بالمنفذ 10. تبقى قناة المحرك الثانية غير مستخدمة ولا تحتاج إلى أي توصيلات.

جدول مرجعي لمنطق الاتجاه

IN1 IN2 سلوك المحرك أ
عالي قليل يدور للأمام
قليل عالي يدور للخلف
قليل قليل محطات (ساحل)
عالي عالي توقف (فرامل)
وينطبق المنطق نفسه على المحرك B باستخدام IN3 و IN4.

اختبر إعداداتك واضبطها

قبل أن تبني روبوتًا كاملًا يعتمد على محركك، خصص بضع دقائق لاختباره بشكل منهجي. ستوفر عليك هذه الخطوات ساعات من تصحيح الأخطاء لاحقًا.

ابدأ بمحرك واحد. للبدء، افصل المحرك B واختبر المحرك A فقط. هذا يُسهّل تحديد مشاكل التوصيلات أو البرمجة. بمجرد أن يعمل المحرك A بشكل صحيح، قم بتوصيل المحرك B.

تحقق من الاتجاه. بعد ذلك، قم بتحميل الكود وتحقق مما إذا كان المحرك يدور للأمام أثناء الجزء الأمامي. إذا كان يدور في الاتجاه المعاكس، فقم بتبديل سلكي المحرك في طرف التوصيل اللولبي أو قم بتبديل تعيينات دبابيس IN1 وIN2 في الكود الخاص بك.

ابدأ بقيم PWM منخفضة. بدلاً من الانتقال مباشرةً إلى دالة analogWrite(ENA, 255)، ابدأ بقيمة منخفضة مثل 80 أو 100. سيؤدي ذلك إلى دوران المحرك ببطء، مما يجعله أكثر أمانًا أثناء الاختبار وأسهل في المراقبة. مع ذلك، لاحظ أن قيم PWM المنخفضة جدًا (أقل من 50-70 تقريبًا) قد لا تولد جهدًا كافيًا للتغلب على الاحتكاك الداخلي للمحرك، وقد يتوقف المحرك أو يصدر صوت طنين دون أن يدور.

ضبط السرعة والمراقبة

جرب مستويات السرعة المختلفة. جرّب قيمًا مختلفة لوظيفة analogWrite لمعرفة استجابة المحرك: 64 لربع السرعة، و128 لنصف السرعة، و192 لثلاثة أرباع السرعة، و255 للسرعة الكاملة. بعد ذلك، سجّل القيم التي تُناسب محركك وتطبيقك على وجه التحديد.

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

المشاكل الشائعة وكيفية حلها

حتى البنائين ذوي الخبرة يواجهون مشاكل مع محركات القيادة. إليكم أكثر المشاكل شيوعاً وحلولها.

المحرك لا يدور على الإطلاق. أولًا، تأكد من توصيل مصدر الطاقة الخارجي بطرفي +12 فولت وGND وتشغيله. ثم، تحقق من إزالة وصلات ENA أو ENB وتوصيلها بدبوس PWM على لوحة أردوينو. كذلك، تأكد من أن قيمة analogWrite عالية بما يكفي (جرب 200 أو 255). تحقق جيدًا من أن دبابيس الاتجاه ليست في حالة عالية أو منخفضة عن غير قصد.

مشاكل الأسلاك والتوصيلات

يدور المحرك في اتجاه واحد فقط. في معظم الحالات، يعني هذا أن أحد طرفي التوصيل (IN1/IN2 أو IN3/IN4) غير موصول بشكل صحيح، أو أن تعيين الأطراف في الكود خاطئ. لذا، اختبر كل طرف توصيل على حدة باستخدام أمر digitalWrite HIGH أو LOW بسيط، ولاحظ النتيجة.

المحرك ضعيف أو بطيء. ينخفض الجهد الداخلي لدائرة L298N بمقدار 1.4 إلى 2 فولت تقريبًا. إذا كان مصدر الطاقة لديك 5 أو 6 فولت فقط، فقد يتلقى المحرك جهدًا منخفضًا يصل إلى 3.5 أو 4 فولت. جرب استخدام مصدر طاقة بجهد أعلى. تأكد أيضًا من ضبط قيمة PWM في دالة analogWrite() على قيمة عالية كافية.

مشاكل الطاقة والحرارة

يقوم الأردوينو بإعادة الضبط عند بدء تشغيل المحرك. غالباً ما تكون هذه مشكلة في مصدر الطاقة. في الأساس، يسحب المحرك تياراً عالياً عند بدء التشغيل، مما يؤدي إلى انخفاض جهد التغذية وإعادة تشغيل الأردوينو. لحل هذه المشكلة، تأكد من استخدام مصدر طاقة منفصل للمحركات، وأن الأردوينو موصول بمصدر طاقة مستقل عبر منفذ USB أو محول طاقة خاص به. بالإضافة إلى ذلك، يمكن إضافة مكثف إلكتروليتي كبير (من 100 إلى 470 ميكروفاراد) عبر مصدر طاقة المحرك للمساعدة في استقرار الجهد. وأخيراً، تأكد من أن وصلة التأريض المشتركة متينة.

أخطاء في الدبابيس والوصلات

دبوس PWM خاطئ. تذكر أن بعض منافذ أردوينو لا تدعم تقنية تعديل عرض النبضة (PWM). في أردوينو أونو، تدعم المنافذ 3 و5 و6 و9 و10 و11 فقط وظيفة analogWrite(). لذا، إذا قمت بتوصيل ENA أو ENB بمنفذ لا يدعم PWM، فسيكون المحرك إما في وضع التشغيل الكامل أو متوقفًا تمامًا دون أي تحكم في السرعة. تحقق من رمز PWM (~) المطبوع بجوار أرقام المنافذ على لوحتك.

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

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

فحص الطاقة وارتفاع درجة الحرارة

لا يوجد مصدر طاقة خارجي متصل. إذا نسيت توصيل بطارية أو محول طاقة بطرف +12 فولت، فلن تحصل المحركات على مصدر طاقة. لا يستمد جهاز L298N طاقة المحرك من أردوينو. تأكد دائمًا من توصيل مصدر الطاقة الخارجي وتشغيله.

ارتفاع درجة حرارة جهاز L298N. إذا ارتفعت درجة حرارة الوحدة بشكل كبير أثناء التشغيل، فقد تسحب المحركات تيارًا أعلى من التيار المقنن البالغ 2 أمبير لكل قناة. في هذه الحالة، قلل الحمل، أو استخدم دورات تشغيل أقصر، أو فكّر في استخدام مُشغّل أكثر كفاءة مثل BTS7960. مع أن المشتت الحراري المدمج يُساعد، إلا أن له حدودًا.

مقارنة بين محرك L298N وخيارات أخرى لتشغيل محركات أردوينو

لا يُعدّ L298N الطريقة الوحيدة لتشغيل محركات التيار المستمر باستخدام أردوينو. هناك خياران شائعان آخران هما لوحة أردوينو لتشغيل المحركات ولوحة L293D لتشغيل المحركات. يقدم هذا القسم مقارنة موجزة لمساعدتك في اختيار المشغل المناسب. للاطلاع على شروحات كاملة حول التوصيلات البرمجية لكل لوحة، يُرجى مراجعة الأدلة المخصصة لها.

لوحة محرك أردوينو

Arduino Motor Shield wiring diagram showing connection to two DC motors
لوحة محرك أردوينو: يتم توصيلها مباشرة بلوحة أردوينو لتسهيل عملية التوصيل.
Assembled L298N motor driver wired to Arduino Uno and DC motors on a breadboard
لوحة محرك أردوينو

تتصل لوحة Arduino Motor Shield الرسمية مباشرةً بمنافذ Arduino Uno، مما يُغني عن استخدام أسلاك التوصيل بين وحدة التحكم وArduino. تدعم هذه اللوحة محركين تيار مستمر (أو محرك خطوي واحد) بقدرة تصل إلى 2 أمبير لكل قناة. يتم التحكم في الاتجاه باستخدام منفذي DIR A وDIR B المخصصين، بينما يتم ضبط السرعة باستخدام منفذي PWM A وPWM B. على الرغم من أن استخدام اللوحة يُعدّ مناسبًا للنماذج الأولية السريعة، إلا أنه يستهلك منافذ محددة من Arduino وقد يكون أغلى من وحدة L298N المستقلة. بالإضافة إلى ذلك، فهو يحدّ من خيارات تخصيص المنافذ.

واقي المحرك L293D

L293D motor shield wiring diagram showing connection to Arduino and DC motors
لوحة محرك L293D: تدعم ما يصل إلى أربعة محركات تيار مستمر باستخدام مكتبة Adafruit Motor Shield.

تستخدم لوحة التحكم بالمحركات L293D (والتي تُباع غالبًا كنسخة مقلدة من Adafruit Motor Shield V1) شريحة L293D، ويمكنها التحكم بما يصل إلى أربعة محركات تيار مستمر أو محركين متدرجين. مع ذلك، فهي توفر تيارًا مستمرًا قدره 0.6 أمبير فقط لكل قناة (1.2 أمبير كحد أقصى)، وهو أقل من L298N. تتم برمجتها باستخدام مكتبة Adafruit Motor Shield (AFMotor.h)، مما يُبسط الكود باستخدام دوال مثل motor.run(FORWARD) و motor.setSpeed(200). ونتيجة لذلك، تُعد هذه اللوحة خيارًا جيدًا عندما تحتاج إلى التحكم في ثلاثة أو أربعة محركات من لوحة أردوينو واحدة دون الحاجة إلى توصيلات معقدة. على سبيل المثال، نستخدمها في مشروعنا سيارة روبوتية تتجنب العوائق درس تعليمي.

جدول مقارنة سريع

ميزة وحدة L298N لوحة محرك أردوينو درع L293D
محركات التيار المستمر المدعومة 2 2 حتى 4
التيار لكل قناة 2- مستمر 2- مستمر 0.6 مستمر
نطاق جهد المحرك 5 فولت - 35 فولت 5 فولت - 12 فولت 4.5 فولت - 25 فولت
عامل الشكل وحدة مستقلة مزودة بأسلاك لوحة درع (تُوصل بلوحة أردوينو) لوحة درع (تُوصل بلوحة أردوينو)
التحكم في سرعة PWM نعم (عبر ENA/ENB) نعم (عبر PWM A/B) نعم (عن طريق المكتبة)
مرونة الدبابيس عالي (يمكنك اختيار أي دبابيس) منخفض (تعيين دبابيس ثابت) منخفض (تعيين دبابيس ثابت)
يكلف منخفض جداً معتدل قليل
الأفضل لـ التوصيلات الكهربائية المخصصة، سيارات الروبوت، تعلم أساسيات جسر H تصميم نماذج أولية سريع بأقل قدر من الأسلاك مشاريع متعددة المحركات تتطلب كودًا بسيطًا

بالنسبة لمعظم المبتدئين الذين يبنون أول مشروع سيارة روبوت أو مشروع تحكم في المحركات باستخدام أردوينو، توفر وحدة L298N المستقلة أفضل مزيج من التكلفة المنخفضة، وقدرة التيار العالية، والقيمة التعليمية. علاوة على ذلك، ستتعلم بدقة كيفية عمل التحكم في الاتجاه والسرعة على مستوى المكونات المادية، مما يهيئك لمشاريع أكثر تقدماً.

الأسئلة الشائعة

ما هو استخدام محرك القيادة L298N؟

يُعدّ L298N مُشغّلاً ثنائياً لمحركات التيار المستمر من نوع H-bridge، ويُستخدم للتحكم في سرعة واتجاه محرك واحد أو محركين من نوع DC باستخدام متحكم دقيق مثل Arduino. على سبيل المثال، يُستخدم عادةً في سيارات الروبوت، ووحدات التحكم في سيور النقل، وحوامل الكاميرات الآلية.

هل يمكنني التحكم بمحرك واحد فقط باستخدام L298N؟

بالتأكيد. في الواقع، يحتوي جهاز L298N على قناتين مستقلتين. يمكنك استخدام قناة واحدة فقط (المحرك A مع IN1 وIN2 وENA) وترك القناة الثانية غير موصولة. علاوة على ذلك، لا تؤثر القناة غير المستخدمة على التشغيل.

ما هو الجهد الكهربائي الذي يمكنني استخدامه مع جهاز L298N؟

يدعم مدخل تغذية المحرك L298N (طرف +12 فولت) بشكل أساسي جهدًا يتراوح بين 5 فولت و35 فولت. ومع ذلك، يعمل منظم الجهد المدمج بشكل موثوق حتى حوالي 12 فولت فقط. إذا تجاوز جهد تغذية المحرك 12 فولت، فقم بإزالة وصلة منظم الجهد وقم بتوفير طاقة منطقية 5 فولت بشكل منفصل إلى طرف +5 فولت.

لماذا تتم إعادة ضبط جهاز أردوينو الخاص بي عند بدء تشغيل المحرك؟

عادةً، تسحب محركات التيار المستمر تيارًا عاليًا عند بدء التشغيل، مما قد يتسبب في انخفاضات في جهد مصدر الطاقة. وبالتالي، إذا كان جهاز أردوينو يستخدم نفس مصدر الطاقة للمحركات، فقد يؤدي هذا الانخفاض إلى إعادة ضبط المتحكم الدقيق. لذلك، استخدم دائمًا مصدر طاقة منفصلًا لمحركاتك، وقم بتوصيل خط التأريض فقط بين مصدر طاقة المحرك وجهاز أردوينو.

كيف يمكنني التحكم في سرعة المحرك باستخدام L298N و Arduino؟

أولًا، قم بإزالة غطاء التوصيل من منفذ ENA أو ENB، ثم قم بتوصيل هذا المنفذ بمنفذ رقمي يدعم تعديل عرض النبضة (PWM) على لوحة أردوينو. بعد ذلك، استخدم الدالة analogWrite() مع قيمة بين 0 (متوقف) و255 (أقصى سرعة) لضبط سرعة المحرك. لمزيد من المعلومات حول تعديل عرض النبضة (PWM)، راجع قسمنا الخاص بـ دليل التحكم في محركات المؤازرة وتقنية تعديل عرض النبضة (PWM) باستخدام أردوينو.

ما الفرق بين ENA/ENB و IN1/IN2؟

يتحكم كل من IN1 وIN2 (وIN3/IN4 للمحرك الثاني) في اتجاه دوران المحرك بتحديد اتجاه تدفق التيار عبر جسر H. ويتحكم كل من ENA وENB في حالة تفعيل قناة المحرك وسرعتها. يمكن تشبيه دبابيس IN بالتوجيه ودبابيس EN بالخانق.

هل أحتاج إلى مصدر طاقة خارجي لجهاز L298N؟

يلزم وجود مصدر طاقة خارجي. يحتاج جهاز L298N إلى مصدر طاقة موصول بطرفي +12V وGND لتشغيل المحركات. لا يوفر منفذ 5V في لوحة أردوينو تيارًا كافيًا لمحركات التيار المستمر. تشغيل المحركات من منفذ أردوينو مباشرةً قد يُتلف اللوحة ويؤدي إلى تشغيل غير موثوق.

هل يمكنني استخدام L298N مع محرك متدرج؟

نعم، يمكن ذلك. يستطيع مُشغّل L298N تشغيل محرك خطوي ثنائي القطب واحد باستخدام القناتين معًا (IN1–IN4 لتسلسل الخطوات الأربع). مع ذلك، يفتقر L298N إلى إمكانية التحكم الدقيق في الخطوات. وللحصول على تحكم أكثر سلاسة في المحرك الخطوي، يُعد استخدام مُشغّل مُخصّص مثل A4988 أو DRV8825 خيارًا أفضل في العادة.

ما هو الحد الأقصى للتيار الذي يمكن أن يتحمله جهاز L298N؟

يُمكن لدائرة L298N توفير تيار مستمر يصل إلى 2 أمبير لكل قناة محرك، مع تيار ذروة يصل إلى 3 أمبير لفترات قصيرة. إذا كانت محركاتك تسحب أكثر من 2 أمبير تحت الحمل، فيجب عليك استخدام مُشغّل طاقة أقوى أو إضافة نظام تبريد فعّال لمشتت الحرارة.

لماذا يصدر محركي صوت أزيز ولكنه لا يدور؟

يشير صوت الطنين الصادر من المحرك عادةً إلى أن دورة تشغيل تعديل عرض النبضة (PWM) منخفضة جدًا بحيث لا تكفي للتغلب على مقاومة بدء تشغيل المحرك. لذا، قم بزيادة قيمة analogWrite. تحتاج معظم محركات التيار المستمر الصغيرة إلى قيمة PWM دنيا تتراوح بين 50 و80 قبل أن تبدأ بالدوران. تأكد أيضًا من عدم وجود أي عطل ميكانيكي في المحرك، وأن مصدر الطاقة لديك قادر على توفير تيار كافٍ.

هل يمكنني تزويد الأردوينو بالطاقة من منفذ 5 فولت في شريحة L298N؟

عند توصيل وصلة منظم الجهد المدمجة وتزويد طرف +12 فولت بجهد يتراوح بين 7 و12 فولت، يُخرج طرف +5 فولت في شريحة L298N جهدًا منظمًا قدره 5 فولت، يمكنك توصيله بطرف 5 فولت في لوحة أردوينو (وليس طرف Vin). هذه الطريقة فعّالة، ولكنها غير مُوصى بها للمبتدئين لأن أي تشويش ناتج عن المحرك على خط التغذية قد يصل إلى أردوينو. للحصول على نتائج موثوقة، يُنصح بتزويد أردوينو بالطاقة عبر منفذ USB أو مصدر طاقة خارجي مُخصص.

هل يُعدّ جهاز L298N مناسبًا لبناء سيارة روبوتية؟

بالتأكيد. يُعدّ L298N أحد أشهر مشغلات المحركات لسيارات الروبوتات التي تعمل بنظام أردوينو. ولذلك، فإن قناتيه المستقلتين مثاليتان للتحكم في المحركين الأيمن والأيسر لروبوت ذي دفع تفاضلي. في الواقع، تستخدم العديد من مشاريع OmArTronics مشغل L298N أو مشغلات مماثلة، بما في ذلك مشروعنا. سيارة روبوت يتم التحكم فيها عبر البلوتوث و سيارة روبوتية تتجنب العوائق.

الموارد والمشاريع القادمة

الآن بعد أن عرفت كيفية التحكم في محركات التيار المستمر باستخدام L298N و Arduino، إليك بعض الخطوات التالية المقترحة والدروس التعليمية ذات الصلة من OmArTronics لمواصلة رحلة التعلم الخاصة بك.

خاتمة

في هذا الدرس، تعرّفت على آلية عمل مُشغّل المحرك L298N ثنائي الجسر H، وكيفية توصيله بلوحة أردوينو، وكيفية برمجة التحكم في سرعة واتجاه محرك التيار المستمر باستخدام تعديل عرض النبضة (PWM) ومنطق رقمي بسيط. ونتيجةً لذلك، أصبحت تفهم الآن مخطط توصيل L298N، ودور كل طرف، وأهمية وجود مصدر طاقة منفصل للمحرك وأرضي مشترك، وكيفية حلّ المشكلات الأكثر شيوعًا التي يواجهها المبتدئون.

بشكل عام، يُعدّ L298N نقطة انطلاق موثوقة وبأسعار معقولة للتحكم في محركات التيار المستمر باستخدام أردوينو، والمهارات التي اكتسبتها هنا قابلة للتطبيق مباشرةً في مشاريع الروبوتات الحقيقية. لذا، كخطوة تالية، جرّب بناء أحد مشاريع سيارات الروبوت المذكورة أعلاه لتطبيق معرفتك في مجال التحكم بالمحركات عمليًا. نتمنى لك بناءً موفقًا!

3 رأي حول “L298N Motor Driver with Arduino: DC Motor Control Guide”

أضف تعليق