Variar velocidade motor de passo com funções matémáticas

Boa noite pessoal!

Estou fazendo um projeto com motores de passo aqui e parei no lugar.  A ideia é trabalhar com dois motores de passo independentes. Até ai tudo bem. O que não consigo implementar é um sistema para variar a velocidade dos motores. Mas essa não deve ser um valor fixo e sim modulada por exemplo por uma função seno ou cosseno. Assim, as velocidades ficariam variadas.

A velocidade dos motores está em velocidade_1 e velocidade_2

int stepPin1 = 7;
int dirPin1=10;

int stepPin2 = 6;
int dirPin2=9;


int dirState1 = LOW;
int stepState1 =LOW;
long previousMicros1 = 0;

int dirState2 = LOW;
int stepState2 =LOW;
long previousMicros2 = 0;

long velocidade_1 = 600;
long velocidade_2 = 1000;

void setup()

{pinMode(dirPin1, OUTPUT);
pinMode(stepPin1, OUTPUT);

pinMode(dirPin2, OUTPUT);
pinMode(stepPin2, OUTPUT);

digitalWrite (dirPin1, LOW);
digitalWrite (dirPin2, HIGH);}

void loop()
{unsigned long currentMicros1 = micros();
unsigned long currentMicros2 = micros();

if(currentMicros1 - previousMicros1 > velocidade_1) {
previousMicros1 = currentMicros1;

if (stepState1 == LOW)
stepState1 = HIGH;
else
stepState1 = LOW;
digitalWrite(stepPin1, stepState1);}

if(currentMicros2 - previousMicros2 > velocidade_2) {
previousMicros2 = currentMicros2;

if (stepState2 == LOW)
stepState2 = HIGH;
else
stepState2 = LOW;
digitalWrite(stepPin2, stepState2);}}

Exibições: 234

Responder esta

Respostas a este tópico

só a titulo de curiosidade, você já viu a diferença de valores?

em que sentido?

Por favor não cole código na área de texto do tópico.

fica poluído e perde caractere e formatação.

Remova o que vc postou e anexe como arquivo clicando no

pequeno clip acima da tela.

RV mineirin

Bom dia, 

Sugestão para estudos:

Essas bibliotecas são fantásticas. Já testei.

https://github.com/Stan-Reifel/SpeedyStepper

https://github.com/Stan-Reifel/SpeedyStepper/blob/master/Documentat...

https://github.com/Stan-Reifel/FlexyStepper

https://github.com/Stan-Reifel/FlexyStepper/blob/master/Documentati...

Veja as fórmulas aqui:

// This stepper motor driver is based on Aryeh Elderman's paper "Real Time Stepper
// Motor Linear Ramping Just By Addition and Multiplication". See:
// www.hwml.com/LeibRamp.pdf

Maravilha José!  Muito obrigado! Esta sendo útil.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço