Ang BTS7960 motor driver ay isang makapangyarihang H-bridge module na kayang humawak ng mataas na kuryente, kaya mainam ito sa pagkontrol ng mga DC motor sa mga proyekto ng robotics at automation. Sa tutorial na ito, matututuhan mo kung paano ikonekta at kontrolin ang BTS7960 gamit ang isang Raspberry Pi para paandarin ang isang motor.
Mga Kakailanganin
- Raspberry Pi (anumang model na may GPIO capabilities, hal. Pi 3, Pi 4)
- BTS7960 Motor Driver Module
- DC Motor (na angkop para sa iyong proyekto)
- External Power Supply (na tumutugma sa boltahe at kuryenteng kinakailangan ng iyong motor)
- Breadboard at Jumper Wires
Hakbang 1: Pag-unawa sa BTS7960 Motor Driver
Ang BTS7960 module ay may dalawang high-power half-bridge na kayang magpatakbo ng mga motor na may kuryenteng aabot sa 43A. Nagtatampok ito ng:
- PWM input pins para sa pagkontrol ng bilis
- Direction control pins
- Overcurrent at thermal protection
Pinout
| Pin | Paglalarawan |
|---|---|
| VCC | 5V logic power input |
| GND | Ground |
| RPWM | PWM input para sa pasulong na galaw |
| LPWM | PWM input para sa pabalik na galaw |
| R_EN | Enable pin para sa pasulong na galaw |
| L_EN | Enable pin para sa pabalik na galaw |
| Motor+ (M+) | Motor positive terminal |
| Motor- (M-) | Motor negative terminal |
| VIN | External motor power supply |
| GND (Power) | Ground para sa motor power supply |
Hakbang 2: Pag-wire ng BTS7960 sa Raspberry Pi
Mga Koneksyon
| BTS7960 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| RPWM | GPIO18 (PWM channel 0) |
| LPWM | GPIO19 (PWM channel 1) |
| R_EN | GPIO23 |
| L_EN | GPIO24 |
Mga Koneksyon ng Motor at Power Supply
- Ikonekta ang mga terminal ng motor sa mga pin na Motor+ (M+) at Motor- (M-).
- Ikonekta ang positive terminal ng external power supply sa VIN.
- Ikonekta ang ground ng external power supply sa GND (Power) na pin.
Paalala: Siguraduhing tumutugma ang external power supply sa boltahe at kuryenteng kinakailangan ng iyong motor.
Hakbang 3: Pag-enable ng PWM sa Raspberry Pi
Para makontrol ang bilis ng motor, gagamit ka ng PWM (Pulse Width Modulation). Ang mga GPIO pin 18 at 19 ng Raspberry Pi ay sumusuporta sa hardware PWM.
I-enable ang PWM sa pamamagitan ng Raspberry Pi Configuration
- Buksan ang terminal at patakbuhin ang:
sudo raspi-config - Pumunta sa Interface Options > P5: I2C, at i-enable ang I2C.
- I-save at i-reboot ang Raspberry Pi:
sudo reboot
Hakbang 4: Pagsulat ng Python Code para Kontrolin ang Motor
I-install ang RPi.GPIO library para makontrol ang mga GPIO pin kung hindi pa ito naka-install:
pip install RPi.GPIO
Halimbawang Python Code
Ipinapakita ng halimbawang ito kung paano kontrolin ang bilis at direksyon ng motor gamit ang BTS7960.
import RPi.GPIO as GPIO
import time
# Mga Depinisyon ng Pin
RPWM_PIN = 18
LPWM_PIN = 19
REN_PIN = 23
LEN_PIN = 24
# Setup ng GPIO
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)
# Setup ng PWM
frequency = 1000 # PWM frequency sa Hz
rpwm = GPIO.PWM(RPWM_PIN, frequency)
lpwm = GPIO.PWM(LPWM_PIN, frequency)
# Simulan ang PWM na may 0% duty cycle (naka-off)
rpwm.start(0)
lpwm.start(0)
try:
while True:
# I-enable ang Pasulong na Galaw
GPIO.output(REN_PIN, GPIO.HIGH)
GPIO.output(LEN_PIN, GPIO.LOW)
# Itakda ang bilis ng pasulong (50% duty cycle)
rpwm.ChangeDutyCycle(50)
lpwm.ChangeDutyCycle(0)
time.sleep(2)
# I-enable ang Pabalik na Galaw
GPIO.output(REN_PIN, GPIO.LOW)
GPIO.output(LEN_PIN, GPIO.HIGH)
# Itakda ang bilis ng pabalik (30% duty cycle)
rpwm.ChangeDutyCycle(0)
lpwm.ChangeDutyCycle(30)
time.sleep(2)
except KeyboardInterrupt:
print("Itinitigil ang motor...")
finally:
rpwm.stop()
lpwm.stop()
GPIO.cleanup()
Hakbang 5: Pagsubok sa Iyong Setup
- Ikonekta ang motor at power supply.
- Patakbuhin ang Python script:
python3 bts7960_control.py - Obserbahan ang pagbabago ng bilis at direksyon ng motor ayon sa program.
Troubleshooting
-
Hindi Gumagana ang Motor:
- Suriin ang mga koneksyon ng wire.
- I-verify ang external power supply.
-
Hindi Gumagana ang PWM:
- Siguraduhing ang GPIO18 at GPIO19 ay naka-configure para sa PWM.
- Suriin ang mga value ng duty cycle sa script.
-
Nag-o-overheat ang Module:
- Siguraduhing ang kuryenteng kinukuha ng motor ay hindi lalampas sa rating ng BTS7960.
Mga Aplikasyon ng BTS7960 kasama ang Raspberry Pi
- Pagkontrol ng mga high-current DC motor sa robotics
- Pagbuo ng mga automated na sasakyan o robot
- Paglikha ng mga motorized system para sa mga pang-industriyang aplikasyon
- Pagbuo ng mga remote-controlled system
Konklusyon
Ang BTS7960 motor driver ay isang matibay at mahusay na solusyon para sa pagpapatakbo ng mga high-current motor. Kapag pinagsama sa GPIO capabilities ng Raspberry Pi, nagbubukas ito ng maraming posibilidad para sa mga proyekto ng robotics at automation. Sa pagsunod sa gabay na ito, maaari mong i-set up at kontrolin ang BTS7960 para makalikha ng mga makapangyarihang motorized system. Mag-eksperimento sa iba't ibang PWM frequency at duty cycle para ma-optimize ang performance para sa iyong partikular na aplikasyon!
