Pessoal,

sou novo nesta área de programação e estou com dificuldades para parar um motor dentro de um loop sem que ele freie após o acionamento de um botão, estou usando o driver A4988 com alimentação em 24v, segue abaixo o código que estou usando:

int bot = A5;
int pino_eixo = 5;
int pino_direcao_eixo = 4;
int direcao_eixo = 1;
int passos_eixo = 2220;

void setup() {
Serial.begin(9600);
pinMode(bot, INPUT);
digitalWrite(bot,0);
pinMode(pino_eixo, OUTPUT);
pinMode(pino_direcao_eixo, OUTPUT);

}


void loop(){


int leitura = analogRead(bot);
if (leitura < 200){

}
else if (leitura >= 200 && leitura <=290){
Serial.println("botao 1");

direcao_eixo = 1;
digitalWrite(pino_direcao_eixo, direcao_eixo);
for (int p=0 ; p < passos_eixo; p++)
{
digitalWrite(pino_eixo, 1);
delay(1);
digitalWrite(pino_eixo, 0);
delay(1);
}
delay(1000);


}

}

esse código faz com que o motor gire o que preciso e pára, mas como não terá um
tempo determinado para um novo acionamento, ele fica freado recebendo pulsos, eu gostaria 
que ele não recebesse pulsos.

Exibições: 659

Responder esta

Respostas a este tópico

Então quando não tens o botão ativo tens de lhe dizer para parar os pulsos...

Amigo Pedro,

faço essa parada depois do delay(1000);?

colocando digitalWrite(pino_eixo, 0); após?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço