Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
fabriciofg

Controlando Motor de passo

Recommended Posts

Olá para todos. Estou desenvolvendo um novo projeto onde aciono um motor de passo utilizando um drive Uln2003 como do anuncio abaixo:

produto.mercadolivre.com.br/MLB-245813642-motor-passo-5v-rabicho-uln2003-arduino-robotica-em-estoque-_JM#questionText

Estou utilizando algo bem simples para isso como:

#include <16f628a.h>

#use delay(clock=4000000)

#fuses xt,put,NOwdt,protect,NOLVP,NOCPD,INTRC_IO,BROWNOUT,NOMCLR //atual

//ENTRADA botão

#define botao1 pin_a1

//saida led

#define motor1 pin_a2

void main(VOID){

while (true){

if (input(botao1))

{

output_high(motor1);

}

}

}

Poderia controlar a velocidade dele com este drive ?

:eek:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para você controlar um motor de passo unipolar, você deve ligar cada bobina em uma sequência pré-definida. Não é como controlar motores dc escova.

Usando o ULN2003 você aciona cada bobina de um motor de passo unipolar. Existem 2 formas principais de se acionar um motor de passo unipolar:

1) Simples (4 Passos):

Basta acionar uma bobina de cada vez na sequência correta:

UnipolarMotors.jpg

2) Completo (8 Passos):

Melhora o torque e a precisão do motor. Para cada bobina acionada existe um estado de transição em que 2 bobina são acionadas ao mesmo tempo:

step_motor8.jpg

O tempo base de todos os pulsos influencia diretamente a velocidade de rotação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala galera. Consegui fazer o bicho rodar mais ta muito lento. Já tentei de tudo mas ele não varia muito a velocidade. Preciso bem mais rápido do que está.

Vejam o código:

#include <16f628a.h>

#use delay(clock=4000000)

#fuses xt,put,NOwdt,protect,NOLVP,NOCPD,INTRC_IO,BROWNOUT,NOMCLR //atual

#define DELAY 50

#define SWEEP 12

#define NUMSTEPS 4

//saida led

#define led pin_a2

char STATUS,RP0;

char step[] = {5, 9, 10, 6};

void main(void) {

char i;

bit_set(STATUS, RP0);

set_tris_b(0);

bit_clear(STATUS, RP0);

i = 0;

while(1) {

output_high(led);// ascende led piloto

output_b(step);

delay_ms(20);

if(i == 0)

{

i = 4;

}

else

{

i--;

}

}

}

Alguém pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é cara parece que aprendeu mesmo a utilizar o motor de passo.... eles são lerdos assim mesmo e não a muito o que fazer a não ser que mude de motor de passo e coloque motores com angulos de movimento maiores.... como neles você tem que energizar bobina por bobina e esperar o movimento chegar ao seu final... ele se torna lento e se o anglo de movimento por passo for pequeno vishhhh ai que demora mesmo eles são pra precisão e torque e não velocidade includive achei incrivel a velocidade com que o motor de passso se move nesse video

esse motor tem alguma modificação não é possivel :) hsuhsuhs kkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×