Bom dia pessoal, estou com este código de motor de passo, preciso de um help de qual código usar e onde usar, para fazer com que o MOTOR gire por um tempo e depois pare, com o acionamento por botão.Se me ajudarem, ficarei grato
#include "Stepper.h" // declaração biblioteca Motor de passo
int PassosPorVolta = 100; // Passos para dar uma volta
int Pino_botao1 = 6; // pino do primeiro botão
int Pino_botao2 = 7; // pino do segundo botão
Stepper MotorStepper(PassosPorVolta, 8, 10, 9, 11); // Instância motor e pinos de comando
void setup() {
pinMode(Pino_botao1,INPUT_PULLUP);
pinMode(Pino_botao2,INPUT_PULLUP);
MotorStepper.setSpeed(600); // Configura a velocidade por rpm:
}
void loop(){
if (digitalRead(Pino_botao1) == LOW ) { // Verifica se botão 1 foi pressionado
MotorStepper.step(-PassosPorVolta); // Gira motor no sentido anti horário
}
if (digitalRead(Pino_botao2) == LOW) { // Verifica se botão 2 foi pressionado
MotorStepper.step(PassosPorVolta); // Gira motor no sentido horário
}
}
Um, tens de medir tempo. Pesquisa pelo exemplo blink without delay para veres o mecanismo.
O outro problema é criar um encravamento para que quando a tecla for pressionada, o sistema fique a andar e depois desligar o encravamento quando o temporizador acabar. Pegando um pouco no que já tens:
unsigned char rodaMotor =0;
unsigned long tempoMotor = 0;
void loop() {
if (digitalRead(Pino_botao1) == LOW ){ // carregaram no botão.
rodaMotor = 0;
//inicia temporizador...
tempoMotor = millis();
}
if (rodaMotor == 1) {
//aqui colocas o código para rodar o motor.
if (millis() - tempoMotor > 30000) { //queremos rodar por 30 segundos.
rodaMotor = 0; //desliga motor.
//possivelmente colocas aqui código para desligar o motor. Não sei como funciona essa biblioteca.
}
Muito obrigado amigo, no caso do "código para desligar o motor" eu queria apenas que ele parasse de girar mas continuasse com o motor ligado, você sabe sobre?
O que queres dizer com parar de girar mas ficar ligado? Isso parece-me algo mais relacionado com o circuito que vais usar para o montar e não tanto programação propriamente dita.
para que possa ajudar, preciso entender melhor seu projeto.
Qual "arduino" voce está usando?
Que tipo de motor de passo vc está usando? 4 fios 5 fios?
Qual driver voce esta usando para controlar o motor de passo?
Poste um esquemático do seu projeto, mesmo que seja feito a mão livre.
Voce quer dizer, manter o motor travado mas sem girar?