Motor de passo: integração com Arduino

Motor de passo

Os motores elétricos são cada vez mais procurados, dentre eles talvez se destaquem os que trabalham com corrente contínua, os mais populares dentro dos projetos de fabricantes com Arduino, por proporcionarem mobilidade. Entre eles, destaque motores de passo que são usados ​​para várias aplicações, especialmente para robótica, como atuadores, etc.

Carros elétricos, pequenos robôs autônomos, aplicações industriais para automação, dispositivos de movimento repetitivo, etc. A razão pela qual servo motores e motores de passo são tão bons para essas aplicações é que eles podem realizar movimentos lentos ou rápidos, mas acima de tudo controlados. Além disso, os acionamentos são contínuos para aplicações onde muitas paradas e partidas são necessárias com alta precisão.

Tipos de motores elétricos

Dentro motores elétricos os seguintes tipos podem ser destacados:

  • Motor DC ou DC: Os motores DC trabalham com este tipo de corrente, como o nome sugere. Eles podem variar de alguns mW de potência a alguns MW nos mais potentes e grandes, que são usados ​​para aplicações industriais, veículos, elevadores, correias transportadoras, ventiladores, etc. Sua velocidade de giro (RPM) e torque aplicado podem ser regulados de acordo com a alimentação.
  • Motor AC ou AC (rotor assíncrono e enrolado): funcionam com corrente alternada, com um rotor muito específico que funciona graças às fases que este tipo de corrente contribui para gerar a rotação por meio da repulsão magnética do eletroímã de forma semelhante à DC. São muito baratos e chegam a vários kW. Eles podem ser regulados em velocidade de rotação, mas os elementos de regulação são mais caros que os de DC. Geralmente são usados ​​para eletrodomésticos.
  • Motor de passo- Também conhecidos como steppers, eles são semelhantes em muitos aspectos ao DC, mas com baixas velocidades de rotação e potências. Aqui o que se destaca é o posicionamento dos eixos, ou seja, a precisão para colocá-los em uma determinada posição. Seu ângulo de rotação e velocidade podem ser muito controlados, razão pela qual costumavam ser usados ​​em unidades de disquete, discos rígidos (HDD), robôs, automação de processos, etc.
  • Servomotor: pode-se dizer que é uma evolução do motor de passo, trabalhando com pequenas potências e velocidades que chegam a 7000 RPM em alguns casos. Este motor incorpora uma caixa redutora e um circuito de controle. Eles têm a mesma precisão de posicionamento que os deslizadores e são muito estáveis ​​em termos de torque aplicado, o que os torna ideais para alguns robôs e aplicações industriais.

Motores de passo e servo motores

rotor e estator

Você já sabe o que são esses dois tipos de motor eletrônico, mas gostaria de dizer algo mais sobre steppers. A curva que eles fazem não é feita continuamente, mas em pequenos passos, daí o seu nome. O rotor (parte que gira) tem a forma de uma roda dentada, enquanto o estator (parte que não gira) é composto por eletroímãs polarizados intercalados. Desta forma, quando um é "ativado" as laterais não são ativadas, o que atrai o dente do rotor para ele, permitindo o avanço preciso pelo qual se caracterizam.

drv8825
Artigo relacionado:
DRV8825: o driver para motores de passo

Dependendo do dentes do rotor, será possível avançar mais ou menos na curva. Se você tiver mais dentes, serão necessários mais passos para completar uma volta, mas os passos serão mais curtos, então será um motor mais preciso. Se você tiver poucos dentes, os passos serão saltos mais abruptos, sem tanta precisão. Portanto, as etapas que um motor de passo terá que realizar para completar uma volta dependerão das etapas angulares.

Essas etapas angulares são padronizados, embora você possa encontrar alguns motores com passo fora do padrão. Os ângulos são geralmente: 1.8º, 5.625º, 7.5º, 11.25º, 18º, 45º e 90º. Para calcular quantos passos um motor de passo precisa para completar uma volta completa ou giro (360º), você só precisa dividir. Por exemplo, se você tiver um motor de passo de 45º, terá 8 etapas (360/45 = 8).

girar com polarização (fase)

Dentro desses motores você tem o unipolar (mais popular), com 5 ou 6 cabos, ou o bipolar, com 4 cabos. De acordo com isso, um ou outro será realizado sequências de polarização passando corrente através de suas bobinas:

  • Polarização para bipolar:
Passo Terminal A Terminal B Terminal C Terminal D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V
  • Para os unipolar:
Passo Bobina A Bobina B Bobina C bobina D
1 +V +V 0 0
2 0 +V +V 0
3 0 0 +V +V
4 +V 0 0 +V

A operação em ambos os casos é a mesma, polarizando as bobinas para atrair o rotor para onde deseja que o eixo seja posicionado. Se você quiser mantê-lo em uma posição, você deve manter a polarização para essa posição e voila. E se você quiser que ele avance, você polariza o próximo ímã e ele dará mais um passo, e assim por diante ...

Se você usar um servo motor, você já sabe que é basicamente um motor de passo, portanto, tudo o que foi dito funciona para eles também. A única coisa que inclui essas engrenagens de redução para obter muitos mais passos por volta e, assim, ter uma precisão muito maior. Por exemplo, você pode encontrar um motor com 8 passos por volta que se tivesse uma caixa de velocidades 1:64, pois isso significa que cada passo desses oito está subdividido em 64 passos menores, o que daria um máximo de 512 passos por volta. Ou seja, cada passo seria em torno de 0.7º.

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

Adicione também que você deve usar alguns controlador com o qual controlar a polarização, velocidade, etc., com, por exemplo, H-Bridge. Alguns modelos são L293, ULN2003, ULQ2003, etc.

Onde comprar

Você pode compre em vários sites online ou em lojas especializadas de eletrônicos. Além disso, se você for um iniciante, você pode usar kits que incluem tudo que você precisa e até mesmo a placa Arduino UNO e manual para começar a experimentar e criar seus projetos. Esses kits incluem tudo que você precisa, desde o próprio motor, os controladores, placas, placa de ensaio, etc.

Exemplo de motor de passo com Arduino

Arduino com motor de passo e controlador

Finalmente, mostre um exemplo prático com Arduino, usando o controlador ULN2003 e o motor de passo 28BYJ-48. É muito simples, mas bastará você começar a se familiarizar com seu funcionamento para poder começar a fazer alguns testes e ver como se comporta ...

Como visto em o esquema de conexão, as bobinas do motor A (IN1), B (IN2), C (IN3) e D (IN4) foram atribuídas às conexões 8, 9, 10 e 11, respectivamente, na placa Arduino. Por outro lado, o driver ou placa controladora deve ser alimentado em seus pinos 5-12V (para o GND e 5V do Arduino) com a tensão apropriada para que por sua vez alimente o motor conectado ao conector de plástico branco que possui este driver ou controlador.

Esta Motor 28BYJ-48 É um motor de passo do tipo unipolar com quatro bobinas. Portanto, para dar uma ideia de como funciona, você pode enviar valores HIGH (1) ou LOW (0) para as bobinas da placa Arduino da seguinte forma para as etapas:

Passo Bobina A Bobina B Bobina C bobina D
1 ALTO ALTO LOW LOW
2 LOW ALTO ALTO LOW
3 LOW LOW ALTO ALTO
4 ALTO LOW LOW ALTO

Quanto a esboço ou código necessário para programar seu movimento, como seria o seguinte usando Arduino IDE (modifique-o e experimente para testar como o movimento é alterado):

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}


Seja o primeiro a comentar

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.