Publicidade:

domingo, 3 de maio de 2015

Arduino - Ponte H para Motor - IBT 2 - BTS7960

Demonstração de uso da Ponte H IBT 2






Especificações
  • Tensão: 6V-27V
  • Corrente: 43A
  • Input level: 3.3V-5V

pinos

1 - PWM Direção 1
2 - PWM Direção 2
3 - Ativar / Desativar PWM Direção 1 - HIGH ativa
4 - Ativar / Desativar PWM Direção 2 - HIGH ativa
5 - Direção 1 - Side Currente Alarm Output
6 - Direção 2 - Side Currente Alarm Output
7 - VCC
8 - Ground


Para o teste foram utilizados os seguintes pinos

1 - Ligado ao pino 5 (PWM) do Arduino
2 - Ligado ao pino 6 (PWM) do Arduino
3 - VCC
4 - VCC
5 - Desconectado
6 - Desconectado
7 - VCC
8 - Ground


Código-Fonte:

/*
IBT-2 Motor Control Board driven by Arduino.
 
Speed and direction controlled by a potentiometer attached to analog input 0.
One side pin of the potentiometer (either one) to ground; the other side pin to +5V
 
Connection to the IBT-2 board:
IBT-2 pin 1 (RPWM) to Arduino pin 5(PWM)
IBT-2 pin 2 (LPWM) to Arduino pin 6(PWM)
IBT-2 pins 3 (R_EN), 4 (L_EN), 7 (VCC) to Arduino 5V pin
IBT-2 pin 8 (GND) to Arduino GND
IBT-2 pins 5 (R_IS) and 6 (L_IS) not connected
*/
 
int SENSOR_PIN = A0; // center pin of the potentiometer
 
int RPWM_Output = 5; // Arduino PWM output pin 5; connect to IBT-2 pin 1 (RPWM)
int LPWM_Output = 6; // Arduino PWM output pin 6; connect to IBT-2 pin 2 (LPWM)
 
void setup() {
  pinMode(RPWM_Output, OUTPUT);
  pinMode(LPWM_Output, OUTPUT);
}
 
void loop() {
  int sensorValue = analogRead(SENSOR_PIN);
 
  // sensor value is in the range 0 to 1023
  // the lower half of it we use for reverse rotation; the upper half for forward rotation
  if (sensorValue < 512)
  {
    // reverse rotation
    int reversePWM = -(sensorValue - 511) / 2;
    analogWrite(LPWM_Output, 0);
    analogWrite(RPWM_Output, reversePWM);
  } else {
    // forward rotation
    int forwardPWM = (sensorValue - 512) / 2;
    analogWrite(LPWM_Output, forwardPWM);
    analogWrite(RPWM_Output, 0);
  }
}


Referência: http://www.hessmer.org/blog/wp-content/uploads/2013/12/IBT-2-Input-Ports.jpg

15 comentários:

  1. Obrigado, penso em acrescentar um encoder

    ResponderExcluir
  2. Porque essa placa tem duas entradas de PWM? ela controla dois motores?

    ResponderExcluir
    Respostas
    1. Somente uma, Claiton: cada PWM é usado no controle da intensidade do giro em cada sentido: controle sentido um, controle PWM 1, controle sentido dois, PWM 2. Para usar dois motores você deve usar dois modulos IBT2, ou um DHB-1C, só que o DHB só opera até 24 V e 20 A, já o IBT2 consegue 48V e 43A!

      Excluir
  3. Boa noite, será que consigo gerar freio no motor DC com essa ponte, e regular o freio com encoder?

    ResponderExcluir
  4. Claiton Leite, tem duas entradas PWM devido ao fato dela ser uma "Ponte H", ou seja, controla além da velocidade, sentido da rotação tambem.

    ResponderExcluir
  5. boa noite, achei muito interessante seu video. eu gostaria de poder controlar esse motor de parabrisa de modo intermitente e por alguns segundos, teria como pelo arduino acioná-lo e desativar o motor por algum tipo de clock, ou seja hora para iniciar seu funcionamento e hora para termninar, tendo esses horarios ja pre definidos. e ao final do percurso ele ativar o sentido da rotação para voltar ao ponto inicial? agradeceria muito alguma dica, alguma ajuda.
    obrigado

    ResponderExcluir
  6. gracias por el video, como puedo hacer lo mismo pero con un sensor PIR?

    ResponderExcluir
  7. boa noite Fabiano,meu nome e Henrique gostaria de uma ajuda,se puder
    estou trabalhando num projeto de volante e uso o Arduino Leonardo e como potenciômetro estou usando um encoder incremental ligado nas saidas tx1 e rx0 do Arduino, gostaria de fazer o volante retornar ao centro toda vez que girasse o volante ,baseado na sua programação como posso fazer este comando ? pode me ajudar ???

    ResponderExcluir
  8. Quero conectar um motor de parabrisa na IBT-2, mas quero que gire em apenas um sentido. Como faço?

    ResponderExcluir
  9. Boa noite!
    Como faço para controlar um IBT-2 o sentido e a velocidade com um controle sem fio ps2

    ResponderExcluir
  10. Buenas amigo. Para este módulo ai, não precisa conectar o GND da fonte externa dele com o GND do Arduino?

    ResponderExcluir
  11. posso usar este esquema pra girar uma antena de radioamador?

    ResponderExcluir
  12. preciso do cod ardoino uno para simulador 2 dof e ligação do arduino com duas ponte h IBT 2 - BTS7960

    ResponderExcluir
  13. Bom dia. Tenho um tanke llagarta, como faço para controlar dois motores ibt_2 velocidade frente e tras e esquerda e direita ? Vc poderia me dar um help ?
    Att.

    ResponderExcluir