Controlando Múltiplos Motores DC Usando um Módulo BTS7960 com Arduino

Controlando Múltiplos Motores DC Usando um Módulo BTS7960 com Arduino

Neste tutorial, vamos explorar como controlar múltiplos motores DC usando o módulo BTS7960 com um Arduino. O BTS7960 é um poderoso driver de motor capaz de lidar com altas correntes e permite o controle preciso da direção e velocidade do motor através de PWM (Modulação por Largura de Pulso). Ao final deste projeto, você terá uma configuração funcional que pode controlar dois motores DC, girando-os em ambas as direções, horário e anti-horário. Este tutorial o guiará através da configuração de hardware, instruções de cabeamento e o código necessário para operar os motores. Para uma compreensão mais clara de todo o processo, certifique-se de conferir o vídeo acompanhante (no vídeo em 00:00).

BTS7960_módulo-3

Hardware Explicado

O componente principal deste projeto é o módulo driver de motor BTS7960. Este módulo inclui dois drivers em ponte H que podem controlar a direção dos motores mudando a polaridade da tensão aplicada ao motor. Cada driver pode suportar até 43A de corrente, o que o torna adequado para aplicações de alta potência. O módulo também possui proteção embutida contra situações de sobretemperatura e sobrecorrente. Além do BTS7960, você precisará de uma placa Arduino para controlar os motores. O Arduino envia sinais PWM para o driver do motor, permitindo que você ajuste a velocidade e a direção dos motores. As conexões entre o Arduino e o módulo BTS7960 são cruciais, pois ditam como os motores responderão aos sinais.

Detalhes da Ficha Técnica

Fabricante Infineon Technologies
Número da peça BTS7960
Tensão de lógica/IO 3,3 V a 5 V
Tensão de alimentação 5-40 V
Corrente de saída (por canal) 43 A max
Corrente de pico (por canal) 60 A
Orientação sobre a frequência PWM 5-25 kHz
Limiares de lógica de entrada 0,8 V (alto), 0,3 V (baixo)
Queda de tensão / RDS(on)saturação 16 mΩ
Limites térmicos 150 °C max
Pacote TO-263
Notas / variantes Configuração de ponte H dupla

  • Certifique-se de um dissipador de calor adequado ao operar em altas correntes.
  • Use o cumprimento de fio apropriado para conexões de energia.
  • Verifique novamente as conexões dos pinos entre o Arduino e o BTS7960.
  • Implemente a limitação de corrente para evitar danos ao módulo.
  • Use capacitores de desacoplamento próximos à fonte de alimentação para estabilidade.
BTS7960_módulo-2

Instruções de fiação

BTS7960-_2_motor_wiring

Para conectar o módulo BTS7960 ao Arduino, siga estas conexões cuidadosamente: 1. **Conexões de Alimentação**: Conecte o terminal positivo da sua fonte de alimentação ao terminal B+ no módulo BTS7960, e o terminal negativo ao terminal B-. Certifique-se de que a fonte de alimentação corresponda aos requisitos de voltagem dos seus motores. 2. **Conexões do Motor**: Conecte os fios do motor aos terminais M+ e M- no módulo. Isso permitirá que o módulo controle o motor. 3. **Pinos do Arduino**: Conecte os seguintes pinos no Arduino ao módulo BTS7960: - Pino 3 (RPWM) ao pino RPWM no módulo. - Pino 4 (R_EN) ao pino R_EN no módulo. - Pino 5 (R_IS) ao pino R_IS no módulo. - Pino 6 (LPWM) ao pino LPWM no módulo. - Pino 7 (L_EN) ao pino L_EN no módulo. - Pino 8 (L_IS) ao pino L_IS no módulo. 4. **Conexões de Terra**: Conecte o pino de terra do Arduino ao pino de terra no módulo BTS7960 para garantir uma referência comum para os sinais. Certifique-se de que todas as conexões estão seguras para evitar qualquer comportamento inesperado durante a operação.

Instale a biblioteca necessária

Para instalar orobojax_BTS7960_motor_driver_libraryno IDE Arduino, primeiro baixe o arquivo ZIP da biblioteca no link fornecido. Com o arquivo salvo, abra seu IDE Arduino e navegue atéSketch > Incluir Biblioteca > Adicionar Biblioteca .ZIP...No arquivo de seleção, navegue até o arquivo ZIP baixado, selecione-o e clique em "Abrir". O IDE então instalará a biblioteca. Você pode confirmar uma instalação bem-sucedida verificando oArquivo > Exemplosmenu, onde uma nova categoria chamada "Biblioteca de Driver de Motor Robojax BTS7960" deve aparecer. Agora você pode incluir o cabeçalho da biblioteca no seu código com#include <RobojaxBTS7960.h>.

Exemplos de Código e Tutorial

Os trechos de código a seguir demonstram como configurar e controlar os motores usando o módulo BTS7960. A configuração inicial define os pinos conectados aos motores e inicializa os objetos dos motores:


// pins for motor 1
#define RPWM_1 3
#define R_EN_1 4
#define R_IS_1 5
#define LPWM_1 6
#define L_EN_1 7
#define L_IS_1 8

// pins for motor 2
#define RPWM_2 9
#define R_EN_2 10
#define R_IS_2 12
#define LPWM_2 11
#define L_EN_2 A0
#define L_IS_2 A1

#include 
RobojaxBTS7960 motor1(R_EN_1, RPWM_1, R_IS_1, L_EN_1, LPWM_1, L_IS_1, debug);
RobojaxBTS7960 motor2(R_EN_2, RPWM_2, R_IS_2, L_EN_2, LPWM_2, L_IS_2, debug);

Esta seção do código configura as definições dos pinos e cria instâncias da classe `RobojaxBTS7960` para ambos os motores. A função `setup()` inicializa os motores e o monitor serial:


void setup() {
  Serial.begin(9600); // setup Serial Monitor
  motor1.begin();
  motor2.begin();
}

Aqui, o método `motor.begin()` prepara cada motor para operação, permitindo que você os controle na função `loop()`. Na função `loop()`, você pode controlar os motores com comandos como este:


void loop() {
   motor1.rotate(100, CW); // run motor 1 at 100% speed CW
   delay(5000); // run for 5 seconds
   motor1.stop(); // stop motor 1
   delay(3000); // stop for 3 seconds
   motor2.rotate(100, CCW); // run motor 2 at 100% speed CCW
   delay(5000); // run for 5 seconds
   motor2.stop(); // stop motor 2
   delay(3000); // stop for 3 seconds
}

Esta seção mostra como girar os motores em ambas as direções e controlar sua velocidade. O código completo está carregado abaixo do artigo para sua referência.

Demonstração / O que Esperar

Após concluir a fiação e carregar o código, você deve observar os motores girando em ambas as direções, horário e anti-horário. O código fará cada motor funcionar em velocidade total por cinco segundos, parar por três segundos e repetir o processo. Fique atento a quaisquer problemas potenciais, como conexões invertidas ou fonte de energia insuficiente. Se você encontrar problemas, verifique novamente sua fiação e garanta que a fonte de energia seja adequada (no vídeo em 00:00).

Marcas de Tempo do Vídeo

  • 00:00 Início
  • 00:48 Hardware Explicado
  • 04:06 Ficha técnica visualizada
  • 07:07 Fiação Explicada
  • 09:00 Código explicado
  • 14:33 Demonstração
  • 16:47 Teste de corrente máxima
  • 19:25 Imagem térmica
  • 19:27 Teste de código diferente

Imagens

BTS7960_module-1
BTS7960_module-1
BTS7960_module-2
BTS7960_module-2
BTS7960_module-3
BTS7960_module-3
BTS7960_module-4-heat-sink
BTS7960_module-4-heat-sink
BTS7960-_2_motor_wiring
BTS7960-_2_motor_wiring
203-Arduino Code to control two or more DC motors using BTS7960 motor driver
Idioma: C++
Copiado!

Arquivos📁

Bibliotecas do Arduino (zip)

Folha de dados (pdf)

Arquivo Fritzing