Biblioteca de motor de passo bipolar
Componentes e suprimentos
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Aplicativos e serviços online
![]() |
|
Sobre este projeto
Anteriormente, forneci uma biblioteca Arduino para motores de passo do tipo unipolar. Ele controla perfeitamente a velocidade, direção, número de rotações, ângulo do motor, etc., todos os parâmetros de motores de passo do tipo unipolar. Mas era apenas para motores de passo do tipo unipolar. Como sabemos, o motor de passo também pode ser do tipo bipolar. Mas esta biblioteca não pode controlar o motor de passo do tipo bipolar. Então, decidi desenvolver outra biblioteca Arduino para controlar o motor de passo do tipo bipolar
Portanto, apresento aqui a biblioteca de motores de passo bipolares no Arduino para todos os motores de passo do tipo bipolares. A biblioteca possui 9 funções diferentes que podem ser usadas para girar e controlar o motor de acordo com os requisitos. A biblioteca foi projetada de acordo com o controle de movimento industrial requisitos. Aqui estão alguns dos recursos desta biblioteca
1. Controla qualquer motor de passo bipolar
2. Controla a direção de rotação do motor
3. Controla com precisão o número de revoluções do motor como 1, 2, 3, 4, .....
4. Controla com precisão a velocidade do motor em RPM com 95% de precisão
5. Gira o motor com precisão para o ângulo desejado entre 0 - 360o com 80-100% de precisão
6. Compatível com todas as placas arduino

As breves descrições de todas as funções da biblioteca são fornecidas aqui. Alguns exemplos são dados a seguir que explicam como o motor é controlado usando esta biblioteca. Também é fornecido um vídeo que mostra a demonstração desses exemplos. Por fim, é sugerido o circuito que usa o chip L293D - amplamente utilizado como driver H-bridge para motores DC, bem como motores de passo bipolar.
Para usar esta biblioteca em seu esboço do Arduino, basta copiar o bi_polar_Stepper pasta no diretório raiz da pasta da biblioteca do arduino como C:\ arduino-1.6.7 \ libraries
Descrição das funções da biblioteca:
1) bi_polar_Stepper (intpin1, int pin2, int pin3, int pin4) - isso criará uma instância de bi_polar_Stepper no esboço do Arduino com pinos de driver de motor de passo. Significa que é preciso especificar os pinos da placa Arduino que são usados para conduzir o motor de passo
2) set_step_per_rev (intsteps) - esta função definirá o número de etapas exigidas pelo motor de passo para completar 1 revolução. Significa que ele definirá o ângulo do passo (resolução do passo) do motor. Deve-se inserir o ângulo de passo do motor para um controle preciso
3) set_RPM (int rpm) - esta função irá definir a velocidade do motor em RPM e o motor irá girar na velocidade selecionada com até 95% de precisão
4) rotate_CW () - esta função começará a girar o motor no sentido horário. Para girar o motor no sentido horário continuamente, é necessário usar esta função em loop contínuo
5) rotate_CCW () - esta função começará a girar o motor no sentido anti-horário. Para girar o motor no sentido anti-horário continuamente, é necessário usar esta função em loop contínuo
6) rotate (int dir) - esta função irá girar o motor de acordo com a direção selecionada. Se a direção for dada como 1, o motor irá girar no sentido horário e vice-versa
7) rotate_one_rev (intdir) - esta função irá girar o motor exatamente 1 revolução na direção selecionada
8) rotate_n_rev (int dir, intnum) - esta função irá girar o motor necessário para o número de revoluções nas direções selecionadas
9) rotate_x_deg (int deg) - esta função irá girar o motor para o ângulo desejado de 0 a 360o em qualquer direção com precisão de ângulo de 80 a 100%
Exemplos:
1) Gire o motor continuamente em qualquer direção a 60 RPM
/ * este programa irá girar continuamente o motor de passo bipolar
* com ângulo de passo de 1,8 graus (200 passos / rev) a 60 RPM
* criado por Ashutosh Bhatt em 12/12/16
* /
#include
# definir etapas 200 // alterar essas etapas de acordo com o motor
bi_polar_Stepper my_step_motor (8, 9, 10, 11);
int rpm =60;
void setup ()
{
// coloque seu código de configuração aqui, para ser executado uma vez:
Serial.begin (9600);
Serial.println ("programa de teste de biblioteca de motor de passo bipolar");
my_step_motor.set_step_per_rev (etapas);
my_step_motor.set_RPM (rpm);
Serial.println ("motor gira no sentido horário");
}
void loop ()
{
my_step_motor.rotate_CW ();
}
2) Gire o motor uma volta no sentido horário e uma volta no sentido anti-horário continuamente
/ * este programa irá girar o motor de passo bipolar
* com ângulo de passo de 1,8 graus (200 passos / rev)
* como 1 revolução no sentido horário (CW) e uma revolução
* sentido anti-horário (CCW) a 30 RPM continuamente
* criado por Ashutosh Bhatt em 12/12/16
* /
#include
# definir etapas 200
bi_polar_Stepper my_step_motor (8, 9, 10, 11);
int rpm =30;
void setup ()
{
// coloque seu código de configuração aqui, para ser executado uma vez:
Serial.begin (9600);
Serial.println ("programa de teste de biblioteca de motor de passo bipolar criado por Ashutosh Bhatt");
my_step_motor.set_step_per_rev (etapas);
my_step_motor.set_RPM (rpm);
}
void loop ()
{
Serial.println ("motor gira no sentido horário");
my_step_motor.rotate_one_rev (1);
atraso (1000);
Serial.println ("motor gira no sentido anti-horário");
my_step_motor.rotate_one_rev (0);
atraso (1000);
}
3) Gire o motor no sentido horário a 100 RPM e anti-horário a 50 RPM continuamente
/ * este programa irá girar primeiro o motor de passo bipolar
* com ângulo de passo de 1,8 graus (200 passos / rev)
* sentido horário (CW) por 2 revoluções a 100 RPM e então
* sentido anti-horário (CCW) por 2 revoluções a 50 RPM
*continuamente
* criado por Ashutosh Bhatt em 12/12/16
* /
#include
# definir etapas 200
bi_polar_Stepper my_step_motor (2, 3, 4, 5);
int i;
void setup ()
{
Serial.begin (9600);
Serial.println ("Programa de teste de biblioteca de motor de passo bipolar criado por Ashutosh Bhatt");
my_step_motor.set_step_per_rev (etapas);
}
void loop ()
{
my_step_motor.set_RPM (100);
para (i =0; i <100; i ++) my_step_motor.rotate (1);
atraso (2000);
my_step_motor.set_RPM (50);
para (i =0; i <100; i ++) my_step_motor.rotate (0);
atraso (2000);
}
4) Gire o motor 4 rotações no sentido horário a 20 RPM e 2 rotações no sentido anti-horário a 10 RPM continuamente
/ * este programa irá girar primeiro o motor de passo bipolar
* com ângulo de passo de 1,8 graus (200 passos / rev)
* 4 rotações no sentido horário (CW) a 20 RPM e então
* 2 rotações no sentido anti-horário (CCW) a 10 RPM
*continuamente
* criado por Ashutosh Bhatt em 12/12/16
* /
#include
# definir etapas 200
bi_polar_Stepper my_step_motor (2, 3, 4, 5);
int i;
void setup ()
{
Serial.begin (9600);
Serial.println ("Programa de teste de biblioteca de motor de passo unipolar criado por Ashutosh Bhatt");
my_step_motor.set_step_per_rev (etapas);
}
void loop ()
{
my_step_motor.set_RPM (20);
my_step_motor.rotate_n_rev (1, 4);
atraso (2000);
my_step_motor.set_RPM (10);
my_step_motor.rotate_n_rev (0, 2);
atraso (2000);
}
5) Gire o motor 90o no sentido horário e 90o no sentido anti-horário continuamente a 30 RPM
/ * este programa irá girar o motor bipolar
* com ângulo de passo de 1,8 graus (200 passos / rev) a 30 RPM para
* 90 graus CW e 90 graus CCW continuamente
* criado por Ashutosh Bhatt em 22/10/16
* /
#include
#define motor_steps 200
bi_polar_Stepper my_step_motor (8, 9, 10, 11);
int rpm =30;
void setup ()
{
// coloque seu código de configuração aqui, para ser executado uma vez:
Serial.begin (9600);
Serial.println ("programa de teste de biblioteca de motor de passo bipolar");
my_step_motor.set_step_per_rev (motor_steps);
my_step_motor.set_RPM (rpm);
Serial.println ("motor gira 90 graus para frente e para trás");
}
void loop ()
{
my_step_motor.rotate_x_deg (90);
atraso (2000);
my_step_motor.rotate_x_deg (270);
atraso (2000);
}
Nota:-Se o motor de passo for de corrente e tensão maiores do que em vez do chip L293D, podemos usar o chip L298 ou um conjunto de 4 transistores Darlington separados, como TIP122, TIP142, etc., que podem ser usados para acionar motores de passo.
A biblioteca fornecida e os programas de exemplo junto com o circuito acima são testados com os seguintes motores de passo
1) Motor bipolar de 2 fases com 5 V, 100 RPM (MAX), 200 passos / rev (ângulo de 1,8o)
2) Motor bipolar de 2 fases com 5V, 60 RPM (MAX), 200 passos / rev (ângulo de passo 1,8o)
Código
- Biblioteca Arduino para motor de passo bipolar
Biblioteca Arduino para motor de passo bipolar C / C ++
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ãoSem visualização (somente download).
Esquemas
Este circuito aciona e controla RPM, direção, ângulo de rotação, número de revoluções do motor de passo bipolar
Processo de manufatura
- Motor de relutância
- Motores de passo
- Drivers integrados facilitam o design do motor de passo
- Telemetria do Sensor 2.0.1
- Protótipo da Raspoulette
- Torre Sentinela Nerf Autônoma
- Swiper - Auto Tinder / Bumble Swiper
- A área cinzenta entre servomotores e motores de passo
- O que é um Motor Linear?
- O que é um servo motor?