Arduino Motor de Passo ajuda

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
    }
}
1 Like

Tens dois problemas que ainda não resolveste...

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.

@pedrozeti2008 ,

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?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.