FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Usando il BTS7960 con il Raspberry Pi

Using the BTS7960 with the Raspberry Pi

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à

  1. Raspberry Pi (qualsiasi modello con funzionalità GPIO, ad esempio Pi 3, Pi 4)
  2. Modulo driver motore BTS7960
  3. Motore a corrente continua (adatto al tuo progetto)
  4. Alimentatore esterno (che soddisfi i requisiti di tensione e corrente del tuo motore)
  5. 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

  1. Collega i terminali del motore ai pin Motor+ (M+) e Motor- (M-).
  2. Collega il terminale positivo dell'alimentatore esterno a VIN.
  3. 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

  1. Apri il terminale ed esegui:
    sudo raspi-config
    
  2. Vai su Interface Options > P5: I2C e abilita l'I2C.
  3. 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

  1. Collega il motore e l'alimentatore.
  2. Esegui lo script Python:
    python3 bts7960_control.py
    
  3. Osserva il motore cambiare velocità e direzione come programmato.

Risoluzione dei problemi

  1. Il motore non gira:

    • Controlla i collegamenti elettrici.
    • Verifica l'alimentatore esterno.
  2. Il PWM non funziona:

    • Assicurati che GPIO18 e GPIO19 siano configurati per il PWM.
    • Controlla i valori del duty cycle nello script.
  3. Surriscaldamento del modulo:

    • Assicurati che l'assorbimento di corrente del motore non superi la capacità nominale del BTS7960.

Applicazioni del BTS7960 con Raspberry Pi

  1. Controllo di motori a corrente continua ad alta corrente nella robotica
  2. Costruzione di veicoli o robot automatizzati
  3. Creazione di sistemi motorizzati per applicazioni industriali
  4. 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!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

Lascia un commento