Pessoal,
Gostaria de saber como faço para acelerar e desacelerar um motor de passo sem usar a biblioteca Accelstepper? Sou novato no arduino, consegui montar este codigo, no qual apos acionamento de uma chave de liga/desliga, o motor gira no sentido horario e antihorario. Contudo o mesmo ao iniciar o loop, esta dando uns trancos na maquina que estou construindo, balançando-a. Senso assim gostaria de acelera-lo, alguém pode me ajudar?
EStou usando:
Arduino Uno;
motor passo nema 23
drive - 2m542-N
codigo
int i = 0;
int dir1 = 8;
int passo1 = 9;
int distancia = 1300;
int pausa = 100;
int velox1 = 300;
int liga = 5;
void setup() {
pinMode(dir1, OUTPUT);
pinMode(passo1, OUTPUT);
pinMode(liga,INPUT);
digitalWrite(liga,1);
}
void loop() {
int leitura = digitalRead(5);
if(leitura == 0){
for (int i = 0; i< distancia; i++)
{
motor1horario();
}
delay(pausa);
for (int i = 0; i< distancia; i++)
{
motor1antihorario();
}
delay(pausa);
digitalWrite(passo1, LOW);
}
}
// funçoes//
void motor1horario()
{
digitalWrite(dir1, HIGH);
digitalWrite(passo1, HIGH);
delayMicroseconds(velox1);
digitalWrite(passo1, LOW);
delayMicroseconds(velox1);
}
void motor1antihorario()
{
digitalWrite(dir1, LOW);
digitalWrite(passo1, HIGH);
delayMicroseconds(velox1);
digitalWrite(passo1, LOW);
delayMicroseconds(velox1);
}
Tags:
Não conheço este driver, contudo a "aceleração" de qualquer motor de passo é feita pela variação da velocidade dos pulsos em cada passo.
A máquina dando trancos pode significar que a velocidade inicial está muito alta ou que o motor está rodando e parando muito rápido.
Eu coloquei aceleração entre parêntesis no início, porque esse comando na verdade varia a rotação do motor. Controle de aceleração é algo bem mais complexo.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por