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);}}
Tags:
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por