controla-motores-de-gran-potencia-con-arduino-y-bts7960

Controla motores de gran potencia con Arduino y BTS7960

¿Qué es un BTS7960?

Los driver basados en BTS7960 son drivers para controlar motores de corriente continua de alta potencia, capaces de proporcionar hasta 43A de corriente a una tensión de alimentación de entre 6 a 27V.

La lógica del driver funciona a con voltajes de 3.3V a 5V por lo cual es compatible con la mayoría de microprocesadores. Además, admiten realizar el control de la velocidad del motor mediante PWM con una frecuencia máxima de 25 kHz.

El BTS7960 incorpora mecanismos de protección contra cortocircuito, sobre/infra voltaje, y sobre temperatura. También dispone de dos pines que permiten medir la corriente entregada por el driver.

El BTS7960 es un buen controlador que puede gestionar una gran cantidad de motores, incluidos los de gran potencia. No obstante, recordar tener precaución a la hora de controlar elevadas cargas y corrientes eléctricas.

Precio

Los driver BTS7960 son dispositivos baratos. Aunque no tan baratos como el L298N o el TB6612FNG, estos dos son capaces de gestionar motores mucho más pequeños.

Podemos encontrar un driver con BTS7960 por 3,45€ en vendedores internacionales de Ebay y Aliexpress.

arduino-bts9760-componente

¿Cómo funciona un BTS7960?

Estos drivers emplean dos circuitos integrados BTS7960, un medio puente H de la familia NovalithIC. Sumando ambos integrados se configura un puente H completo.

El BTS7960 incorpora un transistor MOSFET Canal-p para la parte alta del medio puente, y un MOSFET Canal-N para la parte baja. Además de los dos MOSFET, cada BTS7960 incorpora un IC que realiza las funcionas lógicas, diagnosis, protección, se sensado de corriente.

arduino-bts9760-funcionamiento

Los drivers basados en el BTS7960 incorporan un 7HC244, un buffer tri-estado de 8 canales, como protección de protección adicional para el microcontrolador.

Esquema de montaje

La conexión de un driver con BTS7690 es sencilla. Por un lado, conectamos la alimentación lógica del driver a 0 y 5V.

Para el control, únicamente necesitamos 3 salidas digitales. Una de ellas controlará la activación de los puentes, y las otras dos la velocidad de giro.

Finalmente, conectamos la fuente de alimentación que proporcionará corriente al motor y el motor mediante los bornes existentes en el driver.

arduino-bts9760-esquema

La conexión, vista desde Arduino, sería la siguiente.

arduino-bts9760-conexion

Ejemplos de código

El uso del driver BTS7690 en el entorno de Arduino es muy sencillo con la librería Arduino BTS7960.

El ejemplo de la librería muestra cómo controlar el driver con una señal PWM.

#include "BTS7960.h"

const uint8_t EN = 8;
const uint8_t L_PWM = 9;
const uint8_t R_PWM = 10;

BTS7960 motorController(EN, L_PWM, R_PWM);

void setup() 
{
}

void loop() 
{
  motorController.Enable();

  for(int speed = 0 ; speed < 255; speed+=10)
  {
  motorController.TurnLeft(speed);
  delay(100);
  }  

  motorController.Stop();
  
  for(int speed = 255 ; speed > 0; speed-=10)
  {
  motorController.TurnLeft(speed);
  delay(100);
  }  
  motorController.Stop();
  motorController.Disable();
  delay(5000);
}

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full