Alguém poderia me ajudar? Eu tenho um sensor ligado na porta A0, onde o sensor varia a tensão de entrada entre 0 a 5 volts nessa porta, consequentemente, o motor irá girar pra direita ou esquerda.
Como eu faria para o motor parar, quando o valor lido na porta A0 fosse 0 volt?
Segue abaixo o programa:
**********************************************************************
int multiplier = 25; //change this depending if you need the stepper to move more or less
#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(){
stepper.setMaxSpeed(motorSpeed);
stepper.setSpeed(motorSpeed);
stepper.setAcceleration(motorAccel);
}
void loop(){
int positionToGoTo = analogRead(A0);
stepper.moveTo(positionToGoTo * multiplier);
//these must be called as often as possible to ensure smooth operation
//any delay will cause jerky motion
stepper.run();
}
Tags:
Você está usando um Acelerômetro para controle do Motor?
Não é acelerômetro. Esse sensor detecta altura de um parafuso. O motor de passo irá girar pra direita ou esquerda, ou seja, vai apertar ou soltar o parafuso. Terá que parar quando a altura estiver no ponto zero(0 volt)
Faça um teste com esta lib pra controlar os motores:
http://labdegaragem.com/forum/topics/lib-arduino-para-rob-com-motor...
Acho que vc vai ter mais controle sobre o movimento.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por