Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Biblioteca Completa para Motor de Passo Bipolar com Arduino

Componentes e Materiais

Arduino UNO 1
Driver de Motor Dual H-Bridge L293D (Texas Instruments) 1

Aplicativos e Serviços Online

Arduino IDE

Sobre o Projeto

Anteriormente, forneci uma biblioteca Arduino para motores de passo do tipo unipolar. Ela controla perfeitamente velocidade, direção, número de revoluções, ângulo do motor, etc., todos os parâmetros de motores de passo unipolares. Mas era apenas para motores de passo unipolares. Como sabemos, o motor de passo também pode ser do tipo bipolar. Mas essa biblioteca não controla motor de passo bipolar. Então decidi desenvolver outra biblioteca Arduino para controlar motor de passo do tipo bipolar.

Então, aqui apresento a biblioteca de motor de passo bipolar no Arduino para todos os motores de passo bipolares. A biblioteca tem 9 funções diferentes que podem ser usadas para rotacionar e controlar o motor conforme os requisitos. A biblioteca é projetada conforme os requisitos de controle de movimento industrial. Aqui estão alguns dos recursos desta biblioteca:

  1. Controla qualquer motor de passo bipolar
  2. Controla direção de rotação do motor
  3. Controla com precisão o número de revoluções do motor (1, 2, 3, 4...)
  4. Controla com precisão a velocidade do motor em RPM com 95% de precisão
  5. Rotaciona o motor para o ângulo desejado entre 0–360° com 80–100% de precisão
  6. Compatível com todas as placas Arduino
Biblioteca Completa para Motor de Passo Bipolar com Arduino

As descrições breves de todas as funções da biblioteca são dadas aqui. Alguns exemplos são dados a seguir que explicam como o motor é controlado usando esta biblioteca. Um vídeo também é dado que mostra a demonstração destes exemplos. Por fim, o circuito sugerido usa o chip L293D - amplamente usado como driver H-bridge para motores DC, bem como motores de passo bipolares.

Para usar esta biblioteca no seu sketch Arduino, apenas copie a pasta bi_polar_Stepper para o diretório raiz da pasta de bibliotecas do Arduino, como C:\arduino-1.6.7\libraries.

Descrição das Funções da Biblioteca

  1. bi_polar_Stepper(int pin1, int pin2, int pin3, int pin4) – cria uma instância de bi_polar_Stepper no sketch Arduino com os pinos do driver do motor de passo. Ou seja, deve-se especificar os pinos da placa Arduino usados para acionar o motor de passo.
  2. set_step_per_rev(int steps) – define o número de passos necessários pelo motor de passo para completar 1 revolução. Define o ângulo de passo (resolução de passo) do motor. Deve-se inserir o ângulo de passo do motor para controle preciso.
  3. set_RPM(int rpm) – define a velocidade do motor em RPM e o motor rotacionará na velocidade selecionada com até 95% de precisão.
  4. rotate_CW() – inicia a rotação do motor no sentido horário. Para rotacionar continuamente no sentido horário, deve-se usar esta função em loop contínuo.
  5. rotate_CCW() – inicia a rotação do motor no sentido anti-horário. Para rotacionar continuamente no sentido anti-horário, deve-se usar esta função em loop contínuo.
  6. rotate(int dir) – rotaciona o motor conforme a direção selecionada. Se direção for 1, motor rotaciona horário; se 0, anti-horário.
  7. rotate_one_rev(int dir) – rotaciona o motor exatamente 1 revolução na direção selecionada.
  8. rotate_n_rev(int dir, int num) – rotaciona o motor o número requerido de revoluções na direção selecionada.
  9. rotate_x_deg(int deg) – rotaciona o motor para o ângulo desejado de 0–360° em qualquer direção com 80–100% de precisão de ângulo.

Exemplos

1) Rotacionar motor continuamente em qualquer direção a 60 RPM

/* este programa rotaciona continuamente motor de passo bipolar
* com ângulo de passo 1.8° (200 passos/rev) a 60 RPM
* criado por Ashutosh Bhatt em 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200 // altere estes passos conforme o motor 
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 60;

void setup() {
  Serial.begin(9600); 
  Serial.println("teste da biblioteca bipolar stepper motor");
  my_step_motor.set_step_per_rev(steps);
  my_step_motor.set_RPM(rpm);
  Serial.println("motor rotaciona horário"); 
}

void loop() {
  my_step_motor.rotate_CW(); 
}

2) Rotacionar motor 1 revolução horária e 1 anti-horária continuamente

/* este programa rotaciona motor de passo bipolar
* com ângulo de passo 1.8° (200 passos/rev) 
* como 1 revolução horária (CW) e uma revolução 
* anti-horária (CCW) a 30 RPM continuamente
* criado por Ashutosh Bhatt em 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;

void setup() {
  Serial.begin(9600); 
  Serial.println("programa de teste da biblioteca bipolar stepper motor criado por Ashutosh Bhatt");
  my_step_motor.set_step_per_rev(steps);
  my_step_motor.set_RPM(rpm); 
}

void loop() {
  Serial.println("motor rotaciona horário"); 
  my_step_motor.rotate_one_rev(1);
  delay(1000);
  Serial.println("motor rotaciona anti-horário"); 
  my_step_motor.rotate_one_rev(0);
  delay(1000);
}

3) Rotacionar motor horário a 100 RPM e anti-horário a 50 RPM continuamente

/* este programa primeiro rotaciona motor de passo bipolar
* com ângulo de passo 1.8° (200 passos/rev) 
* horário (CW) por 2 revoluções a 100 RPM e depois 
* anti-horário (CCW) por 2 revoluções a 50 RPM
* continuamente
* criado por Ashutosh Bhatt em 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;

void setup() {
  Serial.begin(9600); 
  Serial.println("Bipolar stepper motor library test program created by Ashutosh Bhatt");
  my_step_motor.set_step_per_rev(steps);
}

void loop() {
  my_step_motor.set_RPM(100);
  for(i=0; i<100; i++) my_step_motor.rotate(1);
  delay(2000);
  my_step_motor.set_RPM(50);
  for(i=0; i<100; i++) my_step_motor.rotate(0); 
  delay(2000);
}

4) Rotacionar motor 4 revoluções horárias a 20 RPM e 2 anti-horárias a 10 RPM continuamente

/* este programa primeiro rotaciona motor de passo bipolar
* com ângulo de passo 1.8° (200 passos/rev) 
* 4 revoluções horárias (CW) a 20 RPM e depois 
* 2 revoluções anti-horárias (CCW) a 10 RPM
* continuamente
* criado por Ashutosh Bhatt em 12/12/16
*/
#include <bi_polar_Stepper.h>
#define steps 200
bi_polar_Stepper my_step_motor(2, 3, 4, 5);
int i;

void setup() {
  Serial.begin(9600); 
  Serial.println("Unipolar stepper motor library test program created by Ashutosh Bhatt");
  my_step_motor.set_step_per_rev(steps);
}

void loop() {
  my_step_motor.set_RPM(20);
  my_step_motor.rotate_n_rev(1, 4); 
  delay(2000);
  my_step_motor.set_RPM(10);
  my_step_motor.rotate_n_rev(0, 2); 
  delay(2000);
}

5) Rotacionar motor 90° horário e 90° anti-horário continuamente a 30 RPM

/* este programa rotaciona motor bipolar
* com ângulo de passo 1.8° (200 passos/rev) a 30 RPM para
* 90° CW e 90° CCW continuamente
* criado por Ashutosh Bhatt em 22/10/16
*/
#include <bi_polar_Stepper.h>
#define motor_steps 200
bi_polar_Stepper my_step_motor(8, 9, 10, 11);
int rpm = 30;

void setup() {
  Serial.begin(9600); 
  Serial.println("bipolar stepper motor library test program");
  my_step_motor.set_step_per_rev(motor_steps);
  my_step_motor.set_RPM(rpm);
  Serial.println("motor rotaciona 90 graus ida e volta"); 
}

void loop() {
  my_step_motor.rotate_x_deg(90);
  delay(2000);
  my_step_motor.rotate_x_deg(270); 
  delay(2000);
}

Nota: Se o motor de passo for de corrente e tensão mais altas, em vez do chip L293D, podemos usar o chip L298 ou um conjunto de 4 transistores Darlington separados como TIP122, TIP142, etc., para acionar motores de passo.

A biblioteca e programas de exemplo acima, junto com o circuito, foram testados com os seguintes motores de passo:

  1. Motor bipolar 2 fases com 5V, 100 RPM (MÁX), 200 passos/rev (1.8° ângulo de passo)
  2. Motor bipolar 2 fases com 5V, 60 RPM (MÁX), 200 passos/rev (1.8° ângulo de passo)

Código

Biblioteca Arduino para Motor de Passo Bipolar

A biblioteca controla RPM, direção, revoluções, ângulo de rotação de todos os tipos de motor de passo bipolar com 95% de precisão.

Disponível apenas para download (arquivo .zip da biblioteca).

Esquemáticos

Biblioteca Completa para Motor de Passo Bipolar com Arduino

Processo de manufatura

  1. Motores de Relutância Variável: Tipos, Operação e Aplicações
  2. Motores de Passo: Tipos, Características e Aplicações Práticas
  3. Drivers Integrados Simplificam Design de Motores Stepper de Alta Potência
  4. Sensor Telemetry 2.0.1 – Monitoramento Avançado de Temperatura com Azure IoT Hub
  5. Raspoulette: Protótipo de Sistema Autônomo de Porta de Galinheiro Alimentado por Energia Solar
  6. Torretas Sentry Nerf Autônomas DIY – Construa uma Arma Nerf Inteligente com Motores de Passo, Câmera e Arduino
  7. Deslizador Automático para Tinder e Bumble com Arduino UNO e Motor de Passo
  8. Motores Servo vs Passo a Passo: Esclarecendo a Zona Cinzenta Moderna
  9. Entendendo Motores Lineares: Da Energia Elétrica ao Movimento Linear Preciso
  10. Motores Servo Explicados: Como Funcionam e Por Que Importam