Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

PONTE H BTS7960 COM ARDUINO

Ponte h bts7960

Neste artigo iremos demonstrar como controlar um motor DC utilizando uma ponte H BTS7960 através de um Arduino.

O módulo Ponte H é baseado no driver BTS7960, que é metade de uma ponte H, dessa forma utilizam-se 2 drivers BTS7960 para construir uma ponte H com capacidade de até 43A. É um módulo útil para o controle robótico e mecânico, tendo excelente custo benefício para estudantes, amantes e profissionais da área de atuação.

Componentes Utilizados

 Todos os componentes utilizados neste projeto estão listados abaixo, clicando no item você consegue acessar o componente na loja, caso queira adquirir o componente para realizado o projeto:

Características Técnicas

  • Controla 1 motor DC;
  •  Controle de direção e velocidade (PWM);
  •  Tensão de alimentação: 5- 45VDC;
  •  Tensão de entrada do controle: 3,3 – 5V;
  •  Corrente de Alimentação (módulo): 3 mA;
  •  Modo de controle: Serial ou level;
  •  Ciclo de trabalho: 0-100%;
  •  Modulação PWM de até: 25kHz;
  •  Corrente Continua: 43A;
  •  Corrente de pico/pulso: 60A;
  •  Proteção: Térmica, sobre tensão, subtensão, sobrecorrente;
  •  Possui pino (IS) para indicar falhas (proteção);
  •  Possui dissipador de calor;
  •  Dimensão: 50 x 50 x 43 mm;
  •  Peso: 66g.

Para o controle do motor existem várias maneiras, mas neste post iremos ilustrar a principal para uso em todas as aplicações. A Figura 1 ilustra os pinos de alimentação, entrada de nível alto, baixo e PWM:

Pinos de controle do BTS7960.
Pinos de controle do BTS7960.

As ligações entre a ponte H e o Arduino são ilustradas na Figura 2:

Diagrama de conexão.
Diagrama de conexão.

A programação para controle lógico do Arduino é demonstrada abaixo. A programação tem como função: 

1ª parte: Controlar a velocidade do motor para o lado 1 (PWM);

2ª parte: Controlar a velocidade do motor para o lado 2 (PWM);

3ª parte: Acionar o motor com velocidade máxima para o lado 1;

4ª parte: Acionar o motor com velocidade máxima para o lado 2.

Código:

Segue abaixo o código utilizado:

#define PWM2                      2    //Pino do arduino que será ligado o BTS7960
#define PWM3                      3    //Pino do arduino que será ligado o BTS7960
#define TEMPO_DA_VELOCIDADE     150  //tempo (ms) que o motor ficará na mesma velocidade 
  
void setup()
{ 
    //Configura os pinos de saída
    pinMode(PWM2, OUTPUT);
    pinMode(PWM3, OUTPUT);
}
  
void loop()
{   
    int valor_pwm = 0;   //armazena o PWM

     digitalWrite(PWM3, LOW);
 
    //Aumenta a velocidade para o lado 1
    for (valor_pwm = 0; valor_pwm < 256; valor_pwm++)
    {
        analogWrite(PWM2, valor_pwm);
        delay(TEMPO_DA_VELOCIDADE);
    }
 
    //Diminui a velocidade para o lado 1
    for (valor_pwm = 255; valor_pwm >= 0; valor_pwm--)
    {
        analogWrite(PWM2, valor_pwm);
        delay(TEMPO_DA_VELOCIDADE);
    }

/////////////////////////////////////////////////////////////////////////////

    digitalWrite(PWM2, LOW);

     //Aumenta a velocidade para o lado 2
    for (valor_pwm = 0; valor_pwm < 256; valor_pwm++)
    {
        analogWrite(PWM3, valor_pwm);
        delay(TEMPO_DA_VELOCIDADE);
    }
 
    //Diminui a velocidade para o lado 2
    for (valor_pwm = 255; valor_pwm >= 0; valor_pwm--)
    {
        analogWrite(PWM3, valor_pwm);
        delay(TEMPO_DA_VELOCIDADE);
    }

    /////////////////////////////////////////////////////////////////////////////

    //liga o motor para o lado 1 com velocidade maxima

    digitalWrite(PWM2, LOW);
    digitalWrite(PWM3, HIGH);
    delay(10000);

    digitalWrite(PWM2, LOW);
    digitalWrite(PWM3, LOW);
    delay(2000);

    //liga o motor para o lado 2 com velocidade maxima

    digitalWrite(PWM2, HIGH);
    digitalWrite(PWM3, LOW);
    delay(10000);

    digitalWrite(PWM2, LOW);
    digitalWrite(PWM3, LOW);
    delay(2000);
}

Download

Seguindo estes passos é possível controlar a rotação de qualquer motor DC. Nos links abaixo está disponibilizado o download do arquivo fonte e diagrama:

https://bit.ly/3kSmrFM

Para mais detalhes, assista o vídeo abaixo:

Picture of Pedro

Pedro

Bacharel em Engenharia Elétrica, com ênfase em Telecomunicações e hobbysta em eletrônica nas horas vagas =).

VOCÊ TAMBÉM PODE GOSTAR

Sensor de Temperatura LM35: Guia Completo, Pinagem, Datasheet e Arduino

Sensor de Temperatura LM35: Guia Completo, Pinagem, Datasheet e Arduino

Guia completo do sensor de temperatura LM35: o que é, pinagem, datasheet e Arduino. Aprenda técnicas de precisão e crie projetos incríveis!

O que é Sensor de Temperatura? Tipos, Funcionamento e Exemplos

O que é Sensor de Temperatura? Tipos, Funcionamento e Exemplos

O sensor de temperatura é um dispositivo utilizado para detectar e medir variações de temperatura em diferentes ambientes. Ele identifica essas variações por meio de métodos como radiação térmica, resistência elétrica ou outras mudanças em características físicas.

Uma resposta

  1. Bom dia,
    eu preciso colocar 2 pontes em um circuito arduino, um carrinho acionado por dois motores, como se fosse um trator de esteira. pode me ajudar na montagem do circuito??

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

ESPERE, antes de sair entre no nosso grupo de whatsapp!

Junte-se à nossa comunidade e se mantenha atualizado sobre o mundo Maker