Por favor, alguém poderia me ajudar!
O programa abaixo faz o seguinte:
O motor gira no sentido horário "digitalWrite(motorDirPin, LOW);"
Quando o sensor chegar no parâmetro "614", o motor para de girar. " if (positionToGoTo > 614)"
Mas se o sensor estiver acima de 650, como eu faria pra fazer o motor girar sentido anti-horário?
A condição seria essa:
Se o valor menor que 614, motor gira sentido horário.
Entre 614 e 650 o motor fica parado
Se o valor for maior que 650, motor gira sentido anti-horário
*****************************************************************************
int multiplier = 10; //change this depending if you need the stepper to move more or less
int ledPin = 13;
#include <AccelStepper.h>
int motorSpeed = 9600; //maximum steps per second (about 3rps / at 16 microsteps)
int motorAccel = 80000; //steps/second/second to accelerate
int motorDirPin = 2; //digital pin 2
int motorStepPin = 3; //digital pin 3
//set up the accelStepper intance
//the "1" tells it we are using a driver
AccelStepper stepper(1, motorStepPin, motorDirPin);
void setup(){
pinMode (ledPin, OUTPUT);
stepper.setMaxSpeed(motorSpeed);
stepper.setSpeed(motorSpeed);
stepper.setAcceleration(motorAccel);
}
void loop(){
int i;
int sensorA = analogRead(A1); // Stepper motor cylinder cab position down detect
if (sensorA <50){
digitalWrite(motorDirPin, LOW); // Set the direction.
delay(300);
for (i = 0; i<400; i++)
{
digitalWrite(motorStepPin, LOW); // This LOW to HIGH change is what creates the
digitalWrite(motorStepPin, HIGH); // "Rising Edge" so the easydriver knows to when to step.
delayMicroseconds(500);
}
int positionToGoTo = analogRead(A0);
stepper.moveTo(positionToGoTo * multiplier);
stepper.run();
if (positionToGoTo > 614){ // Setting for to search position zero
digitalWrite(ledPin, HIGH);
delay (5000);
digitalWrite(ledPin, LOW);
}
}
}
Tags:
Seguinte cara, como vc ta acionando este motor de passo? com algum driver de corrente? unipolar ou bipolar?
não tem segredo, é só acionar as bobinas em uma sequencia para o motor girar em um sentido, e inverter essa sequencia para ele mudar o sentido.
Se o valor for X acionar sentido horario
Se o valor for y não acionar as bobinas e o motor para.
Se o valor for z acionar bobinas em sequencia inversa
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por