LIÇÃO19: Motor stepper.

Introdução

Os motores stepper estão localizados entre um motor DC normal e um servo motor. Eles têm a vantagem de que podem se posicionar com precisão, avançar ou recuar um passo de cada vez, mas também podem girar continuamente.

Nesta lição você aprenderá a controlar um motor de estepe usando seu Arduino e o mesmo chip de controle do motor L293D que usamos com o motor DC.

Componentes

 {Product:2000}{Product:256}{Product:1436}{Product:847}{Product:536}{Product:250}

Princípio

O motor de estepe tem cinco condutores, e desta vez usaremos as duas metades do L293D. Isso significa que há muitas conexões para fazer na placa protótipo. O motor tem uma tomada de 5 vias no final. Conecte os cabos da ponte às tomadas para permitir que o motor se conecte à placa do protótipo.

O esboço a seguir usa o Monitor Serial, portanto, uma vez instalado e em execução, abra o Monitor Serial e insira uma série de 'passos'.

Tente um valor de cerca de 500, isso deve fazer com que o motor gire cerca de 360 graus. Digite -500 e você retornará na direção inversa.

A biblioteca Stepper.h está incluída nas últimas distribuições IDE Arduino - você pode precisar atualizá-la.

Procedimento

Passo 1: Conecte o circuito conforme mostrado no diagrama a seguir (certifique-se de que os pinos estão conectados corretamente ou que os caracteres não são exibidos corretamente):

Nota. Neste exercício deixamos o cabo vermelho não conectado. Nosso motor unipolar 28BYJ-48, dirigimos como bipolar e movemos o motor pequeno por meio de uma simples Ponte H L293D. Nos próximos capítulos do nosso curso explicaremos as diferenças entre motores monomotores e bipolares.

Passo 2: Programa (veja código de amostra em CD ou site oficial)

/*

*/

#include

int in1Pin s 12;

int int in2Pin s 11;

int in3Pin s 10;

int int s 9;

Motor stepper(512, in1Pin, in2Pin, in3Pin, in4Pin);

configuração do vazio()

{

pinMode(in1Pin, OUTPUT);

pinMode(in2Pin, OUTPUT);

pinMode(in3Pin, OUTPUT);

pinMode(in4Pin, OUTPUT);

esta linha é para Leonardo, ele atrasa a interface serial

até que a janela do terminal seja aberta

enquanto (! Seriado);

Serial.start(9600);

engine.setSpeed(20);

}

loop vazio()

{

se (Serial.available())

{

int passos ? Serial.parseInt();

motor.step (passos);

}

}

Passo 3:Construa o programa

Passo 4:Registo do programa no Quadro Um

Como seria de esperar, há uma biblioteca Arduino para motores de estepe. Isso facilita muito o processo de uso de um motor.

Depois de incluir a biblioteca 'Stepper', os quatro pinos de controle 'in1' são definidos como 'in4'. Para dizer à biblioteca quais pinos estão conectados ao controlador do motor, o seguinte comando é usado:

Motor stepper(768, in1Pin, in2Pin, in3Pin, in4Pin);

O primeiro parâmetro é o número de "passos" que o motor dará para completar uma revolução. O motor pode ser movido passo a passo, para um posicionamento muito preciso. As comunicações seriais são então iniciadas para que o Arduino esteja pronto para receber comandos do monitor serial. Finalmente, o comando a seguir define a velocidade que queremos que o motor se mova passo a passo, quando mais tarde lhe dissermos quantos passos para girar.

engine.setSpeed(10);

A função 'loop' é muito simples. Aguarde que um comando chegue do monitor serial e converta o texto do número enviado para uma variável int usando a função 'parseInt'.

loop vazio()

{

se (Serial.available())

{

int passos ? Serial.parseInt();

motor.step (passos);

}

}

Serial.parseInt() retorna o primeiro inteiro válido do buffer serial. Para lembrar um número, você deve criar uma variável de tipo int. Em seguida, instrui o motor a girar esse número de passos.

Resumo do experimento

A. Os motores Stepper usam uma roda de roda e eletroímãs para empurrar a roda em torno de um "passo" de cada vez.

Ao fornecer corrente elétrica para as bobinas na ordem correta, o motor é circulado. O número de passos que o motor stepper tem em uma rotação de 360 graus é na verdade o número de dentes de engrenagem. O motor que estamos usando tem 48 passos, mas então o motor também incorpora um câmbio de redução de 1:16, o que significa que você precisa de 16 x 48 x 768 passos.

Nesta lição, não usamos a conexão vermelha comum. Esta conexão só é fornecida se você estiver usando um tipo diferente de circuito de unidade que não permite que você reverta a corrente em cada bobina.

Ter uma conexão central com cada bobina significa que você pode fornecer corrente elétrica para o lado esquerdo ou direito da bobina, e obter o efeito de reverter o fluxo de corrente sem ter que usar um circuito que possa reverter a corrente.

Como estamos usando um L293D que é muito bom para reverter a corrente, não precisamos dessa conexão comum, podemos fornecer corrente em qualquer direção para toda a de cada uma das bobinas.

B.Outras coisas que você pode fazer.

Tente alterar a função que define a velocidade do motor do estepe:

engine.setSpeed(20):

A um valor mais baixo (digamos 5) carregue o esboço e observe que o motor do estepe gira mais lentamente. Agora tente encontrar a velocidade máxima para o motor do estepe aumentando a velocidade acima de 20. Depois de um certo ponto, você vai descobrir que o motor não se move em tudo. Isso é porque você simplesmente não pode acompanhar a corrente de pulso, pedindo-lhe para dar um passo

Tente desconectar os fios laranja e rosa passo a passo. Você ainda tem que girar, mas você vai notar que ele é mais fraco, pois não tem ambas as bobinas trabalhando para empurrar o motor.