Arduino Brz
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Tutorial] Motor de Passo 28-BYJ-48

Ir para baixo

[Tutorial] Motor de Passo 28-BYJ-48 Empty [Tutorial] Motor de Passo 28-BYJ-48

Mensagem por Admin 24/1/2017, 00:44

Ola povo[3] bounce , O projeto de hoje é bem legal, Motores de Passo Cool Laughing. Pode parecer complicado, e realmente é um pouco Shocked, mas com uso das bibliotecas do arduino, você não precisa de um alto conhecimento sobre funcionamento dos motores de passo. Entretanto, você deve no minimo, se informar sobre as caracteristicas do seu modelo (bipolar, unipolar, numero de steps, etc, etc). Não se esqueça de usar uma fonte externa caso seu motor use +500mA, tome cuidado !

Atenção, neste exemplo, estou usando as configurações do MEU MOTOR, USE AS SUAS!

Materiais Utilizados:

1 - Motor de Passo 28-BYJ-48 + Driver ULN2003.
1 - Arduino (Qualquer modelo).
E muitos fios para ligar esse unico motor lol! .

Circuito:

[Tutorial] Motor de Passo 28-BYJ-48 D2aaNwg

Este meu motor, é bem famoso e simples para projetos pequenos a onde nao se exige muito Torque. Basicamente é um motor Unipolar de 64 Passos com uma Redução de 64x, logo o deixa com 4096 passos para completar 1 volta.

Datasheet:http://robocraft.ru/files/datasheet/28BYJ-48.pdf

Vamos ao Código!

Código:

#include <AccelStepper.h>

AccelStepper motor1(4, 26, 27, 28, 29);//Motor FULL4WIRE, ligado aos pinos z,y,x,w.

int graus = 90;//Mude aqui quantos graus você quer que o motor gire.

void setup()
{
 motor1.setCurrentPosition(0);
}

void loop()
{
 mathgraus();
}

void mathgraus()
{
 float math1 = int(graus / 0.17578125);//2048 passos (0.17578125)
 motor1.moveTo(math1);
 
 while (motor1.distanceToGo() != 0)
 {
 motor1.setMaxSpeed(256);
 motor1.setSpeed(64);
 motor1.runSpeedToPosition();
 }
 
 motor1.disableOutputs();
}

Por alguma razao, meus 2 motores 28BYJ, Estao com 2048 passos para completar uma volta, mas tudo bem. Para saber quantos passos você precisa dar para "Andar X graus", faça:

360/STEPS, a onde steps são os passos para completar uma volta no seu motor. No meu caso foi 360/2048, que me gerou 0,17 graus por Passo!. Ainda pesquisarei mais para entender esse "Erro" Acima que citei.

Este codigo nao esta implementado a opçao de inverter a direção da rotação, que deve ser feita com SetPinsInverted, Veja na pagina oficial da biblioteca abaixo.

Download e TODOS comandos relacionados à biblioteca:

http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
Admin
Admin
Admin

Mensagens : 7
Data de inscrição : 21/01/2017
Idade : 25
Localização : Bauru

https://arduinobrz.directorioforuns.com

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos