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:

Módulo DRV8825 do Arduino Nano

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Stepper Motor Nema 17
1×DRV8825 Stepper Motor Driver
1×Expansion Board for DRV8825 Motor Driver
1×Fonte de Alimentação 12V
1×Conector de Alimentação DC
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

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

Pinagem do módulo 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).

Diagrama de ligação do Arduino Nano com o driver de motor de passo DRV8825

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

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-drv8825-stepper-motor-driver */ // Include the AccelStepper Library #include <AccelStepper.h> // Define the Arduino Nano pin connections #define STEP_PIN 4 #define DIR_PIN 3 // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor, // initial speed and the target position stepper.setMaxSpeed(1000); stepper.setAcceleration(200); stepper.setSpeed(200); stepper.moveTo(200); } void loop() { // Change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // Move the motor one step }

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.
Biblioteca AccelStepper do Arduino Nano
  • 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.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!