DRV8825: o driver para motores de passo

drv8825

Un motorista de motor É um circuito que permite que os motores de corrente contínua sejam controlados de forma muito simples. Esses controladores permitem gerenciar as tensões e correntes nas quais o motor está sendo fornecido para controlar a velocidade de rotação. Além disso, servem como método de proteção para evitar que a eletrônica dos motores seja danificada pela limitação da corrente que circula (corte).

Portanto, se você vai criar um projeto DIY que vai incluem um ou mais motores DCQualquer que seja o tipo, e especialmente para motores de passo, você deve usar um driver de motor para tornar as coisas mais fáceis para você. Embora existam métodos para fazer isso de forma diferente, usando transistores, os módulos com drivers de motor são muito mais práticos e diretos. Na verdade, esses drivers contam com transistores para fazer seu trabalho ...

Por que preciso de um driver?

Módulo Controlador
Módulo Controlador
Sem classificações

El o driver é necessário para o controle do motor, como eu disse antes. Além disso, você deve ter em mente que a placa Arduino e seu microcontrolador não são capazes de alimentar o movimento do motor. Ele é simplesmente projetado para sinais digitais, mas não funcionaria bem quando um pouco mais de energia deve ser fornecida como a exigida por esses tipos de motores. É por isso que você deve ter esse elemento entre a placa Arduino e os motores.

Tipos de motorista

Saiba que existem vários tipos de drivers dependendo do tipo de motor para o qual se destinam. É importante saber como diferenciá-lo para obter o driver certo:

  • Driver para motor unipolar: são os mais simples de controlar, pois a corrente que flui pelas bobinas vai sempre na mesma direção. O trabalho do motorista simplesmente deve saber quais bobinas ele deve ativar em cada pulso. Um exemplo desse tipo de controlador seria o ULN2003A.
  • Motorista bipolar: estes motores são mais complexos e seus drivers também, como o DRV8825. Nesse caso, eles podem ser ativados com corrente em uma direção ou na outra (norte-sul e sul-norte). É o driver que decide a direção para alterar a polaridade do campo magnético que é produzido dentro do motor. O circuito mais conhecido para reverter a direção é chamado de Punete H, permitindo que o motor gire nas duas direções. Essa ponte H é composta de vários transistores.

Estes últimos se tornaram ainda mais populares nos últimos anos porque também estão incluídos em alguns impressoras 3D para controlar a impressão com a cabeça. É possível que se você pretende montar uma impressora 3D ou se já possui uma, você precisará de uma delas para poder controlar o motor ou substituir esta peça se estiver danificada. Eles também são usados ​​para robôs, plotters, impressoras convencionais, scanners, veículos eletrônicos e um longo etc.

DRV8825

Módulo Controlador
Módulo Controlador
Sem classificações

Existem vários modelos de drivers no mercado. Por exemplo, ele DRV8825 é uma versão atualizada do A4988. Este driver precisa apenas de duas saídas digitais do microcontrolador para poder controlar o motor adequadamente. Só assim você pode controlar a direção e o passo do motor com esses dois sinais. Ou seja, com isso é possível realizar passos, ou seja, o motor girar passo a passo ao invés de girar rapidamente como outros motores simples.

O DRV8825 permite trabalhar com tensões superiores às utilizadas pelo A4988, uma vez que pode atingir 45v em vez do 35v do A4988. Ele também pode lidar com correntes mais altas, especificamente 2.5 A, que é meio ampere a mais do que o A4988. Além de tudo isso, este novo driver adiciona um novo modo de 1/32 microstepping (1/16 para o A4988) para poder mover o eixo do motor de passo com mais precisão.

Caso contrário eles são bastante semelhantes. Por exemplo, ambos podem atingir altas temperaturas de operação sem problemas. Portanto, se você os acompanhar com um dissipador pequeno, muito melhor (muitos modelos já o incorporam), principalmente se for usá-lo acima de 1A.

Se o encapsulamento atingir altas temperaturas, por precaução você deve desligá-lo. Seria bom consultar o folhas de dados do modelo que você comprou e veja a temperatura máxima em que ele pode funcionar. Seria altamente recomendável adicionar um sensor de temperatura ao lado do driver para monitorar a temperatura e usar um circuito que interrompa o funcionamento se atingir essa temperatura limite ...

O DRV8825 tem proteção contra problemas de sobrecorrente, curto-circuito, sobretensão e sobretemperatura. Portanto, são dispositivos muito confiáveis ​​e resistentes. E tudo por um preço bastante baixo em lojas especializadas onde você pode encontrar este componente.

Micropasso

micropasso

Com a técnica de etapas de microstepping inferiores à etapa nominal podem ser alcançadas do motor de passo que você vai usar. Ou seja, divida a curva em mais porções para poder avançar mais lentamente ou com mais precisão. Para fazer isso, a corrente aplicada a cada bobina é variada pela emulação de um valor analógico com os sinais digitais disponíveis. Se sinais analógicos sinusoidais perfeitos forem alcançados e 90º defasados ​​entre si, a rotação desejada será alcançada.

Mas, claro, você não pode obter esse sinal analógico, porque nós trabalhamos com sinais digitais. É por isso que estes devem ser tratados para tentar simular o sinal analógico por meio de pequenos saltos no sinal elétrico. A resolução do motor dependerá disso: 1/4, 1/8, 1/16, 1/32, ...

Para selecionar a resolução desejada, você deve controlar os pinos M0, M1 e M2 do módulo. Os pinos são conectados ao aterramento ou GND por meio de resistores pull-up, portanto, se nada estiver conectado, eles sempre serão LOW ou 0. Para alterar este valor, você terá que forçar um valor de 1 ou HIGH. O valores de M0, M1, M2 respectivamente aqueles que devem estar de acordo com a resolução, são:

  • Etapa completa: baixo, baixo, baixo
  • 1/2: alto, baixo, baixo
  • 1/4: baixo, alto, baixo
  • 1/8: alto, alto, baixo
  • 1/16: baixo, baixo, alto
  • 1/32: todos os outros valores possíveis

Pinagem

Pinagem DRV8825

El O driver DRV8825 tem um esquema de conexão simples, embora ter pinos suficientes possa ser um pouco complicado para os menos experientes. Dá para ver na imagem acima, mas certifique-se de posicionar o módulo corretamente ao olhar os pinos, pois é comum errar e pegá-lo invertido, o que resulta em uma conexão ruim e até em danos.

Como recomendação para conectar o motorista, é recomendado ajustar e calibrar adequadamente o dispositivo seguindo as etapas abaixo para uma operação adequada e não danificá-lo:

  1. Conecte o driver à tensão sem motor conectado ou microstepping.
  2. Meça com um multímetro a tensão que existe entre GND e o potenciômetro.
  3. Ajuste o potenciômetro até que seja o valor adequado.
  4. Agora você pode desligue a energia.
  5. Neste momento sim você pode conectar motor. E reconecte a alimentação ao mergulhador.
  6. Com a medida do multímetro a intensidade entre o motorista e o motor passo a passo e você pode fazer um ajuste mais preciso do potenciômetro.
  7. Desligue a energia novamente e agora você pode conectá-lo ao Arduino.

Se você não vai usar micropasso, você pode ajustar a intensidade do regulador até 100% da corrente nominal do motor. Mas se você vai usar tem que diminuir esse limite, pois o valor que então vai circular será maior do que o medido ...

L298n
Artigo relacionado:
L298N: módulo de controle do motor para Arduino

Integração com Arduino

ARduino e esquema DRV8825

Para usar o driver DRV8825 com Arduino, a conexão é bastante simples como você pode ver no topo neste esquema eletrônico de Fritzing:

  • VMOT: conectado para alimentação de no máximo 45v.
  • GND: terra (motor)
  • SLP: em 5v
  • RST: em 5v
  • GND: para aterrar (lógica)
  • STP: para Arduino pino 3
  • DIR: para Arduino pino 2
  • A1, A2, B1, B2: para passo a passo (motor)

Depois de conectado e ajustado corretamente, o código para seu controle também é direto. Por exemplo, para controlar um motor de passo, você pode usar o seguinte código em Arduino IDE:

const int dirPin = 2;
const int stepPin = 3;
 
const int steps = 200;
int stepDelay;
 
void setup() {
   // Configura los pines como salida
   pinMode(dirPin, OUTPUT);
   pinMode(stepPin, OUTPUT);
}
 
void loop() {
   //Se pone una dirección y velocidad
   digitalWrite(dirPin, HIGH);
   stepDelay = 250;
   // Se gira 200 pulsos para hacer vuelta completa del eje
   for (int x = 0; x < 200; x++) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(stepDelay);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(stepDelay);
   }
   delay(1000);
 
   //Ahora se cambia la dirección de giro y se aumenta la velocidad
   digitalWrite(dirPin, LOW);
   stepDelay = 150;
   //Se hacen dos vueltas completas
   for (int x = 0; x < 400; x++) {
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(stepDelay);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(stepDelay);
   }
   delay(1000);
}

Aconselho você também a experimentar alguns exemplos de código que encontrará entre os exemplos que vêm com o IDE do Arduino e tentar modificar os valores para aprender como isso afeta o motor.

Pára mais informações sobre motores de passo, seu controle e programação Arduino, eu recomendo baixe nosso curso de programação gratuitamente.


3 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Jesus dito

    Olá, estou construindo um CNC caseiro com drv8825, minha dúvida é se eu posso colocar motores nema 23 2.8a já que eles são um pouco mais baratos que 2.5a, eu teria um problema? Obrigada

    1.    Isaac dito

      Ola Jesus,
      Obrigado por nos ler. Quanto à sua dúvida, fique de olho no driver que você vai usar para torná-lo compatível com esses motores. A caixa do DRV8825 é de até um máximo de 2.5A. Olhe para ver o TB6600, que pode ir até 3.5A se bem me lembro ...
      Uma saudação!

  2.   Rodolfo dito

    Salaudos. Qual é o valor do capacitor eletrolítico que está na alimentação do motor. Obrigado.