O driver TB6600 é muito utilizado em projetos de automação, CNC e impressoras 3D por sua robustez, facilidade de configuração e capacidade de controlar motores de passo com correntes mais altas.
Neste post, você vai entender como o driver TB6600 funciona, suas principais características e como utilizá-lo com Arduino para controlar motores Nema com precisão e segurança.
O que é o driver TB6600?
O TB6600 é um driver de motor de passo utilizado em projetos de automação, CNCs, impressoras 3D de grande porte e outros sistemas que exigem controle preciso de motores com correntes mais altas.

Esse driver foi desenvolvido para acionar motores de passo bipolares, oferecendo alta eficiência e facilidade de controle. Sua função principal é receber sinais de um microcontrolador, como o Arduino, e converter esses sinais em pulsos de corrente para movimentar o motor de forma controlada.
Entre suas principais vantagens, estão:
- Compatibilidade com motores de maior torque: ao suportar correntes mais altas (até cerca de 4A com refrigeração adequada), o TB6600 permite o uso de motores maiores, como Nema 23 ou Nema 34, que drivers menores como o A4988 ou DRV8825 não conseguem acionar.
- Facilidade de configuração: possui dip-switches para ajustar a corrente de saída e a configuração de microstepping, permitindo adaptar o desempenho conforme o motor utilizado.

- Simplicidade de controle: utiliza entradas padrão Step e Dir, que podem ser facilmente geradas por placas Arduino, ESP32 ou controladores CNC.
Além disso, o TB6600 possui proteções contra sobrecorrente, sobretensão e sobretemperatura, aumentando a segurança no uso em projetos robustos.
Principais características do driver TB6600
O driver TB6600 possui diversas características que o tornam uma excelente escolha para projetos que exigem motores de passo mais potentes. Confira as principais:
- Corrente ajustável: o TB6600 permite ajustar a corrente máxima fornecida ao motor através de dip-switches na lateral do driver. Essa configuração é essencial para:
- Proteger o motor contra sobrecorrente, evitando superaquecimento ou danos aos enrolamentos.
- Garantir torque suficiente para o funcionamento do projeto sem forçar o driver além do especificado.
O ajuste de corrente varia de 0.5A até cerca de 3.5~4A RMS, dependendo do modelo e da refrigeração utilizada.
- Configuração de microstepping: outra característica importante do TB6600 é a possibilidade de configurar diferentes resoluções de microstepping, como:
- Full step (1:1)
- Half step (1/2)
- Quarter step (1/4)
- Eighth step (1/8)
- Sixteenth step (1/16)
Essa configuração permite que o motor de passo tenha movimentos mais suaves e precisos, essenciais para aplicações como CNCs, impressoras 3D e rotacionamento de câmeras ou sensores com precisão.
- Faixa de tensão ampla: o TB6600 pode ser alimentado com tensões típicas entre 9V e 42V DC. Utilizar tensões maiores dentro do limite do driver permite maior velocidade e torque do motor, devido à resposta elétrica mais rápida dos enrolamentos.
- Proteções integradas: para maior segurança e durabilidade, o driver possui proteções contra:
- Sobrecorrente (Overcurrent)
- Sobretensão (Overvoltage)
- Sobreaquecimento (Overtemperature)
Essas proteções garantem que, em caso de falha de configuração ou sobrecarga, o driver desligue temporariamente ou reduza sua operação para evitar danos permanentes.
- Controle simples via Step e Dir: o TB6600 utiliza entradas lógicas padrão Step (pulso de passo) e Dir (direção), compatíveis com microcontroladores como Arduino, ESP32 e controladoras de CNC. Isso facilita a implementação em projetos de automação sem a necessidade de circuitos complexos de controle.
Como o driverTB6600 funciona?
O TB6600 funciona como um driver de corrente controlada (chopper driver) para motores de passo bipolares. Seu objetivo é receber sinais digitais de controle (Step e Dir) e converter esses sinais em pulsos de corrente alternada nos enrolamentos do motor, fazendo com que ele gire com precisão.
Funcionamento interno resumido:
- Sinal de direção (Dir): define para qual lado o motor irá girar. Se o pino de direção estiver em nível alto, por exemplo, o motor gira em sentido horário; se estiver em nível baixo, gira no sentido anti-horário.
- Sinal de passo (Step): cada pulso enviado nesse pino faz o motor avançar um passo ou microstep, conforme configurado nos dip-switches. A frequência dos pulsos define a velocidade de rotação do motor.
- Controle de corrente (chopper driver): o TB6600 controla a corrente fornecida aos enrolamentos do motor por meio de um método chamado chopper, que liga e desliga rapidamente a tensão aplicada para manter a corrente dentro do valor configurado. Isso evita superaquecimento e garante torque constante em diferentes velocidades.
Entradas e saídas do TB6600:

- Entradas lógicas: Step, Dir, Enable (opcional).
- Saídas para motor: A+, A-, B+, B- (conectadas às duas bobinas do motor).
- Alimentação do motor: Terminais V+ e GND, que fornecem a tensão de operação do motor (ex: 12V, 24V ou até 36-42V dependendo do modelo).
- Dip-switches: Para ajuste de corrente máxima e configuração de microstepping.
Quando conectado ao Arduino ou outro controlador:
- O Arduino gera pulsos no pino Step e define a direção no pino Dir.
- O TB6600 interpreta esses sinais, comuta a corrente nas bobinas do motor de acordo com a direção, e aplica a corrente correta conforme a configuração dos dip-switches.
- O motor gira com suavidade e torque estável, sendo capaz de mover cargas maiores do que drivers mais simples.
Materiais necessários
Para realizar o exemplo prático de controle de um motor de passo com o driver TB6600 e Arduino, você vai precisar dos seguintes componentes:
- Arduino Uno R4 Minima
- Driver motor de passo TB6600
- Motor de passo Nema 17 ou Nema 23
- Fonte de alimentação adequada (Verifique a tensão e corrente recomendadas para o motor escolhido.)
- Jumpers macho-macho
- Protoboard
Ligação do driver TB6600 com Arduino e motor de passo
Agora que você já conhece o funcionamento do TB6600 e separou todos os materiais, vamos ver como fazer a ligação correta do driver ao Arduino e ao motor de passo.
Conexões do motor de passo ao TB6600
O motor de passo bipolar possui quatro fios, sendo dois pares de bobinas. A ligação nos terminais do TB6600 deve ser feita da seguinte forma:
- A+ e A-: conectados a um dos pares de fios do motor.
- B+ e B-: conectados ao outro par de fios do motor.
Dica: utilize um multímetro para identificar os pares de bobinas (os fios de cada bobina terão continuidade entre si).
- V+ e GND: conecte a fonte de alimentação do motor de passo (ex: 12V ou 24V DC).
Importante: verifique a tensão máxima suportada pelo motor e pelo TB6600 antes de ligar.
Conexões de controle com Arduino
O TB6600 possui três entradas principais para controle:
| Pino no TB6600 | Função | Conexão Arduino |
| PUL+ (Step +) | Pulso de passo | Pino digital (ex: D3) |
| PUL- (Step -) | GND do pulso | GND do Arduino |
| DIR+ (Dir +) | Direção | Pino digital (ex: D2) |
| DIR- (Dir -) | GND da direção | GND do Arduino |
| ENA+ (Enable +) | (opcional) Habilita driver | Opcional: pino digital ou VCC |
| ENA- (Enable -) | (opcional) GND | Opcional: GND do Arduino |
Abaixo você pode conferir todas as conexões feitas entre o driver TB6600, Arduino e motor de passo Nema:

Configuração dos dip-switches no TB6600
Antes de ligar o sistema, é essencial configurar corretamente:
Microstepping: configure o microstepping conforme a resolução desejada.
| S1 | S2 | S3 | Microstepping |
| ON | ON | ON | NC |
| ON | ON | OFF | Full step |
| ON | OFF | ON | 1/2 step |
| OFF | ON | ON | 1/2 step |
| ON | OFF | OFF | 1/4 step |
| OFF | ON | OFF | 1/8 step |
| OFF | OFF | ON | 1/16 step |
| OFF | OFF | OFF | 1/32 step |
Dica: quanto maior o microstepping, mais suave será o movimento, mas o torque útil tende a diminuir levemente.
Corrente de saída: Verifique a corrente nominal do seu motor de passo (ex: 1.7A).
| Corrente (A) | Corrente de Pico (A) | S4 | S5 | S6 |
| 0.5 | 0.7 | ON | ON | ON |
| 1.0 | 1.2 | ON | OFF | ON |
| 1.5 | 1.7 | ON | ON | OFF |
| 2.0 | 2.2 | ON | OFF | OFF |
| 2.5 | 2.7 | OFF | ON | ON |
| 2.8 | 2.9 | OFF | OFF | ON |
| 3.0 | 3.2 | OFF | ON | OFF |
| 3.5 | 4.0 | OFF | OFF | OFF |
Importante: Configure o dip-switch do TB6600 para um valor próximo ou ligeiramente menor, caso deseje reduzir aquecimento.
Código driver TB6600 com Arduino
Abaixo está o código para controlar um motor de passo usando o driver TB6600 conectado ao Arduino nos pinos D2 (DIR) e D3 (STEP).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// Definição dos pinos const int dirPin = 2; // Pino direção conectado ao DIR+ do TB6600 const int stepPin = 3; // Pino passo conectado ao PUL+ do TB6600 void setup() { pinMode(dirPin, OUTPUT); pinMode(stepPin, OUTPUT); digitalWrite(dirPin, LOW); // Define direção inicial (LOW = sentido 1) } void loop() { // Gira o motor em um sentido por 1000 passos digitalWrite(dirPin, HIGH); // Define direção (HIGH = sentido 2) for(int i = 0; i < 1000; i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); // Controla a velocidade (tempo entre pulsos) digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); // Pausa de 1 segundo // Gira o motor no sentido contrário por 1000 passos digitalWrite(dirPin, LOW); // Define direção (LOW = sentido 1) for(int i = 0; i < 1000; i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); // Pausa de 1 segundo } |
- Definição dos pinos: O pino dirPin controla o sentido de rotação do motor, enquanto o stepPin envia os pulsos que fazem o motor girar.
- No setup():Os pinos são configurados como saída e o sentido inicial é definido.
- No loop(): O motor gira em um sentido por 1000 passos (o valor pode ser ajustado conforme necessário). Cada passo é gerado por um pulso digital no stepPin. Em seguida, há uma pausa de 1 segundo, e o motor gira no sentido contrário pela mesma quantidade de passos.
- Velocidade: A velocidade do motor é controlada pelo intervalo entre os pulsos (delayMicroseconds(500)). Reduzir esse valor acelera o motor; aumentar diminui a velocidade.
Dicas e cuidados no uso do TB6600
- Verifique a corrente do motor: sempre ajuste os dip-switches do TB6600 para a corrente nominal do motor ou um pouco abaixo, para evitar aquecimento excessivo e prolongar a vida útil do motor e do driver.
- Utilize fonte de alimentação adequada: certifique-se de que a fonte utilizada suporta a tensão e corrente necessárias para o motor de passo. Fontes subdimensionadas podem causar falhas no funcionamento.
- Não troque os fios do motor com o sistema energizado: desligue a alimentação antes de conectar ou desconectar o motor de passo do driver para evitar danos ao TB6600.
- Evite cabos longos sem blindagem: em altas correntes e velocidades, fios longos podem gerar interferência no sinal de controle. Utilize cabos mais curtos ou blindados quando necessário.
- Atenção à ventilação do driver: em aplicações contínuas ou motores de alta corrente, deixe o TB6600 em ambiente ventilado ou utilize dissipadores adicionais para evitar desligamentos por sobretemperatura.
- Confirme as conexões antes de ligar: revise todas as ligações do circuito, incluindo polaridade da alimentação, para evitar danos permanentes ao driver.
Conclusão
O driver TB6600 é uma excelente opção para projetos que exigem controle preciso de motores de passo com correntes mais altas, como máquinas CNC, impressoras 3D de grande porte e sistemas de automação.
Agora que você domina o funcionamento do TB6600, experimente integrar este driver aos seus projetos e explore novas possibilidades de automação e controle de movimento.
Ficou com alguma dúvida ou tem sugestões? Deixe seu comentário aqui embaixo, vamos adorar ajudar e conhecer sua opinião! Se quiser, compartilhe também sua experiência usando o TB6600 em projetos. Não se esqueça de nos seguir no Instagram para conferir mais conteúdos como este e se inspirar em novas ideias de automação e eletrônica.