كيفية استخدام برنامج تشغيل المحرك L298N مع Arduino

How to Use the L298N Motor Driver with Arduino

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


ماذا ستحتاج

  1. وحدة تشغيل محرك L298N
  2. لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
  3. Motors DC أو Stepper Motors
  4. مصدر الطاقة الخارجي (على سبيل المثال ، بطارية 9V أو 12V)
  5. الأسلاك الأسلاك والبلوز
  6. جهاز كمبيوتر مع Arduino IDE مثبت

الخطوة 1: فهم سائق المحرك L298N

وحدة L298N هي برنامج تشغيل مزدوج H-Bridge Motor ، مما يعني أنه يمكنه التحكم في سرعة واتجاه محركين DC بشكل مستقل أو محرك السائر واحد.

L298n pinout

دبوس وظيفة
in1 ، in2 محرك مدخلات التحكم في الاتجاه
in3 ، in4 مدخلات التحكم في اتجاه المحرك ب
ena محرك التحكم في السرعة (إدخال PWM)
enb التحكم في سرعة المحرك B (إدخال PWM)
Out1 ، Out2 المحرك أ مخرجات
Out3 ، Out4 مخرجات المحرك B
12V (VCC) إمدادات الطاقة الخارجية للمحركات
5V (اختياري) مزود الطاقة المنطقي (إذا تمت إزالة الطائر)
GND أرضي

ملحوظات:

  • تتضمن الوحدة منظمًا على متن الطائرة 5V يقوم بتشغيل الدوائر المنطقية إذا كان الطائر في مكانه و VCC هو 7-12 فولت.
  • تتطلب إزالة الطائر توفير إمدادات منطق 5V بشكل منفصل.

الخطوة 2: توصيل L298N إلى Arduino

إليك كيفية توصيل L298N بمحركات Arduino UNO واثنين من محركات DC:

L298n دبوس دبوس أردوينو
ena دبوس 10 (PWM)
in1 دبوس 8
in2 دبوس 9
enb PIN 11 (PWM)
in3 دبوس 6
in4 دبوس 7
GND Arduino GND
12V (VCC) الطاقة الخارجية (9V/12V)
Out1 ، Out2 المحرك أطراف المحطات
Out3 ، Out4 محطات المحرك ب

الخطوة 3: تحميل الرمز

فيما يلي مثال على الرسم للتحكم في محركين DC:

رمز مثال

// Motor A connections
#define ENA 10
#define IN1 8
#define IN2 9

// Motor B connections
#define ENB 11
#define IN3 6
#define IN4 7

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

void loop() {
  // Move Motor A forward
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 150); // Set speed (0-255)

  // Move Motor B backward
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  analogWrite(ENB, 150); // Set speed (0-255)

  delay(2000); // Run for 2 seconds

  // Stop both motors
  digitalWrite(ENA, LOW);
  digitalWrite(ENB, LOW);

  delay(1000); // Pause for 1 second

  // Move both motors in reverse
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, 200);
  analogWrite(ENB, 200);

  delay(2000); // Run for 2 seconds

  // Stop both motors
  digitalWrite(ENA, LOW);
  digitalWrite(ENB, LOW);
  delay(1000); // Pause for 1 second
}

الخطوة 4: اختبار الإعداد

  1. قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
  2. افتح Arduino IDE وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
  3. قم بتحميل الرمز إلى Arduino بالنقر فوق رفع.
  4. راقب المحركات التي تدور للأمام ، وتتوقف ، والعكس بناءً على التسلسل المبرمج.

اختياري: التحكم في السرعة ديناميكيًا

يمكنك ضبط سرعة المحرك ديناميكيًا عن طريق تغيير قيم PWM المرسلة إلى ENA و ENB دبابيس باستخدام analogwrite (). على سبيل المثال:

analogWrite(ENA, 100); // Slow speed
analogWrite(ENA, 255); // Full speed

Applications of the L298N

  1. Building motorized robots
  2. Controlling conveyor belts
  3. قيادة السائر محركات
  4. Automating systems with DC motors

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

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

خاتمة

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

اترك تعليقًا

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.