Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
أجهزة ومعدات

كيفية التحكم في محركات التيار المستمر باستخدام Raspberry Pi


سواء كان الأمر يتعلق بإنسان آلي صغير أو مروحة كهربائية صغيرة لإنترنت الأشياء ، فإن معرفة كيفية تشغيل الأشياء باستخدام محركات التيار المستمر مع Raspberry Pi يمكن أن يفتح مجموعة واسعة من مشاريع DIY الإبداعية لإبقائك مشغولاً. في هذا الدليل ، نستخدم وحدة التحكم في المحرك L298N في Raspberry Pi لإرسال الكهرباء إلى زوج من محركات التيار المستمر وجعلها تدور!

لماذا وحدة تحكم المحرك L298N؟

وحدة التحكم في المحرك L298N هي لوحة تساعد المتحكمات الدقيقة والمعالجات الدقيقة مثل محركات Raspberry Pi power DC التي تتطلب أكثر من 3.3 فولت أو 5 فولت التي يمكنها توفيرها.

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

تعد وحدة L298N وحدة تحكم في المحرك الأساسي في مجموعات الروبوتات DIY للمبتدئين نظرًا لسهولة استخدامها. يحتوي على دبابيس رأس حيث يمكنك إدخال أسلاك توصيل ، وتوصيله بـ Raspberry Pi دون وجود عوائق. يمكنك أيضًا تسريع أو إبطاء المحركات من خلال تطبيق إشارات تعديل عرض النبضة (PWM) على دبابيس “التمكين” الخاصة بها.

وحدة تشغيل المحرك L298N. لاحظ دبابيس رأس الذكر في أسفل اليمين للاتصال بدبوس إدخال / إخراج.

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

مع وضع ذلك في الاعتبار ، حان الوقت لتعمل يديك على بعض المحركات.

متعلق ب: قد تكون مهتمًا أيضًا باستخدام محرك مؤازر مع Raspberry Pi.

ماذا ستحتاج

الأشياء المطلوبة Raspberry Pi DC Motor L298n 9v Battery
  • محرك DC x2 – يجب أن يكون ناعمًا أو بدون فرش ؛ يمكنك استخدام المحركات مع أو بدون علبة تروس. ابحث عن محركات DC ذات تصنيف 35 فولت كحد أقصى.
  • وحدة تحكم المحرك L298N
  • مصدر التيار المستمر – إما بطارية وموصل 9 فولت أو وحدة إمداد طاقة متغيرة (PSU) إذا كانت متوفرة.
  • أسلاك العبور من أنثى إلى أنثى x6
  • سلك العبور من ذكر إلى أنثى x1
  • لوحة Raspberry Pi – يجب أن يعمل أي طراز أو طراز باستثناء بيكو.

المستلزمات الاختيارية:

  • لحام حديد – لإضافة أسلاك على محركاتك إذا لم تكن ملحومة مسبقًا بأسلاك.
  • قواطع الأسلاك
  • قاطع الاسلاك
  • أسلاك نحاسية PVC – 12AWG ، ويفضل أن تكون مجدولة ، يتم لحامها بمحركات التيار المستمر.

كيفية استخدام محرك DC ووحدة التحكم في المحرك L298N مع Raspberry Pi الخاص بك

إذا كنت بدأت للتو في استخدام ترميز Python ، فلا تفوت هذه الأكواد المفيدة أحادية الخط لبايثون.

1. صنع المدونة

  1. استيراد الوحدات اللازمة.
import RPi.GPIO as GPIO
from time import sleep
  1. حدد الدبابيس. سيتم التحكم في المحرك الأيسر بواسطة المسامير 7 و 11 و 13 ، بينما سيتم التحكم في المحرك الأيمن بواسطة المسامير 8 و 10 و 12.
leftForward = 7
leftBackward = 11
leftEnable = 13
 
rightForward = 8
rightBackward = 10
rightEnable = 12
  1. قم ببناء الإعدادات المتعلقة باللوحة.
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
  1. حان الوقت لتعيين تعيينات الدبوس. نظرًا لأن وحدة التحكم L298N DC لا تتطلب سوى إدخال من Raspberry Pi ، فقم بتعيين دبابيس Raspberry Pi على أنها دبابيس إخراج.
GPIO.setup(leftForward, GPIO.OUT)
GPIO.setup(leftBackward, GPIO.OUT)
GPIO.setup(leftEnable, GPIO.OUT)
GPIO.setup(rightForward, GPIO.OUT)
GPIO.setup(rightBackward, GPIO.OUT)
GPIO.setup(rightEnable, GPIO.OUT)
  1. اضبط دبابيس التمكين اليمنى واليسرى على PWM بحيث يمكن ضبط سرعة المحركات من خلال التحكم في خرج الجهد لكل دبوس. تحدثنا عن كيفية عمل PWM في مقال سابق حول التحكم في الماكينات.
leftEnPWM = GPIO.PWM(leftEnable, 100)
leftEnPWM.start(50)
GPIO.output(leftEnable, GPIO.HIGH)
 
rightEnPWM = GPIO.PWM(rightEnable, 100)
rightEnPWM.start(50)
GPIO.output(rightEnable, GPIO.HIGH)
  1. قم بعمل حلقة.
while True:
        GPIO.output(leftForward, GPIO.HIGH)
        GPIO.output(rightForward, GPIO.HIGH)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(100)
        rightEnPWM.ChangeDutyCycle(100)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(50)
        rightEnPWM.ChangeDutyCycle(50)
        sleep(1)

داخل حلقة while ، ابدأ بالتدوير من اليسار إلى الأمام وإلى اليمين ودبابيس للأمام لمدة ثانية واحدة. للتحكم في السرعة ، قم بتغيير دورة عمل دبابيس التمكين. قم أولاً بتعيينهم على دورة عمل بنسبة 100٪ لمدة ثانية واحدة ، ثم قم بتعيينهم على 50٪ لدورة عمل أخرى. في دورة عمل 100٪ ، ستعمل المحركات بأقصى سرعة ، بينما عند 50٪ ، ستعمل بنصف السرعة.

  1. قم بإيقاف المحركات عن طريق إيقاف تشغيل المسامير اليمنى واليسرى للأمام. هنا ، نوقفهم لمدة ثانية واحدة.
        GPIO.output(leftForward, GPIO.LOW)
        GPIO.output(rightForward, GPIO.LOW)
        sleep(1)
  1. كرر نفس العملية ولكن عن طريق تشغيل المحركات للخلف بدلاً من ذلك.
        GPIO.output(leftBackward, GPIO.HIGH)
        GPIO.output(rightBackward, GPIO.HIGH)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(100)
        rightEnPWM.ChangeDutyCycle(100)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(50)
        rightEnPWM.ChangeDutyCycle(50)
        sleep(1)
        GPIO.output(leftBackward, GPIO.LOW)
        GPIO.output(rightBackward, GPIO.LOW)
        sleep(1)

ها هي النسخة الكاملة من الكود:

import RPi.GPIO as GPIO
from time import sleep
 
leftForward = 7
leftBackward = 11
leftEnable = 13
 
rightForward = 8
rightBackward = 10
rightEnable = 12
 
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
 
GPIO.setup(leftForward, GPIO.OUT)
GPIO.setup(leftBackward, GPIO.OUT)
GPIO.setup(leftEnable, GPIO.OUT)
GPIO.setup(rightForward, GPIO.OUT)
GPIO.setup(rightBackward, GPIO.OUT)
GPIO.setup(rightEnable, GPIO.OUT)
 
leftEnPWM = GPIO.PWM(leftEnable, 100)
leftEnPWM.start(50)
GPIO.output(leftEnable, GPIO.HIGH)
 
rightEnPWM = GPIO.PWM(rightEnable, 100)
rightEnPWM.start(50)
GPIO.output(rightEnable, GPIO.HIGH)
 
while True:
        GPIO.output(leftForward, GPIO.HIGH)
        GPIO.output(rightForward, GPIO.HIGH)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(100)
        rightEnPWM.ChangeDutyCycle(100)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(50)
        rightEnPWM.ChangeDutyCycle(50)
        sleep(1)
        GPIO.output(leftForward, GPIO.LOW)
        GPIO.output(rightForward, GPIO.LOW)
        sleep(1)
 
        GPIO.output(leftBackward, GPIO.HIGH)
        GPIO.output(rightBackward, GPIO.HIGH)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(100)
        rightEnPWM.ChangeDutyCycle(100)
        sleep(1)
        leftEnPWM.ChangeDutyCycle(50)
        rightEnPWM.ChangeDutyCycle(50)
        sleep(1)
        GPIO.output(leftBackward, GPIO.LOW)
        GPIO.output(rightBackward, GPIO.LOW)
        sleep(1)

احفظ هذا باسم “rpi-dcmotor.py” أو أي اسم ملف آخر ، طالما أنه ينتهي بامتداد الملف “.py”. أغلق Raspberry Pi بعد ذلك.

2. بناء الدائرة

  1. بالانتقال إلى وحدة التحكم في المحرك L298N ، إذا نظرت إلى دبابيس الرأس ، يجب أن ترى رؤوس العبور التي تربط دبابيس ENA و ENB بكل دبوس 5 فولت. قم بإزالة رؤوس العبور هذه من اللوحة.
L298n Motor Driver Module تمكين إزالة وصلة عبور الدبوس
قم بإزالة دبابيس العبور الموجودة على الجانبين.

ملحوظة: تقوم دبابيس العبور هذه تلقائيًا بتوصيل دبابيس EN بـ 5 فولت ، “مما يتيح لك” التحكم في الدائرة من خلال دبابيس IN. بينما لا يزال من المفترض أن تمرر الكهرباء عبر هذا الدبوس ، قد يتسبب 5V في بعض المشاكل لـ Raspberry Pi ، والذي من المفترض أن يستخدم 3.3 فولت بدلاً من 5 فولت. بالإضافة إلى ذلك ، يتيح لك توصيل هذه المسامير بـ Raspberry Pi التحكم في سرعات المحركات لاحقًا.

  1. استخدم أسلاك توصيل من أنثى إلى أنثى لتوصيل دبابيس الرأس بـ Raspberry Pi. بالنسبة لهذا الدليل ، سيتعين عليك توصيلهم بدبابيس Raspberry Pi هذه:
    • IN1 = دبوس 7
    • IN2 = دبوس 11
    • ENA = دبوس 13
    • IN3 = دبوس 8
    • IN4 = دبوس 10
    • ENB = دبوس 12
L298n أسلاك توصيل وحدة تشغيل المحرك

نصيحة: لمعرفة رقم التعريف الشخصي الموجود على Raspberry Pi ، أمسكه حتى تجلس دبابيس GPIO على اليمين. تلك هي القطع المعدنية الصغيرة التي تقف على صينية سوداء. ثم ، إذا نظرت إلى الدبوس الأيسر العلوي من هذا الدرج ، فهذا الدبوس 1. إلى اليمين يوجد الدبوس 2. أسفل الدبوس 1 هو الدبوس 3 ، وهكذا.

Raspberry Pi Pinout
المصدر: Krita
  1. قم بتوصيل سلك توصيل بالطرف اللولبي GND الخاص بـ L298N. على Raspberry Pi ، قم بتوصيل الجانب الآخر من سلك العبور هذا بالدبوس 9.
L298n سلك توصيل لوحدة تشغيل المحرك لـ Gnd
لاحظ نص GND الأبيض أعلى طرف المسمار GND.
  1. بالنسبة للمحركات ، يمكنك إدخالها في أي اتجاه تريده. فقط تأكد من أن المحرك 1 متصل بـ OUT1 و OUT2 ، والمحرك 2 بـ OUT3 و OUT4.
L298n Motor Driver Module Motors متصلة 1

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

محرك تيار مستمر بدون صندوق تروس ومع صندوق تروس
اليسار: منظر عن قرب لمحرك تيار مستمر بدون علبة تروس. تساعد قطعة من الشريط في إظهار مدى سرعة دورانه أثناء الاختبار. يمينًا: منظر عن قرب لمحرك يعمل بالتيار المستمر مع علبة تروس.
  1. بالنسبة لمصدر الطاقة ، تأكد أولاً من إيقاف تشغيله أو فصله. وجّه الجزء الموجب إلى الجانب “+ 12V” والجزء السالب إلى GND ، جنبًا إلى جنب مع سلك توصيل GND إلى Raspberry Pi.
L298n موتور وحدة تشغيل أسلاك إمداد الطاقة

3. جعلها تعمل

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

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

دي سي برميل جاك يجري متصل

لا داعي للقلق أيضًا بشأن بطارية 9V التي تدمر Raspberry Pi الخاص بك. تستخدم الوحدة النمطية L298N شريحة خاصة تسمى MOSFET تعمل مثل مرحل منخفض الطاقة ، لتصبح مفتاحًا كهربائيًا يحافظ على دبابيسك معزولة نوعًا ما عن مصدر الطاقة.

نضع كل شيء معًا

كيف يؤدي انبعاث الكهرباء من دبوس واحد إلى دوران محرك التيار المستمر؟ دعونا نتعمق قليلاً في كيفية جعل المحركات تدور.

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

تستخدم وحدة التحكم في المحرك L298N مفاتيح كهربائية متعددة للتحكم في دوران المحرك. يمكنك التفكير في هذه المفاتيح على أنها شيء مثل مفتاح الجدار ، إلا أنها لا تستخدم الأصابع للعمل – فهي تستخدم 3.3 فولت من Raspberry Pi.

وهنا حيث GPIO.output(<insert-pin-here>, GPIO.HIGH) يأتي دور. ضبط هذا الدبوس على GPIO.HIGH يجعل الدبوس المذكور ينبعث من 3.3 فولت. هذا ينشط المفتاح ، والذي يسمح للكهرباء بدخول المحرك. ثم يؤدي تدفق الكهرباء إلى دوران المحرك. تحويل هذه المسامير إلى GPIO.LOW يقوم بإيقاف تشغيل المفتاح ، وقطع الطاقة عن المحرك.

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

ضبط سرعة المحرك

هناك أيضا قضية السرعة. بالمقارنة مع المسامير الأمامية والخلفية ، تتحكم دبابيس التمكين في مقدار الكهرباء التي تمر عبر المحرك في أي نقطة زمنية معينة.

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

في Raspberry Pi ، نستخدم PWM ، أو Pulse With Modulation ، للتحكم في خرج الجهد لدبوس. تؤدي زيادة دورة العمل إلى تقريب الجهد من 3.3 فولت بحد أقصى ، وتقليله يجعله أقرب إلى 0 فولت.

نبض عرض تعديل موجات النبض
كلما انخفضت دورة العمل ، انخفض الجهد الكلي.

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

نصائح: بخلاف محركات التيار المستمر ، يمكنك أيضًا استخدام مكبر صوت بيزو مع Raspberry Pi لتشغيل الصوت.

أسئلة مكررة

ما هو الفرق بين محرك التيار المستمر المصقول وعديم الفرشاة؟

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

أيهما أفضل: محركات مصقولة أم محركات بدون فرش؟

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

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

ما هو أقصى خرج حالي لوحدة تشغيل المحرك L298N؟

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

الصور والرسوم البيانية من قبل تيرينز جومار ديلا كروز.

تيرينز جومار ديلا كروز

Terenz هو هاوٍ متخصص في الروبوتات يحاول بناء أروع روبوت شهده العالم على الإطلاق. كان بإمكانه فعل ذلك بالفعل إذا لم يكن مشغولًا جدًا في حرق مصابيح LED كهواية ثانية.

اشترك في نشرتنا الإخبارية!

تم تسليم أحدث دروسنا مباشرة إلى صندوق الوارد الخاص بك

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى