Arduino Nano - Driver de Motor de Passo DRV8825
Neste guia, vamos explorar o Driver de Motor de Passo DRV8825 e aprender a operá-lo com o Arduino Nano para controlar o motor de passo. Vamos abordar:
- O módulo controlador de motor de passo DRV8825
- Como operar o módulo controlador de motor de passo DRV8825
- Como conectar o controlador de motor de passo DRV8825 ao Arduino Nano e ao motor de passo
- Como programar o Arduino Nano para controlar o motor de passo com o módulo DRV8825

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Driver de Motor de Passo DRV8825
O DRV8825 é um módulo popular para controlar motores de passo bipolares, muito usado em máquinas CNC, impressoras 3D e robôs. Ele oferece controle de corrente ajustável, recursos de segurança térmica e várias opções de micropasso, como passo completo, 1/2, 1/4, 1/8, 1/16 e 1/32. Este módulo suporta até 2.2A por bobina com refrigeração adequada e trabalha em uma faixa de tensão de 8.2V a 45V, atendendo a diferentes motores de passo.
Para entender o básico sobre motores de passo, como passo completo, micropasso, motor de passo unipolar e motor de passo bipolar, veja o guia Arduino Nano - Motor de Passo.
É incrível que controlar a velocidade e a direção de um motor de passo simples como o NEMA 17 exija apenas dois pinos do Arduino Nano.
Pinagem do Driver de Motor de Passo DRV8825

O Driver de motor de passo DRV8825 tem 16 pinos. Este é um layout comum da placa do driver de motor de passo DRV8825. Lembre-se de que algumas versões da placa podem dar nomes um pouco diferentes aos pinos, mas as funções são as mesmas.
| Nome do Pino | Descrição |
|---|---|
| VMOT | Alimentação do motor (8.2 V a 45 V). Alimenta o motor de passo. |
| GND (para o Motor) | Referência de terra da 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 por causa da proteção contra sobrecorrente ou do desligamento térmico. |
| GND (para a Lógica) | Referência de terra dos sinais lógicos. Conecte este pino ao GND do Arduino Nano |
| ENABLE | Pino ativo em nível baixo para habilitar/desabilitar as saídas do motor. LOW = Habilitado, HIGH = Desabilitado. |
| M1, M2, M3 | 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 de repouso de baixo consumo. |
| STEP | Entrada de passo - uma borda de subida neste pino avança o motor 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. |
Há também um pequeno botão giratório embutido que você pode girar para ajustar o limite de corrente e ajudar a evitar que o motor de passo e o driver esquentem demais.
Resumindo, esses 16 pinos são agrupados nos seguintes tipos, de acordo com a função:
- Pinos ligados ao motor de passo: 1A, 1B, 2A, 2B.
- Pinos conectados ao Arduino Nano para controlar o driver: ENABLE, M1, M2, M3, RESET, SLEEP.
- Pinos conectados ao Arduino Nano para controlar a direção e a velocidade do motor: DIR, STEP.
- Pino para enviar retorno ao Arduino Nano: FAULT.
- Pinos conectados à fonte de energia do motor: VMOT, GND (terra da alimentação do motor).
- Pino conectado ao terra do Arduino Nano: GND (terra da lógica).
O módulo DRV8825 não precisa de alimentação do Arduino Nano para a sua lógica, pois recebe energia da fonte de alimentação do motor por meio do regulador de tensão de 3.3V embutido. Mesmo assim, é fundamental conectar o terra do Arduino Nano ao pino GND (lógica) do módulo DRV8825 para garantir o funcionamento correto e um terra comum.
Configuração de Micropasso
O driver DRV8825 permite o micropasso, dividindo cada passo em partes menores. Isso é feito enviando níveis variados de corrente às bobinas do motor.
Por exemplo, um motor NEMA 17 com ângulo de passo de 1.8 grau (200 passos por rotação):
- Modo de passo completo: 200 passos por rotação
- Modo de meio passo: 400 passos por rotação
- Modo de quarto de passo: 800 passos por rotação
- Modo de oitavo de passo: 1600 passos por rotação
- Modo de dezesseis avos de passo: 3200 passos por rotação
- Modo de trinta e dois avos de passo: 6400 passos por rotação
Quanto mais você aumenta a configuração de micropasso, mais suave e preciso fica o funcionamento do motor, mas são necessários mais passos para cada volta completa. Se você mantiver a mesma taxa de pulsos de passo (pulsos por segundo), cada volta completa levará mais tempo, e o motor ficará mais lento.
Mas, se o seu microcontrolador conseguir enviar pulsos rápido o suficiente para acompanhar a maior quantidade de passos, você pode manter ou até aumentar a velocidade. O limite real depende da rapidez com que o driver e o seu microcontrolador conseguem tratar esses pulsos sem perder passos.
Pinos de Seleção de Micropasso do DRV8825
O DRV8825 inclui três entradas para selecionar a resolução de micropasso: os pinos M0, M1 e M2. Ao colocar esses pinos em certos níveis lógicos, você pode escolher entre seis resoluções de micropasso diferentes:
| 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 pequenos pinos de seleção têm resistores embutidos que os puxam para baixo, mantendo-os normalmente em estado LOW. Se não forem conectados, o motor vai funcionar no modo de passo completo.
Como Funciona
Para operar um motor de passo com o módulo DRV8825, você precisa de pelo menos dois pinos do Arduino Nano: um para o pino DIR e outro para o pino STEP. O DRV8825 decodifica esses sinais do Arduino Nano para mover o motor de passo com precisão.
- Pino STEP: Cada pulso no pino STEP move o motor um pequeno passo ou um passo completo, dependendo da sua configuração.
- Pino DIR: Define para que lado o motor gira.
O driver usa esses sinais e as suas configurações para enviar comandos de controle ao motor pelos pinos 1A, 1B, 2A e 2B.
Você também pode configurar os pinos extras do módulo DRV8825 (ENABLE, M1, M2, M3, RESET, SLEEP) de um destes três modos:
- Deixá-los desconectados, para que o driver funcione com as configurações básicas.
- Conectá-los diretamente ao GND ou ao VCC para um modo fixo.
- Ligá-los a pinos do Arduino Nano para gerenciar essas funções ativamente na sua programação.
Diagrama de Ligação entre o Arduino Nano, o módulo DRV8825 e o Motor de Passo
O diagrama abaixo mostra as conexões básicas necessárias entre o Arduino Nano, o módulo DRV8825 e o motor de passo. Com essa configuração, o driver DRV8825 funciona no modo padrão (passo completo).

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Em detalhes:
- VMOT: Conecte à fonte de energia do motor (por exemplo, 12V).
- GND (para o Motor): Ligue ao terra da fonte de alimentação do motor.
- 1A, 1B, 2A, 2B: Conecte-os às bobinas do motor de passo.
- STEP: Conecte ao pino digital D4 do Arduino Nano.
- DIR: Ligue ao pino digital D3 do Arduino Nano.
- GND (para a Lógica): Conecte ao pino GND do Arduino Nano.
- Outros pinos: Não conecte.
Código Arduino Nano
Passos Rápidos
- Copie o código e inicie o Arduino IDE.
- Vá até a seção Libraries no menu à esquerda do Arduino IDE.
- Procure por "AccelStepper" e localize a biblioteca AccelStepper de Mike McCauley.
- Pressione o botão Install para adicionar a biblioteca AccelStepper.

- Copie o código e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para fazer upload do código para o Arduino Nano
- Você verá o motor se mover para frente e para trás
Quando você usa o motor no modo de passo completo, o movimento pode não ser muito suave, o que é comum. Para um movimento mais suave, ative o micropasso configurando os pinos M1, M2 e M3.