motor de passo não para completamente ao chegar no fim de curso

meu motor continua funcionando mesmo chegando no fim de curso... mais tipo beeeem mais lento viu.  tipo não corta a corrente toda.  to usando arduino... configuração do drive ta em  3.2 amp. e o pulse em 3200..

soluções ae galera.?!!!

Exibições: 473

Responder esta

Respostas a este tópico

O que esta usando para detectar o fim de curso ?

Um sensor ótico ? 

Ou um encoder no disco do motor de passo  ? 

ola amigo... to usando um micro switch.   tbm tentei usando apenas o jumper para desligar e deu na mesma...

Oi RF, boa tarde.

que tal postar com mais detalhes a sua construção elétrica, e qual soft/código

está usando para comandar seu motor?

Rui

fala rui blz cara.

int Distance = 0;
int stepsCalc;
int stepsResult;

int readEndPointUpPin = 0; // verify state pin

//variaveis
int PulPin = 10; // pin pulse +
int DirPin = 11; // pin dir +
int EnblPin = 12; // pin enable +


//configure steps
int steps = 200; // Record the number of steps we've taken

void setup() {
pinMode(DirPin, OUTPUT);
pinMode(PulPin, OUTPUT);
pinMode(EnblPin, OUTPUT);

digitalWrite(DirPin, LOW); // LOW ou HIGH muda o sentido da rotação
digitalWrite(PulPin, LOW);
digitalWrite(EnblPin, LOW);

Serial.begin(9600);
Serial.println("iniciar");

// function enable
digitalWrite(EnblPin, HIGH);
delay(100);
digitalWrite(EnblPin, LOW);
}

void loop() {

digitalWrite(PulPin, HIGH);
delayMicroseconds(100);
digitalWrite(PulPin, LOW);
delayMicroseconds(100);
Distance = Distance + 1; // record this step


// distance step motor
stepsCalc = 1600/200; //1600 uma volta completa dividindo pelo numero de passo
stepsResult = stepsCalc * steps;

// Check to see if we are at the end of our move
if (Distance == stepsResult) //volta completa
{
// We are! Reverse direction (invert DIR signal)
if (digitalRead(DirPin) == LOW)
{
digitalWrite(DirPin, HIGH);
}
else
{
digitalWrite(DirPin, LOW);
}
// Reset our distance back to zero since we're
// starting a new move
Distance = 0;
// Now pause for half a second
delay(5000);
}

}

Envie o código que esta usando....

int Distance = 0;
int stepsCalc;
int stepsResult;

int readEndPointUpPin = 0; // verify state pin

//variaveis
int PulPin = 10; // pin pulse +
int DirPin = 11; // pin dir +
int EnblPin = 12; // pin enable +


//configure steps
int steps = 200; // Record the number of steps we've taken

void setup() {
pinMode(DirPin, OUTPUT);
pinMode(PulPin, OUTPUT);
pinMode(EnblPin, OUTPUT);

digitalWrite(DirPin, LOW); // LOW ou HIGH muda o sentido da rotação
digitalWrite(PulPin, LOW);
digitalWrite(EnblPin, LOW);

Serial.begin(9600);
Serial.println("iniciar");

// function enable
digitalWrite(EnblPin, HIGH);
delay(100);
digitalWrite(EnblPin, LOW);
}

void loop() {

digitalWrite(PulPin, HIGH);
delayMicroseconds(100);
digitalWrite(PulPin, LOW);
delayMicroseconds(100);
Distance = Distance + 1; // record this step


// distance step motor
stepsCalc = 1600/200; //1600 uma volta completa dividindo pelo numero de passo
stepsResult = stepsCalc * steps;

// Check to see if we are at the end of our move
if (Distance == stepsResult) //volta completa
{
// We are! Reverse direction (invert DIR signal)
if (digitalRead(DirPin) == LOW)
{
digitalWrite(DirPin, HIGH);
}
else
{
digitalWrite(DirPin, LOW);
}
// Reset our distance back to zero since we're
// starting a new move
Distance = 0;
// Now pause for half a second
delay(5000);
}

}

não  sou eu que estou programando ok... tem um cara que faz a noite pra mim.  por isso não tenho muita noção..      mais se puder me ajudar em algo... fico agradecido.   

RF,

e o o esquema de ligações do motor e do switch.

Rui

fios ligados do drive no arduino

 pino 10.   

 pino 11.   

 pino 12.

 o pino 9 é o que esta recebendo o GND como sinal.

o drive é o microstep drive md 556.

 portas de entrada to usando.

 arduino pino 10 no pulse+ 5v + do drive

 arduino pino 11 no dir + 5v + do drive

arduino pino  12 no ena+ 5v + do drive

as entradas do drive pulse-    dir-   e ena-   estão jampeados.

ligação do motor no drive.

preto a+

verde a-

vermelho b+

azul b-.

 

 

 ele sai do gnd e entra na porta 9 do arduino..    te mandei todo o esquema ai da uma olhada.

fios ligados do drive no arduino

 pino 10.   

 pino 11.   

 pino 12.

 o pino 9 é o que esta recebendo o GND como sinal.

o drive é o microstep drive md 556.

 portas de entrada to usando.

 arduino pino 10 no pulse+ 5v + do drive

 arduino pino 11 no dir + 5v + do drive

arduino pino  12 no ena+ 5v + do drive

as entradas do drive pulse-    dir-   e ena-   estão jampeados.

ligação do motor no drive.

preto a+

verde a-

vermelho b+

azul b-.

 

 

E o micro switch switch?

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço