Il driver del motore BTS7960 è un potente modulo di ponte H in grado di gestire correnti elevate, rendendolo ideale per il controllo dei motori DC nei progetti di robotica e automazione. In questo tutorial, imparerai come collegare e controllare il BTS7960 con un Raspberry Pi per guidare un motore.
Cosa avrai bisogno
- Raspberry Pi (Qualsiasi modello con funzionalità GPIO, ad esempio PI 3, PI 4)
- Modulo del driver del motore BTS7960
- Motore DC (adatto al tuo progetto)
- Alimentazione esterna (abbinamento della tensione del tuo motore e dei requisiti di corrente)
- Breadboard e fili jumper
Passaggio 1: Comprensione del driver del motore BTS7960
Il modulo BTS7960 comprende due mezze ponti ad alta potenza in grado di guidare motori con correnti fino a 43A. È caratteristico:
- Pin di ingresso PWM per il controllo della velocità
- Pin di controllo della direzione
- Protezione eccessiva e termica
Pinout
Spillo | Descrizione |
---|---|
VCC | Input di potenza logica 5V |
GND | Terra |
Rpwm | Input PWM per movimento in avanti |
LPWM | Ingresso PWM per movimento inverso |
R_en | Abilita il pin per il movimento in avanti |
L_en | Abilita il pin per il movimento inverso |
Motore+ (M+) | Terminale positivo motorio |
Motor- (m-) | Terminale negativo motorio |
Vin | Alimentazione del motore esterno |
GND (potere) | Terra per l'alimentazione del motore |
Passaggio 2: cablaggio BTS7960 a Raspberry Pi
Connessioni
Pin BTS7960 | Pin di lampone |
---|---|
VCC | 5v |
GND | GND |
Rpwm | GPIO18 (PWM Channel 0) |
LPWM | GPIO19 (PWM Channel 1) |
R_en | GPIO23 |
L_en | GPIO24 |
Collegamenti del motore e dell'alimentazione
- Collegare i terminali del motore a Motore+ (M+) E Motor- (m-) pin.
- Collegare il terminale positivo dell'alimentazione esterna a Vin.
- Collegare il terreno dell'alimentazione esterna al GND (potere) spillo.
Nota: Assicurarsi che l'alimentazione esterna corrisponda alla tensione del tuo motore e ai requisiti di corrente.
Passaggio 3: abilitando PWM su Raspberry Pi
Per controllare la velocità del motore, utilizzerai PWM (modulazione della larghezza dell'impulso). Raspberry Pi GPIO PINS 18 e 19 Support Hardware PWM.
Abilita PWM tramite configurazione Raspberry Pi
- Apri il terminale ed esegui:
sudo raspi-config
- Navigare a Opzioni di interfaccia> P5: I2Ce abilita i2c.
- Salva e riavvia il Raspberry Pi:
sudo reboot
Passaggio 4: scrivere codice Python per controllare il motore
Installa il RPi.GPIO
Libreria per controllare i pin GPIO se non già installato:
pip install RPi.GPIO
Esempio di codice Python
Questo esempio dimostra come controllare la velocità e la direzione del motore usando 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()
Passaggio 5: testare la configurazione
- Collegare il motore e l'alimentazione.
- Esegui lo script Python:
python3 bts7960_control.py
- Osservare la velocità e la direzione che cambiano motore come programmate.
Risoluzione dei problemi
-
Motore non funzionante:
- Controllare le connessioni di cablaggio.
- Verificare l'alimentazione esterna.
-
PWM non funziona:
- Assicurarsi che GPIO18 e GPIO19 siano configurati per PWM.
- Controllare i valori del ciclo di lavoro nello script.
-
Modulo di surriscaldamento:
- Assicurarsi che il sorteggio corrente del motore non superi la valutazione di BTS7960.
Applicazioni del BTS7960 con Raspberry Pi
- Controllo dei motori DC ad alta corrente in robotica
- Costruire veicoli o robot automatizzati
- Creazione di sistemi motorizzati per applicazioni industriali
- Sviluppo di sistemi a telecomando
Conclusione
Il driver del motore BTS7960 è una soluzione robusta ed efficiente per la guida di motori ad alta corrente. In combinazione con le funzionalità GPIO di Raspberry Pi, apre numerose possibilità per i progetti di robotica e automazione. Seguendo questa guida, è possibile impostare e controllare il BTS7960 per creare potenti sistemi motorizzati. Sperimenta diverse frequenze PWM e cicli di lavoro per ottimizzare le prestazioni per la tua applicazione specifica!