Ola, Estou com um problema de velocidade no motor de passo que não passa de 32 RPM.

Minha configuração de hardware:

fonte atx > já utilizei 12 volts, agora estou com 24 volts. utilizando o fio azul(-12)como negativo e amarelo(+12) como positivo;

driver hy-div268-5a > fullstep 1/1 ,200 passos por volta;

arduino uno;

Estou utilizando a porta de PUL (pulso) Digital 3(PWM); e utizando o comando

PORTD = B00001000 ;
delayMicroseconds(passo*4);
PORTD = B00000000 ;
delayMicroseconds(passo*4);

segue o código como anexo .

Exibições: 2440

Anexos

Responder esta

Respostas a este tópico

Olá.

  Meça as tensões com ele ligado. Acho que a fonte está "arregando". Pq essas fontes de PC fornecem grande corrente para 3.3V e 5V. As vezes para 12V mas para -12V não.

  Mande fotos, videos, modelo do driver....

  Motor de passo normalmente não se liga com PWM.

  Existem integrados driver com PWM mas é outra coisa. Eles tem isso internamente, como um limitador de corrente. Acontece que pelo fenomeno da autoindução a corrente no motor parado é maior que com ele andando. O PWM corrige isso. Mas é feito por detecção de corrente, dentro do driver.

Eu liguei 12v como positivo + 12v como negativo e liguei no driver; medi no multimetro e deu 23,4 volts.

 Quando eu disse pwm, quis dizer que a saida digital 3 que pode gerar pulsos pwm com o analogWrite(), nao aumentou a velocidade.Já usei pinMode(), analogWrite() e agora PORTD;

O que você acha que é?

O motor vibra um pouco, faz um barulho de vibração.

obrigado

Eduardo H. Marcondes

O segundo led do driver hy-div268n-5a esta sempre acesso,mesmo sem atividade do motor. Li que isso indica erro, mas nao sei como pode estar dando esse erro.

Amanham vou fazer um video demonstrando o funcionamento.

abraços 

Bom dia RA,

" Eu liguei 12v como positivo + 12v como negativo e liguei no driver; medi no multimetro e deu 23,4 volts."

eu entendi errado ou você ligou o  o -12V no polo positivo do módulo e  +12V no polo negativo?

    ligou assim?

      + Positivo DIV268  [ ]    - 12V 

      - negaitivo DIV268  [ ]   + 12V

Se ligou assim , acho melhor encomendar outro módulo.

"O segundo led do driver hy-div268n-5a esta sempre acesso,mesmo sem atividade do motor. "

Veja no  detalhe e no esquema o que é o 2o. LED.

Um dos LEDs acende com o power ligado e o outro com pulsos de step.

Abaixo detalhe e esquema do módulo:

Bom dia.

Eu liguei +12v no positivo e -12v no negativo.

li no datasheet que o segundo led indica ações e erro.Dependo de quando ligo o arduino, se esta no menu inicial ele fica sempre ligado , quando entro no sub menu o led apaga e funciona normalmente.(estranho).

o motor vibra,é normal? Li que não,mas não sei na lógica(programação) como arrumar.

Minha fonte é feia.

Anexos

Bom dia , 

Favor enviar uma foto das chaves de configuração que você configurou. 

Não use o manual para configurar ! Alguns manuais estão incorretos.

Use a tabela que esta gravada na caixa preta do módulo. 

http://labdegaragem.com/forum/topics/driver-para-motor-de-passo-nem...

http://labdegaragem.com/forum/topics/tb6600-m-dulo-controlador-hy-d...

Bom dia.

Coloquei a fotos acima.

Eu liguei as chavinhas de acordo como própria carcaça do driver mostra, o que ahcei estranho é que em alguns fórum(s) esta invertido. "Use a tabela que esta gravada na caixa preta do módulo." Foi exatamente o que fiz.

Como faço para relacionar os pulsos por segundo?

Ok, eu não tinha visto as fotos. 

Chaves 1,2, 5 e 6 ON = 

Corrente = 2,5 A e Modo de Passo Completo . 

Favor informar as especificações do seu motor. Ele aguenta 2,5 A ?

Como faço para relacionar os pulsos por segundo?

http://labdegaragem.com/forum/topics/driver-para-motor-de-passo-nem...

Pode fazer um teste com esse programa :

http://labdegaragem.com/forum/topics/driver-para-motor-de-passo-nem...

Altere essas linhas, se o Sketch não funcionar:

   digitalWrite(ENA, HIGH);       // Desativa o driver TSB6600
delay (50); // Atraso de 50 milisegundo
digitalWrite(ENA, LOW); // Ativa o driver TSB6600

O motor que uso é um Motor de Passo NEMA 23 - 30 kgf.cm / 3A 

Vi e Li os links, muito bom.

Não sabia que precisava colocar um capacitor 100uf entre a fonte e o driver. Que tipo de capacitor eu coloco?Para que serve esse capacitor?

Eu estou utilizando as portas do arduino: Isso pode influenciar?Acredito que não.

#define motor A3    //EN habilita o motor
#define dir A4         //DIR determina a direção
#define pul 3           //PUL  Digital PWM

Quando eu coloco um delay muito baixo,(quase 0) faz um barulho agudo e não gira; mas o led fica aceso sem pisca de tão rápido.

obrigado Murta e todos pelas respostas , pois estou precisando mesmo. 

utilizei o seu algoritmo no arduino e não funcionou.

o driver pisca como um "coração", mas o motor não faz nada .

Quando utilizo esse algoritmo funciona certo.
const int ena = 7; //habilita o motor
const int dir = 3; //determina a direção
const int pul = 2; //executa um passo
const int intervalo = 2000; //intervalo entre as mudanças de estado do pulso (1/2 passo min 450)(1/16 passo min 50)

boolean pulso = LOW; //estado do pulso

void setup()
{
pinMode(ena, OUTPUT);
pinMode(dir, OUTPUT);
pinMode(pul, OUTPUT);

digitalWrite(ena, LOW); //habilita em low invertida
digitalWrite(dir, LOW); // low CW / high CCW
digitalWrite(pul, HIGH); //borda de descida

}

void loop()
{
pulso = !pulso; //inverte o estado da variável
digitalWrite(pul, pulso); //atribui o novo estado à porta
delayMicroseconds(intervalo);
}

Por que será

Bom dia Rodrigo, 

No caso do Driver HY-DIV268, não há necessidade do capacitor de 100 uF. 

Esse diagrama foi baseado em outro que eu fiz para outro tipo de driver. 

Você percebeu que na minha montagem, eu usei portas diferentes?

Você tem que refazer a sua montagem usando as portas corretas, de acordo com o meu diagrama.

int ENA = 7;              // Porta digital D07 - ativa (enable) 
int DIR = 3; // Porta digital D03 - direção (direction)
int PUL = 2; // Porta digital D02 - passo(step)

Altere essas linhas, para o  Sketch  funcionar:

   digitalWrite(ENA, HIGH);       // Desativa o driver TSB6600
delay (50); // Atraso de 50 milisegundo
digitalWrite(ENA, LOW); // Ativa o driver TSB6600
 

Por que esta usando as portas analógicas na sua montagem ? As portas AX normalmente são usadas para sinais analógicos. 

Envie uma foto de como esta fazendo a montagem ( mostre o Driver e o Arduino) . 

define motor A3    //EN habilita o motor    
#define dir A4         //DIR determina a direção
#define pul 3           //PUL  Digital PWM

Veja se esse é o Datasheet do seu motor :

https://s3.amazonaws.com/uploads.hipchat.com/610734/4190088/hBrA30I...

Todo motor de passo tem uma frequência máxima para uso. Se ultrapassar essa frequência o motor começa a vibrar e para ! 

Na tabela, pode perceber que o PPS máximo é de aproximadamente  4500 pulsos por segundo.

Sugiro que faça testes com até 2000 pps, quando o torque cai para menos da metade ! 

O seu Sketch esta correto, ma pode melhorar.

O que define a largura do pulso é esse Delay :

const int intervalo = 2000;       //intervalo entre as mudanças de estado do pulso (1/2 passo min 450)(1/16 passo min 50)

delayMicroseconds(intervalo); 

Para intervalo = 2000 :

Nesse exemplo, a largura do pulso é de 2 x 2000 microsegundos = 4000 microsegundos

F = 1 / T = 1 / 4000 us =  250 Hz ou 250 pps 

Para 2000 pps :

const int intervalo = 2000;  

T = 1 / F = 1/ 2000 = 500 us 

Portanto intervalo =  T / 2 = 500 us / 2 = 250 microsegundos 

const int intervalo = 250; 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço