الـ BTS7960 محرك الدرايفر هو وحدة H-bridge قوية قادرة على التعامل مع تيارات عالية، مما يجعله مثالياً للتحكم في محركات التيار المستمر في مشاريع الروبوتات والأتمتة. في هذا الدرس، ستتعلم كيفية توصيل والتحكم بـ BTS7960 مع Raspberry Pi لتشغيل محرك.
ما ستحتاجه
- Raspberry Pi (أي طراز يدعم GPIO، مثل Pi 3، Pi 4)
- وحدة محرك BTS7960
- محرك DC (مناسب لمشروعك)
- مزود طاقة خارجي (مطابق لجهد واحتياجات التيار لمحركك)
- لوحة تجارب وأسلاك توصيل
الخطوة 1: فهم BTS7960 Motor Driver
تتضمن وحدة BTS7960 نصفين من الجسور عالية القدرة قادرين على تشغيل المحركات بتيارات تصل إلى 43A. يتميز بـ:
- مداخل PWM للتحكم في السرعة
- مداخل التحكم في الاتجاه
- حماية من التيار الزائد والحرارة
توصيف الأرجل (Pinout)
| الرجل | الوصف |
|---|---|
| VCC | مدخل طاقة منطقية 5V |
| GND | الأرضي |
| RPWM | مدخل PWM للحركة الأمامية |
| LPWM | مدخل PWM للحركة العكسية |
| R_EN | رجل التمكين للحركة الأمامية |
| L_EN | رجل التمكين للحركة العكسية |
| Motor+ (M+) | الطرف الموجب للمحرك |
| Motor- (M-) | الطرف السالب للمحرك |
| VIN | مزود طاقة المحرك الخارجي |
| GND (Power) | الأرضي لمزود طاقة المحرك |
الخطوة 2: توصيل BTS7960 بـ Raspberry Pi
التوصيلات
| BTS7960 رجل | Raspberry Pi رجل |
|---|---|
| VCC | 5V |
| GND | GND |
| RPWM | GPIO18 (قناة PWM 0) |
| LPWM | GPIO19 (قناة PWM 1) |
| R_EN | GPIO23 |
| L_EN | GPIO24 |
توصيلات المحرك ومزود الطاقة
- وصل أطراف المحرك إلى Motor+ (M+) وMotor- (M-) الأرجل.
- وصل الطرف الموجب لمزود الطاقة الخارجي إلى VIN.
- وصل أرضي مزود الطاقة الخارجي إلى GND (Power) الرجل.
ملاحظة: تأكد أن مزود الطاقة الخارجي يطابق جهد واحتياجات التيار لمحركك.
الخطوة 3: تمكين PWM على Raspberry Pi
للتحكم في سرعة المحرك، ستستخدم PWM (تعديل عرض النبضة). تدعم دبابيس GPIO18 و GPIO19 على Raspberry Pi PWM مادي.
تمكين PWM عبر إعدادات Raspberry Pi
- افتح الطرفية وشغّل:
sudo raspi-config - انتقل إلى Interface Options > P5: I2C، ومكّن I2C.
- احفظ وأعد تشغيل Raspberry Pi:
sudo reboot
الخطوة 4: كتابة كود Python للتحكم بالمحرك
ثبت مكتبة RPi.GPIO للتحكم في دبابيس GPIO إن لم تكن مثبتة:
pip install RPi.GPIO
مثال على كود Python
يوضح هذا المثال كيفية التحكم في سرعة واتجاه المحرك باستخدام BTS7960.
import RPi.GPIO as GPIO
import time
# Pin Definitions
RPWM_PIN = 18
LPWM_PIN = 19
REN_PIN = 23
LEN_PIN = 24
# GPIO Setup
GPIO.setmode(GPIO.BCM)
GPIO.setup(RPWM_PIN, GPIO.OUT)
GPIO.setup(LPWM_PIN, GPIO.OUT)
GPIO.setup(REN_PIN, GPIO.OUT)
GPIO.setup(LEN_PIN, GPIO.OUT)
# PWM Setup
frequency = 1000 # PWM frequency in Hz
rpwm = GPIO.PWM(RPWM_PIN, frequency)
lpwm = GPIO.PWM(LPWM_PIN, frequency)
# Start PWM with 0% duty cycle (off)
rpwm.start(0)
lpwm.start(0)
try:
while True:
# Enable Forward Motion
GPIO.output(REN_PIN, GPIO.HIGH)
GPIO.output(LEN_PIN, GPIO.LOW)
# Set forward speed (50% duty cycle)
rpwm.ChangeDutyCycle(50)
lpwm.ChangeDutyCycle(0)
time.sleep(2)
# Enable Reverse Motion
GPIO.output(REN_PIN, GPIO.LOW)
GPIO.output(LEN_PIN, GPIO.HIGH)
# Set reverse speed (30% duty cycle)
rpwm.ChangeDutyCycle(0)
lpwm.ChangeDutyCycle(30)
time.sleep(2)
except KeyboardInterrupt:
print("Stopping motor...")
finally:
rpwm.stop()
lpwm.stop()
GPIO.cleanup()
الخطوة 5: اختبار إعدادك
- وصل المحرك ومزود الطاقة.
- شغّل سكربت Python:
python3 bts7960_control.py - لاحظ تغيير المحرك في السرعة والاتجاه كما هو مبرمج.
استكشاف الأخطاء
-
المحرك لا يعمل:
- تحقق من توصيلات الأسلاك.
- تحقق من مزود الطاقة الخارجي.
-
PWM لا يعمل:
- تأكد أن GPIO18 و GPIO19 مهيأان لـ PWM.
- تحقق من قيم دورة العمل (duty cycle) في السكربت.
-
ارتفاع حرارة الوحدة:
- تأكد أن سحب التيار من المحرك لا يتجاوز تصنيف BTS7960.
تطبيقات BTS7960 مع Raspberry Pi
- التحكم في محركات DC ذات التيار العالي في الروبوتات
- بناء مركبات أو روبوتات مؤتمتة
- إنشاء أنظمة محركة للتطبيقات الصناعية
- تطوير أنظمة التحكم عن بُعد
الخاتمة
الـ BTS7960 motor driver هو حل متين وفعال لتشغيل المحركات ذات التيار العالي. عند الجمع بينه وبين قدرات GPIO في Raspberry Pi، يفتح هذا إمكانيات عديدة لمشاريع الروبوتات والأتمتة. باتباع هذا الدليل، يمكنك إعداد والتحكم في BTS7960 لإنشاء أنظمة محركة قوية. جرّب ترددات PWM ودورات عمل مختلفة لتحسين الأداء لتطبيقك المحدد!
