ملخص سريع
كيفية استخدام المحرك 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 مفتوحين، يتدفق التيار من مصدر الطاقة عبر المحرك في اتجاه واحد، مما يؤدي إلى دورانه للأمام.

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

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

شرح دبوس L298N Pinout
تحتوي لوحة الاختراق L298N على عدة مجموعات من الدبابيس والمحطات الطرفية، لذلك قبل توصيل أي شيء، تحتاج إلى فهم كل واحدة منها.
أطراف خرج المحرك (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-الجسر المزدوج L298N | 1 | لوحة الاختراق الحمراء ذات الأطراف اللولبية |
| محرك تيار مستمر (محرك هواية 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 مدخل 1 | D9 | تعيين مرتفع أو منخفض للتحكم في الاتجاه |
| IN2 | مدخل اتجاه المحرك A مدخل 2 | D8 | تعيين مرتفع أو منخفض للتحكم في الاتجاه |
| IN3 | مدخل اتجاه المحرك B مدخل 1 | D7 | تعيين مرتفع أو منخفض للتحكم في الاتجاه |
| IN4 | مدخل اتجاه المحرك B اتجاه المحرك 2 | D6 | تعيين مرتفع أو منخفض للتحكم في الاتجاه |
| ENB | سرعة المحرك B (PWM) | D5 (PWM) | أزل غطاء العبور من ENB لتمكين التحكم في سرعة PWM |
| +12 فولت (VCC) | مصدر طاقة المحرك موجب | — | قم بالتوصيل بالبطارية الخارجية أو الطرف الموجب للإمداد (5 فولت - 35 فولت؛ عادةً 6 فولت - 12 فولت لمعظم مشاريع الروبوت) |
| GND | أرضية مشتركة | GND | حرجة: قم بتوصيل L298N GND بكل من أرضية الإمداد الخارجي وGND الخاص ب Arduino |
| +5V | خرج منظم 5 فولت المدمج | — | مع تثبيت وصلة التوصيل المدمجة على اللوحة، يخرج هذا الخرج 5 فولت. يمكن تشغيل الأردوينو اختياريًا، ولكن يجب على معظم المبتدئين تشغيل الأردوينو بشكل منفصل عبر USB |

إمدادات الطاقة والسلامة
تعد أخطاء الطاقة السبب الأول للمشاكل في مشاريع 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. تظل قناة المحرك الثانية غير مستخدمة ولا تحتاج إلى أي أسلاك.
الجدول المرجعي لمنطق الاتجاهات
| IN1 | IN2 | السلوك الحركي أ السلوك |
|---|---|---|
| عالية | منخفضة | يدور للأمام |
| منخفضة | عالية | يدور للخلف |
| منخفضة | منخفضة | محطات التوقف (الساحل) |
| عالية | عالية | التوقف (الفرامل) |
اختبر إعداداتك واضبطها
ابدأ بمحرك واحد. افصل المحرك 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. فيما يلي مقارنة مختصرة لمساعدتك في اختيار الخيار المناسب. للحصول على دروس كاملة حول الأسلاك والتعليمات البرمجية على كل درع، راجع الأدلة المخصصة لها.
درع محرك اردوينو


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

يستخدم درع المحرك 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 |
|---|---|---|---|
| دعم محركات التيار المستمر | 2 | 2 | حتى 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 هو محرك مزدوج الجسر H-محرك يستخدم للتحكم في سرعة واتجاه محرك أو محركي تيار مستمر واحد أو اثنين من متحكم دقيق مثل Arduino. على سبيل المثال، يوجد عادةً في السيارات الآلية وأجهزة التحكم في الحزام الناقل وحوامل الكاميرات الآلية.
نعم، يحتوي L298N على قناتين مستقلتين. في الواقع، يمكنك استخدام قناة واحدة فقط (المحرك A المزود بـ IN1 وIN2 وENA) وترك القناة الثانية مفصولة. القناة غير المستخدمة لا تتداخل مع التشغيل.
بشكل أساسي، يدعم مدخل مصدر إمداد المحرك L298N (طرف +12 فولت) 5 فولت إلى 35 فولت. ومع ذلك، يعمل منظم الجهد الموجود على اللوحة بشكل موثوق حتى حوالي 12 فولت فقط. إذا تجاوز مصدر إمداد المحرك 12 فولت، قم بإزالة وصلة المنظم وقم بتوفير طاقة منطقية 5 فولت بشكل منفصل إلى دبوس +5 فولت.
عادةً، تسحب محركات التيار المستمر تيارًا عاليًا عند بدء التشغيل، مما قد يتسبب في انخفاض الجهد في مصدر الطاقة. إذا كان الأردوينو يشترك في نفس المصدر مع المحركات، فإن هذا الانخفاض يمكن أن يعيد ضبط المتحكم الدقيق. استخدم دائمًا مصدر طاقة منفصلًا لمحركاتك وقم بتوصيل خط GND فقط بين مصدر المحرك واردوينو.
أولاً، قم بإزالة غطاء العبور من دبوس ENA أو ENB وتوصيل هذا الدبوس بدبوس رقمي قادر على PWM على Arduino. بعد ذلك، استخدم الدالة analogWrite() بقيمة تتراوح بين 0 (متوقف) و255 (السرعة القصوى) لضبط سرعة المحرك. لمعرفة المزيد عن PWM، راجع دليل التحكم في المؤازرة Arduino ومؤازرة PWM.
يتحكم IN1 و IN2 (و IN3/IN4 للمحرك الثاني) في اتجاه المحرك من خلال تحديد اتجاه تدفق التيار عبر الجسر H. يتحكم ENA وENB فيما إذا كانت قناة المحرك نشطة وبأي سرعة. فكّر في دبابيس IN على أنها التوجيه ودبابيس EN على أنها الصمام الخانق.
يلزم وجود مصدر طاقة خارجي. يحتاج L298N إلى واحد متصل بطرفه +12 فولت و GND لتشغيل المحركات. لا يمكن أن يوفر دبوس Arduino 5 فولت تيارًا كافيًا لمحركات التيار المستمر. قد يؤدي تشغيل المحركات من دبوس Arduino إلى تلف اللوحة ويتسبب في تشغيل غير موثوق.
يمكن. يستطيع L298N تشغيل محرك متدرج واحد بأربعة أسلاك باستخدام كلتا القناتين معًا (IN1–IN4 للتسلسل المكون من أربع خطوات). ومع ذلك، يفتقر الطراز L298N إلى القدرة على إجراء خطوات دقيقة. للتحكم بشكل أكثر سلاسة في السائر، عادةً ما يكون برنامج التشغيل المخصص مثل A4988 أو DRV8825 هو الخيار الأفضل.
يمكن للمحرك L298N توصيل ما يصل إلى 2 أمبير متواصل لكل قناة محرك، مع ذروة تيارات تصل إلى 3 أمبير للرشقات القصيرة. إذا كانت محركاتك تسحب أكثر من 2 أمبير تحت الحمل، فيجب عليك استخدام محرك أكثر قوة أو إضافة تبريد نشط إلى المشتت الحراري.
يعني طنين المحرك عادةً أن دورة عمل PWM منخفضة جدًا للتغلب على احتكاك بدء تشغيل المحرك&8217;، مما يعني أن دورة عمل PWM منخفضة جدًا للتغلب على احتكاك بدء تشغيل المحرك. قم بزيادة القيمة التناظرية للكتابة. تحتاج معظم محركات التيار المستمر الصغيرة إلى قيمة PWM بحد أدنى يتراوح بين 50 إلى 80 قبل أن تبدأ في الدوران. تحقق أيضًا من أن المحرك ليس محشورًا ميكانيكيًا وأن مزود الطاقة لديك يمكنه توصيل تيار كافٍ.
عندما تكون وصلة المنظم المدمجة في مكانها وتقوم بتزويد 7 فولت-12 فولت إلى طرف +12 فولت، يخرج دبوس L298N +5 فولت 5 فولت منظم يمكنك توصيله بدبوس Arduino 5 فولت (وليس Vin). يعمل هذا ولكن لا يوصى به للمبتدئين لأن أي ضوضاء للمحرك على خط الإمداد يمكن أن تصل إلى Arduino. للحصول على نتائج موثوقة، حافظ على تزويد Arduino بالطاقة من خلال USB أو مصدر إمداد مخصص له.
بالتأكيد. L298N هو أحد أشهر مشغلات المحركات لسيارات الروبوت Arduino. ولهذا السبب، تُعد قناتاه المستقلتان المستقلتان مثاليتان للتحكم في المحركات اليمنى واليسرى لروبوت ذي محرك تفاضلي. في الواقع، تستخدم العديد من مشاريع OmArTronics محرك L298N أو محركات مشابهة، بما في ذلك سيارة روبوت يتم التحكم فيها عن طريق البلوتوث و سيارة روبوت تتفادى العقبات.
التحكم في السرعة ووظائف الدبوس
عادةً، تسحب محركات التيار المستمر تيارًا عاليًا عند بدء التشغيل، مما قد يتسبب في انخفاض الجهد في مصدر الطاقة. إذا كان الأردوينو يشترك في نفس المصدر مع المحركات، فإن هذا الانخفاض يمكن أن يعيد ضبط المتحكم الدقيق. استخدم دائمًا مصدر طاقة منفصلًا لمحركاتك وقم بتوصيل خط GND فقط بين مصدر المحرك واردوينو.
أولاً، قم بإزالة غطاء العبور من دبوس ENA أو ENB وتوصيل هذا الدبوس بدبوس رقمي قادر على PWM على Arduino. بعد ذلك، استخدم الدالة analogWrite() بقيمة تتراوح بين 0 (متوقف) و255 (السرعة القصوى) لضبط سرعة المحرك. لمعرفة المزيد عن PWM، راجع دليل التحكم في المؤازرة Arduino ومؤازرة PWM.
يتحكم IN1 وIN2 (و IN3/IN4 للمحرك الثاني) في اتجاه المحرك من خلال تحديد الاتجاه الذي يتدفق فيه التيار عبر الجسر H. من ناحية أخرى، تتحكم ENA وENB في ما إذا كانت القناة الحركية نشطة وبأي سرعة. فكر في دبابيس IN باعتبارها التوجيه ودبابيس EN باعتبارها دواسة الوقود.
إمدادات الطاقة والحدود والاستخدام المتقدم
نعم، أنت بحاجة إلى مصدر طاقة خارجي. يحتاج L298N إلى واحد متصل بأطراف +12V و GND لتشغيل المحركات لأن طرف Arduino 5V لا يمكنه توفير تيار كافٍ لمحركات التيار المستمر. يؤدي تشغيل المحركات من طرف Arduino إلى خطر إتلاف اللوحة ويؤدي إلى عدم موثوقية التشغيل.
نعم، يستطيع L298N تشغيل محرك متدرج واحد بأربعة أسلاك باستخدام كلتا القناتين معًا (IN1-IN4 للتسلسل المكون من أربع خطوات). ومع ذلك، يفتقر الطراز L298N إلى القدرة على إجراء خطوات دقيقة. للتحكم بشكل أكثر سلاسة في السائر، عادةً ما يكون برنامج التشغيل المخصص مثل A4988 أو DRV8825 هو الخيار الأفضل.
يمكن أن يوفر L298N ما يصل إلى 2 أمبير متواصل لكل قناة محرك، مع تيارات ذروة تصل إلى 3 أمبير للدفعات القصيرة. إذا كانت محركاتك تسحب أكثر من 2 أمبير تحت الحمل، فيجب عليك إما استخدام محرك أكثر قوة أو إضافة تبريد نشط إلى المشتت الحراري.
استكشاف الأخطاء وإصلاحها والموضوعات المتقدمة
عادةً ما يعني المحرك الطنان أن دورة تشغيل PWM منخفضة جدًا بحيث لا يمكنها التغلب على احتكاك بدء تشغيل المحرك، لذا قم بزيادة قيمة الكتابة التناظرية. تحتاج معظم محركات التيار المستمر الصغيرة إلى حد أدنى لقيمة PWM يتراوح بين 50 إلى 80 قبل أن تبدأ في الدوران. تأكد أيضًا من أن المحرك غير محشور ميكانيكيًا وأن مصدر الطاقة الخاص بك يمكنه توفير تيار كافٍ.
عندما يكون وصلة المنظم الموجودة على اللوحة في مكانها وتقوم بتزويد 7 إلى 12 فولت إلى طرف +12 فولت، فإن طرف L298N +5V يخرج 5 فولت منظم يمكنك توصيله بمنفذ Arduino 5V (وليس Vin). يعمل هذا، لكني لا أوصي به للمبتدئين لأن ضجيج المحرك على خط الإمداد يمكن أن يصل إلى الأردوينو. للحصول على نتائج أكثر موثوقية، حافظ على تشغيل Arduino عبر USB أو مصدره المخصص.
نعم. يعد L298N واحدًا من أشهر محركات السيارات لسيارات Arduino الآلية. تعمل القناتان المستقلتان بشكل جيد للتحكم في المحركات اليسرى واليمنى لروبوت الدفع التفاضلي. في الواقع، العديد من مشاريع OmArTronics تستخدم L298N أو برامج تشغيل مماثلة، بما في ذلك برامج التشغيل الخاصة بنا سيارة روبوت يتم التحكم فيها عن طريق البلوتوث و سيارة روبوت تتفادى العقبات.
الموارد والمشاريع القادمة
إذا كنت ترغب في مواصلة البناء على ما تعلمته هنا، فإن هذه البرامج التعليمية والمشاريع ذات الصلة بـ OmArTronics تعد خطوات تالية جيدة.
- بناء سيارة روبوت لتجنب العقبات - اجمع بين مهاراتك في التحكم الحركي ومستشعر الموجات فوق الصوتية لإنشاء روبوت يتنقل حول الأجسام بشكل مستقل.
- بناء سيارة روبوت يتم التحكم فيها عن طريق البلوتوث - إضافة وحدة بلوتوث HC-05 والتحكم في الروبوت الخاص بك من هاتفك الذكي.
- البرنامج التعليمي لوحدة البلوتوث Arduino HC-05/HC-06 - تعلم كيفية إعداد الاتصال اللاسلكي بين هاتفك و Arduino.
- تعلم قياس المسافة باستخدام البرنامج التعليمي لمستشعر المسافة بالموجات فوق الصوتية Arduino (HC-SR04) - مهارة أساسية للروبوتات المتحركة.
- دليل التحكم في المحرك المؤازر Arduino - توسع في المحركات المؤازرة للأذرع الروبوتية وآليات التحريك والإمالة وغيرها.
- إعادة النظر في أساسيات برمجة الأردوينو إذا كنت بحاجة إلى معرفة المزيد عن Arduino IDE أو بنية الرسم أو الوظائف الأساسية.
- بناء رادار Arduino مع مستشعر بالموجات فوق الصوتية ومؤازر - مشروع ممتع يجمع بين التحكم المؤازر واستشعار المسافة.
الخاتمة
يغطي ذلك كل ما تحتاجه لتشغيل محركات التيار المستمر مع L298N وArduino. أنت تعرف الآن كيف يعمل الجسر H المزدوج، وكيفية توصيله، وكيفية التحكم في سرعة المحرك واتجاهه باستخدام PWM والمنطق الرقمي الأساسي. أنت تفهم أيضًا دبوس L298N، وسبب أهمية مصدر طاقة المحرك المنفصل، وكيف تربط الأرضية المشتركة كل شيء معًا، وكيفية إصلاح المشكلات الأكثر شيوعًا التي يواجهها المبتدئين.
يعد L298N نقطة انطلاق قوية وبأسعار معقولة للتحكم في محرك Arduino DC، لذلك إذا كنت تريد تفعيل هذه المهارات، فجرّب إحدى تصميمات السيارات الآلية المرتبطة أعلاه.
3 رأي حول “L298N Motor Driver with Arduino: DC Motor Control Guide”