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

ملخص سريع

كيفية استخدام المحرك L298N ذو الجسر H المزدوج مع الاردوينو. يغطي التوصيل، والأسلاك لواحد أو اثنين من محركات التيار المستمر، والتحكم في الاتجاه والسرعة باستخدام PWM، وإعداد مصدر الطاقة. يتضمن رمز Arduino الذي تم اختباره لإعدادات التحكم في المحركات الشائعة.

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

ما يغطي هذا البرنامج التعليمي

  • ما هو مُشغِّل المحرك L298N، وما هي وظيفة الجسر H، ولماذا تحتاج إلى مُشغِّل محرك في المقام الأول.
  • مجموعة أسنان L298N الكاملة، بما في ذلك ENA، وENB، وIN1 حتى IN4، ومخرجات المحرك، وأطراف توصيل الطاقة.
  • قم بتوصيل L298N بـ Arduino ومحرك أو محركي تيار مستمر مع مصدر طاقة خارجي مناسب.
  • How to write Arduino code that controls motor direction with digitalWrite() and motor speed with analogWrite() using PWM.
  • اختبار، وضبط، واستكشاف أخطاء إعداد مشغل المحرك وإصلاحها حتى يعمل بشكل موثوق.
  • كيف يقارن L298N بخيارات محرك Arduino الشهيرة الأخرى مثل درع محرك Arduino ودرع L293D.

ما هو برنامج تشغيل المحرك L298N؟

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

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

كيف يعمل الجسر H-Bridge

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

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

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

H-bridge circuit diagram showing forward direction: switches S1 and S4 closed to allow current flow through the DC motor from left to right.
الاتجاه الأمامي: S1 و S4 مغلقان، يتدفق التيار من اليسار إلى اليمين عبر المحرك.

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

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

H-bridge circuit diagram showing reverse direction: switches S2 and S3 closed to reverse current flow through the DC motor from right to left.
الاتجاه العكسي: S2 و S3 مغلقان، يتدفق التيار من اليمين إلى اليسار عبر المحرك.

التحكم في السرعة باستخدام PWM

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

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

شرح دبوس L298N Pinout

تحتوي لوحة الاختراق 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 فولت، GND، +5 فولت): يقبل الطرف +12 فولت مصدر طاقة المحرك الخارجي، والذي يمكن أن يتراوح من 5 فولت إلى 35 فولت حسب المحركات الخاصة بك. GND هي الأرضية المشتركة بين مصدر المحرك ومنطق L298N وArduino. يمكن لطرف +5V أن يخرج 5 فولت عندما يتم تمكين منظم الجهد الموجود على اللوحة عبر وصلة عبور، أو بدلاً من ذلك قبول مصدر منطقي 5 فولت عند إزالة وصلة العبور ويتجاوز جهد المحرك 12 فولت.

دبابيس التمكين والإدخال

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

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

المكونات المطلوبة (BOM)

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

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

توصيل الأسلاك L298N مع الأردوينو

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

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

إمدادات الطاقة والسلامة

تعد أخطاء الطاقة السبب الأول للمشاكل في مشاريع L298N، لذا اتبع هذه الإرشادات للحفاظ على تشغيل الإعداد بشكل آمن.

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

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

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

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

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

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

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

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

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

رسم كامل: تحكمان في المحرك

/**
 * L298N Motor Driver - Two DC Motor Control
 * Author: Omar Draidrya
 * Website: omartronics.com
 *
 * Controls forward, stop, and reverse for two DC motors
 * using the L298N dual H-bridge with PWM speed control.
 */

#define IN1 9    // Motor A direction pin 1
#define IN2 8    // Motor A direction pin 2
#define IN3 7    // Motor B direction pin 1
#define IN4 6    // Motor B direction pin 2
#define ENA 10   // Motor A speed control (PWM)
#define ENB 5    // Motor B speed control (PWM)

void setup() {
  // Set all motor control pins as outputs
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);

  // Start with motors stopped
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
}

void loop() {
  // --- Move both motors FORWARD at half speed ---
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, 128);   // Motor A at ~50% speed
  analogWrite(ENB, 128);   // Motor B at ~50% speed
  delay(2000);

  // --- STOP both motors ---
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
  delay(2000);

  // --- Move both motors BACKWARD at half speed ---
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  analogWrite(ENA, 128);
  analogWrite(ENB, 128);
  delay(2000);

  // --- STOP both motors ---
  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 في Arduino Uno.

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

الحركة إلى الأمام يقوم الكود بتعيين IN1 HIGH و IN2 LOW، والذي يخبر الجسر H بقيادة المحرك A للأمام. وبالمثل، فإن IN3 HIGH وIN4 LOW يدفعان المحرك B إلى الأمام. بعد ذلك، يرسل استدعاء التناظرية (ENA، 128) إشارة PWM مع دورة تشغيل تبلغ حوالي 50 بالمائة (128 من 255)، لذلك يعمل المحرك بنصف السرعة تقريبًا. بعد ذلك، ينتظر الرمز ثانيتين.

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

حركة للخلف بالنسبة للتمرير العكسي، يقوم الكود بتعيين IN1 LOW و IN2 HIGH، مما يؤدي إلى عكس المحرك A. يذهب IN3 إلى LOW و IN4 إلى High لعكس المحرك B. وتظل السرعة عند 128 لنصف السرعة.

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

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

/**
 * L298N - Single DC Motor Control
 * Author: Omar Draidrya
 * Website: omartronics.com
 *
 * Drives one DC motor forward, stops, reverses, and stops.
 * Uses Motor A channel only (IN1, IN2, ENA).
 */

#define IN1  9   // Motor A direction pin 1
#define IN2  8   // Motor A direction pin 2
#define ENA  10  // Motor A speed (PWM)

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(ENA, OUTPUT);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
}

void loop() {
  // Forward at 75 % speed
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 191);
  delay(2000);

  // Stop
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  delay(1000);

  // Reverse at 50 % speed
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  analogWrite(ENA, 128);
  delay(2000);

  // Stop
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  delay(1000);
}

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

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

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

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

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

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

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

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

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

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

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

المشاكل الشائعة واستكشاف الأخطاء وإصلاحها

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

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

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

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

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

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

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

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

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

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

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

فحوصات الطاقة والسخونة الزائدة

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

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

L298N مقابل خيارات برامج تشغيل محرك Arduino الأخرى

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

درع محرك اردوينو

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

يتم توصيل هذا الدرع الرسمي مباشرةً برؤوس Uno، لذلك لا تحتاج إلى أسلاك توصيل بين السائق وArduino. وهو يدعم محركين DC (أو محرك متدرج واحد) بسرعة تصل إلى 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.

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

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

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

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

الأسئلة الشائعة (FAQ)

ما هو محرك المحرك L298N المستخدم في ماذا يستخدم محرك L298N؟

L298N هو محرك مزدوج الجسر H-محرك يستخدم للتحكم في سرعة واتجاه محرك أو محركي تيار مستمر واحد أو اثنين من متحكم دقيق مثل Arduino. على سبيل المثال، يوجد عادةً في السيارات الآلية وأجهزة التحكم في الحزام الناقل وحوامل الكاميرات الآلية.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

لماذا يصدر المحرك طنيناً ولا يدور؟

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

هل يمكنني تشغيل الأردوينو من دبوس L298N 5 فولت؟

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

هل L298N مناسب لبناء سيارة روبوت؟

بالتأكيد. L298N هو أحد أشهر مشغلات المحركات لسيارات الروبوت Arduino. ولهذا السبب، تُعد قناتاه المستقلتان المستقلتان مثاليتان للتحكم في المحركات اليمنى واليسرى لروبوت ذي محرك تفاضلي. في الواقع، تستخدم العديد من مشاريع OmArTronics محرك L298N أو محركات مشابهة، بما في ذلك سيارة روبوت يتم التحكم فيها عن طريق البلوتوث و سيارة روبوت تتفادى العقبات.

التحكم في السرعة ووظائف الدبوس

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

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

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

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

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

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

إمدادات الطاقة والحدود والاستخدام المتقدم

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

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

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

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

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

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

استكشاف الأخطاء وإصلاحها والموضوعات المتقدمة

لماذا يصدر المحرك طنيناً ولا يدور؟

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

هل يمكنني تشغيل الأردوينو من دبوس L298N 5 فولت؟

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

هل L298N مناسب لبناء سيارة روبوت؟

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

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

إذا كنت ترغب في مواصلة البناء على ما تعلمته هنا، فإن هذه البرامج التعليمية والمشاريع ذات الصلة بـ OmArTronics تعد خطوات تالية جيدة.

الخاتمة

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

يعد L298N نقطة انطلاق قوية وبأسعار معقولة للتحكم في محرك Arduino DC، لذلك إذا كنت تريد تفعيل هذه المهارات، فجرّب إحدى تصميمات السيارات الآلية المرتبطة أعلاه.

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

أضف تعليق