Ir ao conteúdo
  • Cadastre-se

Controlando Motor de passo


fabriciofg

Posts recomendados

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:

Link para o comentário
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.

Link para o comentário
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 ?

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...