Mobile
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'.
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.