BTS7960モータードライバーは、高電流を処理できる強力なHブリッジモジュールであり、ロボット工学および自動化プロジェクトでDCモーターを制御するのに最適です。このチュートリアルでは、モーターを駆動するためにRaspberry PIでBTS7960を接続および制御する方法を学びます。
あなたが必要とするもの
- Raspberry Pi (GPIO機能を備えたモデル、例えばPI 3、PI 4)
- BTS7960モータードライバーモジュール
- DCモーター (プロジェクトに適しています)
- 外部電源 (モーターの電圧と現在の要件に合わせて)
- ブレッドボードとジャンパーワイヤ
ステップ1:BTS7960モータードライバーの理解
BTS7960モジュールには、最大43aの電流でモーターを駆動できる2つの高出力ハーフブリッジが含まれています。特徴:
- 速度制御のためのPWM入力ピン
- 方向制御ピン
- 過電流と熱保護
ピンアウト
ピン | 説明 |
---|---|
VCC | 5Vロジック電源入力 |
GND | 地面 |
RPWM | 前方モーションのPWM入力 |
LPWM | 逆モーションのPWM入力 |
r_en | フォワードモーションにピンを有効にします |
l_en | リバースモーションにピンを有効にします |
モーター+(M+) | モーターポジティブ端子 |
モーター(m-) | モーターネガティブ端子 |
ヴィン | 外部モーター電源 |
GND(パワー) | モーター電源の地面 |
ステップ2:BTS7960をRaspberry Piに配線します
接続
BTS7960ピン | ラズベリーPIピン |
---|---|
VCC | 5V |
GND | GND |
RPWM | GPIO18(PWMチャンネル0) |
LPWM | GPIO19(PWMチャンネル1) |
r_en | GPIO23 |
l_en | GPIO24 |
モーターと電源の接続
- モーター端子をに接続します モーター+(M+) そして モーター - (m-) ピン。
- 外部電源の正のターミナルを接続します ヴィン.
- 外部電源の地面をに接続します GND(パワー) ピン。
注記: 外部電源がモーターの電圧と現在の要件に一致するようにします。
ステップ3:Raspberry PiでPWMを有効にします
モーター速度を制御するには、PWM(パルス幅変調)を使用します。 Raspberry Pi Gpio Pins 18および19サポートハードウェアPWM。
Raspberry PI構成を介してPWMを有効にします
- ターミナルを開いて実行します。
sudo raspi-config
- に移動します インターフェイスオプション> P5:I2C、およびi2cを有効にします。
- RaspberryPiを保存して再起動します:
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用に構成されていることを確認してください。
- スクリプトのデューティサイクル値を確認します。
-
過熱モジュール:
- モーターの現在の抽選がBTS7960の評価を超えないようにしてください。
Raspberry Piを使用したBTS7960のアプリケーション
- ロボット工学の高電流DCモーターの制御
- 自動化された車両またはロボットを構築します
- 産業用途向けの電動システムの作成
- リモート制御システムの開発
結論
BTS7960モータードライバーは、高電流モーターを駆動するための堅牢で効率的なソリューションです。 Raspberry PiのGPIO機能と組み合わせることで、ロボット工学と自動化プロジェクトの可能性が多く開きます。このガイドに従うことにより、BTS7960を設定および制御して、強力な電動システムを作成できます。さまざまなPWM周波数とデューティサイクルを試して、特定のアプリケーションのパフォーマンスを最適化してください!