Arduino - Driver de Motor de Passo DRV8825
Neste tutorial, vamos aprender sobre o Driver de Motor de Passo DRV8825 e como usá-lo com o Arduino para controlar o motor de passo. Em detalhes, vamos aprender:
- O que é o módulo driver de motor de passo DRV8825
- Como funciona o módulo driver de motor de passo DRV8825
- Como conectar o driver de motor de passo DRV8825 ao Arduino e ao motor de passo
- Como programar o Arduino para controlar o motor de passo por meio do módulo DRV8825

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Driver de Motor de Passo DRV8825
O DRV8825 é um módulo driver de motor de passo muito usado para controlar motores de passo bipolares em aplicações como máquinas CNC, impressoras 3D e robótica. Ele possui limite de corrente ajustável, proteção contra superaquecimento e seis opções de micropasso, incluindo passo completo, 1/2, 1/4, 1/8, 1/16 e 1/32. O módulo suporta até 2.2A por bobina com resfriamento adequado e opera em uma ampla faixa de tensão de 8.2V a 45V, o que o torna adequado para diversos motores de passo.
Para aprender sobre conceitos de motor de passo como: passo completo, micropasso, motor de passo unipolar e motor de passo bipolar, consulte o tutorial Arduino - Motor de Passo
É impressionante que controlar a velocidade e a direção de um motor de passo bipolar, como o NEMA 17, exija apenas dois pinos do Arduino.
Pinagem do Driver de Motor de Passo DRV8825

O driver de motor de passo DRV8825 tem 16 pinos. Abaixo está uma pinagem típica do módulo driver de motor de passo DRV8825. Observe que algumas variações do módulo podem nomear os pinos de forma um pouco diferente, mas a funcionalidade continua a mesma.
| Nome do Pino | Descrição |
|---|---|
| VMOT | Alimentação do motor (8.2 V a 45 V). Alimenta o motor de passo. |
| GND (do Motor) | Referência de terra da fonte de alimentação do motor. Conecte este pino ao GND da fonte de alimentação do motor |
| 2B, 2A | Saídas para a Bobina B do motor de passo. |
| 1A, 1B | Saídas para a Bobina A do motor de passo. |
| FAULT | Pino de Detecção de Falha. É um pino de saída que vai para LOW sempre que os FETs da ponte H são desativados como resultado da proteção contra sobrecorrente ou do desligamento térmico. |
| GND (da Lógica) | Referência de terra para os sinais lógicos. Conecte este pino ao GND do Arduino |
| ENABLE | Pino ativo em nível baixo para habilitar/desabilitar as saídas do motor. LOW = Habilitado, HIGH = Desabilitado. |
| M0, M1, M2 | Pinos seletores da resolução de micropasso (veja a tabela abaixo). |
| RESET | Pino de reset ativo em nível baixo - colocar este pino em LOW reinicia o driver. |
| SLEEP | Pino de sleep ativo em nível baixo - colocar este pino em LOW coloca o driver no modo sleep de baixo consumo. |
| STEP | Entrada de passo - uma borda de subida neste pino avança o motor em um passo (ou um micropasso, dependendo da configuração de micropasso). |
| DIR | Entrada de direção - define o sentido de rotação do motor de passo. |
Além disso, há um pequeno potenciômetro na placa que você pode ajustar para definir a limitação de corrente, ajudando a evitar que o motor de passo e o driver superaqueçam.
Em resumo, esses 16 pinos são organizados nas seguintes categorias, com base em sua funcionalidade:
- Pinos conectados ao motor de passo: 1A, 1B, 2A, 2B.
- Pinos conectados ao Arduino para controle do driver: ENABLE, M0, M1, M2, RESET, SLEEP.
- Pinos conectados ao Arduino para controle de direção e velocidade do motor: DIR, STEP.
- Pino de retorno para o Arduino: FAULT.
- Pinos conectados à fonte de alimentação do motor: VMOT, GND (terra da alimentação do motor).
- Pino conectado ao terra do Arduino: GND (terra da lógica).
O módulo DRV8825 não precisa de alimentação lógica da placa Arduino, pois ele obtém energia da fonte de alimentação do motor usando seu regulador de tensão interno de 3.3V. No entanto, é essencial conectar o terra do Arduino ao pino GND (lógica) do módulo DRV8825 para garantir o funcionamento correto e uma referência de terra comum.
Configuração de Micropasso
O driver DRV8825 permite o micropasso dividindo cada passo em incrementos menores. Isso é feito aplicando níveis de corrente intermediários às bobinas do motor.
Por exemplo, um motor NEMA 17 com ângulo de passo de 1.8° (200 passos por revolução):
- Modo de passo completo (1/1): 200 passos por revolução
- Modo de 1/2 passo: 400 passos por revolução
- Modo de 1/4 de passo: 800 passos por revolução
- Modo de 1/8 de passo: 1600 passos por revolução
- Modo de 1/16 de passo: 3200 passos por revolução
- Modo de 1/32 de passo: 6400 passos por revolução
À medida que você aumenta o nível de micropasso, o motor se move de forma mais suave e precisa, mas ao custo de mais passos necessários por revolução. Se você continuar usando a mesma taxa de pulsos de passo (pulsos por segundo), cada revolução levará mais tempo, o que na prática deixa o motor mais lento.
No entanto, se o seu microcontrolador conseguir gerar pulsos rápido o suficiente para acompanhar a contagem maior de passos, você pode manter ou até aumentar a velocidade. O limite prático depende da rapidez com que o driver e o seu microcontrolador conseguem processar esses pulsos sem perder passos.
Pinos de Seleção de Micropasso do DRV8825
O DRV8825 possui três entradas seletoras de resolução de micropasso: os pinos M0, M1 e M2. Configurando esses pinos com níveis lógicos específicos, você pode escolher entre seis resoluções de micropasso:
| Pino M0 | Pino M1 | Pino M2 | Resolução de Micropasso |
|---|---|---|---|
| Low | Low | Low | Passo completo |
| High | Low | Low | Meio passo |
| Low | High | Low | 1/4 de passo |
| High | High | Low | 1/8 de passo |
| Low | Low | High | 1/16 de passo |
| High | Low | High | 1/32 de passo |
| Low | High | High | 1/32 de passo |
| High | High | High | 1/32 de passo |
Esses pinos de seleção de micropasso têm resistores pull-down na placa que os mantêm em estado LOW por padrão. Se ficarem desconectados, o motor vai operar no modo de passo completo.
Como Funciona
Para controlar um motor de passo usando o módulo DRV8825, você precisa de pelo menos dois pinos do Arduino: um para o pino DIR e um para o pino STEP. O DRV8825 interpreta esses sinais do Arduino para mover o motor de passo com precisão.
- Pino STEP: Cada pulso no pino STEP avança o motor em um micropasso (ou um passo completo, dependendo da sua configuração de micropasso).
- Pino DIR: Determina o sentido de rotação do motor.
O driver então usa esses sinais, junto com suas próprias configurações, para enviar as saídas de controle ao motor pelos pinos 1A, 1B, 2A e 2B.
Você também pode configurar pinos adicionais do módulo DRV8825 (ENABLE, M0, M1, M2, RESET, SLEEP) de uma destas três formas:
- Deixá-los desconectados para que o driver opere com as configurações padrão.
- Ligá-los diretamente ao GND ou ao VCC para um modo de operação fixo.
- Conectá-los a pinos do Arduino para que você possa controlar esses recursos dinamicamente no seu código.
Diagrama de Ligação entre o Arduino, o módulo DRV8825 e o Motor de Passo
O diagrama de ligação a seguir mostra as conexões mínimas necessárias entre o Arduino, o módulo DRV8825 e o motor de passo. Com essa configuração, o driver DRV8825 opera no seu modo padrão (passo completo).

This image is created using Fritzing. Click to enlarge image
Em detalhes:
- VMOT: Conecte à fonte de alimentação do motor (ex.: 12V).
- GND (do Motor): Conecte ao terra da fonte de alimentação do motor.
- 1A, 1B, 2A, 2B: Conecte às bobinas do motor de passo.
- STEP: Conecte ao pino digital D4 do Arduino.
- DIR: Conecte ao pino digital D3 do Arduino.
- GND (da Lógica): Conecte ao pino GND do Arduino.
- Outros pinos: deixados desconectados.
Código Arduino
Passos Rápidos
- Copie o código acima e abra-o no Arduino IDE
- Vá até o ícone Libraries na barra esquerda do Arduino IDE.
- Pesquise “AccelStepper” e encontre a biblioteca AccelStepper de Mike McCauley
- Clique no botão Install para instalar a biblioteca AccelStepper.

- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Você verá o motor girar para frente e para trás
Observação: Ao operar o motor no modo de passo completo, seu movimento pode não ser muito suave, o que é normal. Para um movimento mais suave, habilite o micropasso configurando os pinos M0, M1 e M2.