عناوين الدرس

راسبيري باي -الدرس التاسع- التحكم بمحرك الدي سي “DC”

مبتدئ

في هذا الدرس سوف نتعلم كيف نستخدم محرك DC وكيف نتحكم باتجاه وسرعة المحرك باستخدام لغة البايثون (Python) وشريحة L293D.

dc1

في الدرس الثامن تعلمنا كيف نخرج النبضات من خلال PWM لنتحكم باتجاه حركة محرك السيرفو ، في هذا الدرس سوف نستخدم PWM ولكن للتحكم بسرعة محركة الدي سي ، وسوف نستخدم شريحة L293D للتحكم باتجاه حركة المحرك.

القطع

لتطبيق الدرس نحتاج للقطع التالية:

راسبيري باي

sm2

وصلة خارجية لتوصيل أرجل GPIO في لوحة الاختبار

sm3

أسلاك توصيل

sm4

لوحة الاختبار

sm5

محرك “DC” الدي سي 6V

dc2

شريحة L293D IC

dc3

علبة بطاريات + 4 بطاريات AA

sm7

التحكم بالسرعة من خلال PWM

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

dc4

كل 1/500 من الثانية يخرج الـ PWM نبضة واحدة ، طول النبضة سوف يحدد قيمة الطاقة والتي تعني سرعة حركة المحرك ، إذا لم تخرج أي نبضة سوف يتوقف المحرك عن الدوران ، النبضة القصيرة تعني دوران بطيء.

شريحة L293D

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

dc5

شريحة L293D بها رجلين V+ رقم (8 و 16) ، الرجل رقم 8 “Vmotor+” تأخذ الطاقة من البطارية الخاصة بالمحرك ، أما الرجل 16 تأخذ الطاقة للشريحة من الراسبيري باي.

توصيل الأسلاك والقطع

هنالك سببين لاستخدام شريحة L293D في هذا الدرس ، السبب الأول التيار الخارج من الراسبيري باي غير كافي لتشغيل المحرك بشكل مباشر ، وتوصيل المحرك بشكل مباشر من الممكن أن يتسبب بالضرر للراسبيري باي.

السبب الثاني هو للتحكم بإتجاه حركة المحرك ، وهذا ممكن فقط بعكس اتجاه التيار الكهربائي بين طرفي المحرك ، ولذلك نحن نحتاج إلى شريحة L293D للقيام بذلك.

الصورة التالية توضح طريقة التوصيل:

ملاحظة هنالك حلول أخرى لكن استخدام شريحة L293D تعتبر من أسهل الطرق للمبتدئين.

الكود البرمجي

سوف نستخدم الرجلين رقم 4 و17 للتحكم باتجاه حركة المحرك، كما أننا سوف نستخدم المكتبة RPi.GPIO للتحكم بـ GPIO + PWM.

ملاحظة: راجع الدرس الرابع والثامن للإطلاع على GPIO+PWM.

الأن افتح نافذة SSH الخاثة بالراسبيري باي ثم اكتب الأمر التالي لفتح ملف نصي جديد باسم DCmotor:

nano DCmotor.py

الآن انسخ الكود البرمجي التالي ثم قم بالضغط على CTRL+x ثم إضغط Y حفظ الملف:

import RPi.GPIO as io
import time
io.setmode(io.BCM)
 
in1_pin = 4
in2_pin = 17
 
io.setup(in1_pin, io.OUT)
io.setup(in2_pin, io.OUT)
io.setup(18, io.OUT)
 
p = io.PWM(18, 50)
p.start(0)
 
try:
 
    while True:

        #clockwise
        io.output(in1_pin, True)    
        io.output(in2_pin, False)
        for i in range(100):
               p.ChangeDutyCycle(i)  
               time.sleep(0.04)

        #counter_clockwise
        time.sleep(1)
        io.output(in1_pin, False)    
        io.output(in2_pin, True)
        for i in range(100):
               p.ChangeDutyCycle(100-i)
               time.sleep(0.04)         
        time.sleep(1)
 
except KeyboardInterrupt:
 
        p.stop()
        io.cleanup()

أخيرًا لتشغيل البرنامج قم بكتابة الأمر التالي:

sudo python DCmotor.py

 

X
Product added to the cart