Il driver motore BTS7960 è un potente modulo a ponte H in grado di gestire correnti elevate, il che lo rende ideale per il controllo di motori a corrente continua in progetti di robotica e automazione. In questo tutorial, imparerai come collegare e controllare il BTS7960 con un Raspberry Pi per azionare un motore.
Cosa ti servirà
- Raspberry Pi (qualsiasi modello con funzionalità GPIO, ad esempio Pi 3, Pi 4)
- Modulo driver motore BTS7960
- Motore a corrente continua (adatto al tuo progetto)
- Alimentatore esterno (che soddisfi i requisiti di tensione e corrente del tuo motore)
- Breadboard e cavi jumper
Passaggio 1: Comprendere il driver motore BTS7960
Il modulo BTS7960 include due mezzi ponti ad alta potenza in grado di azionare motori con correnti fino a 43A. È dotato di:
- Pin di ingresso PWM per il controllo della velocità
- Pin di controllo della direzione
- Protezione da sovracorrente e termica
Pinout
| Pin | Descrizione |
|---|---|
| VCC | Ingresso alimentazione logica 5V |
| GND | Massa (Ground) |
| RPWM | Ingresso PWM per il movimento in avanti |
| LPWM | Ingresso PWM per il movimento all'indietro |
| R_EN | Pin di abilitazione per il movimento in avanti |
| L_EN | Pin di abilitazione per il movimento all'indietro |
| Motor+ (M+) | Terminale positivo del motore |
| Motor- (M-) | Terminale negativo del motore |
| VIN | Alimentazione esterna del motore |
| GND (Power) | Massa per l'alimentazione del motore |
Passaggio 2: Collegamento del BTS7960 al Raspberry Pi
Collegamenti
| Pin del BTS7960 | Pin del Raspberry Pi |
|---|---|
| VCC | 5V |
| GND | GND |
| RPWM | GPIO18 (canale PWM 0) |
| LPWM | GPIO19 (canale PWM 1) |
| R_EN | GPIO23 |
| L_EN | GPIO24 |
Collegamenti del motore e dell'alimentatore
- Collega i terminali del motore ai pin Motor+ (M+) e Motor- (M-).
- Collega il terminale positivo dell'alimentatore esterno a VIN.
- Collega la massa dell'alimentatore esterno al pin GND (Power).
Nota: Assicurati che l'alimentatore esterno corrisponda ai requisiti di tensione e corrente del tuo motore.
Passaggio 3: Abilitazione del PWM sul Raspberry Pi
Per controllare la velocità del motore, utilizzerai il PWM (Pulse Width Modulation). I pin GPIO 18 e 19 del Raspberry Pi supportano il PWM hardware.
Abilitazione del PWM tramite la configurazione del Raspberry Pi
- Apri il terminale ed esegui:
sudo raspi-config - Vai su Interface Options > P5: I2C e abilita l'I2C.
- Salva e riavvia il Raspberry Pi:
sudo reboot
Passaggio 4: Scrittura del codice Python per controllare il motore
Installa la libreria RPi.GPIO per controllare i pin GPIO, se non è già installata:
pip install RPi.GPIO
Esempio di codice Python
Questo esempio mostra come controllare la velocità e la direzione del motore utilizzando il BTS7960.
import RPi.GPIO as GPIO
import time
# Definizioni dei pin
RPWM_PIN = 18
LPWM_PIN = 19
REN_PIN = 23
LEN_PIN = 24
# Configurazione 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)
# Configurazione PWM
frequency = 1000 # Frequenza PWM in Hz
rpwm = GPIO.PWM(RPWM_PIN, frequency)
lpwm = GPIO.PWM(LPWM_PIN, frequency)
# Avvio PWM con duty cycle allo 0% (spento)
rpwm.start(0)
lpwm.start(0)
try:
while True:
# Abilita movimento in avanti
GPIO.output(REN_PIN, GPIO.HIGH)
GPIO.output(LEN_PIN, GPIO.LOW)
# Imposta velocità in avanti (duty cycle al 50%)
rpwm.ChangeDutyCycle(50)
lpwm.ChangeDutyCycle(0)
time.sleep(2)
# Abilita movimento all'indietro
GPIO.output(REN_PIN, GPIO.LOW)
GPIO.output(LEN_PIN, GPIO.HIGH)
# Imposta velocità all'indietro (duty cycle al 30%)
rpwm.ChangeDutyCycle(0)
lpwm.ChangeDutyCycle(30)
time.sleep(2)
except KeyboardInterrupt:
print("Arresto del motore...")
finally:
rpwm.stop()
lpwm.stop()
GPIO.cleanup()
Passaggio 5: Test della configurazione
- Collega il motore e l'alimentatore.
- Esegui lo script Python:
python3 bts7960_control.py - Osserva il motore cambiare velocità e direzione come programmato.
Risoluzione dei problemi
-
Il motore non gira:
- Controlla i collegamenti elettrici.
- Verifica l'alimentatore esterno.
-
Il PWM non funziona:
- Assicurati che GPIO18 e GPIO19 siano configurati per il PWM.
- Controlla i valori del duty cycle nello script.
-
Surriscaldamento del modulo:
- Assicurati che l'assorbimento di corrente del motore non superi la capacità nominale del BTS7960.
Applicazioni del BTS7960 con Raspberry Pi
- Controllo di motori a corrente continua ad alta corrente nella robotica
- Costruzione di veicoli o robot automatizzati
- Creazione di sistemi motorizzati per applicazioni industriali
- Sviluppo di sistemi radiocomandati
Conclusione
Il driver motore BTS7960 è una soluzione robusta ed efficiente per azionare motori ad alta corrente. Combinato con le funzionalità GPIO del Raspberry Pi, apre numerose possibilità per progetti di robotica e automazione. Seguendo questa guida, puoi configurare e controllare il BTS7960 per creare potenti sistemi motorizzati. Sperimenta con diverse frequenze PWM e duty cycle per ottimizzare le prestazioni per la tua specifica applicazione!
