O meu motor é de 1,8º por passo e, pretendia que ele avançasse
24º de cada vez com tempo de stop entre paragens de 5 segundos.
Haverá algum comando que eu possa inserir aqui no meu código, para que o motor realize essa tarefa?
obrigado
/* Pinos de Configuração do Deslocamento (no Easy Driver):
//////////////////////////////////////////////
// MS1 MS2 //
// //
// LOW LOW = Passo completo //
// HIGH LOW = Meio passo //
// LOW HIGH = Quarto de Passo //
// HIGH HIGH = Oitavo de Passo //
// //
//////////////////////////////////////////////
*/
#define step_pin 3 // Define o pino 3 como pino dos passos
#define dir_pin 2 // Define o pino 2 como pino de direção
#define MS1 5 // Define o pino 5 como "MS1"
#define MS2 4 // Define o pino 4 como "MS2"
int direcao; // Para determinar o sentido do motor
int passos = 200; // Número de passos que você deseja executar (para passos completos, 200 = 1 volta)
void setup() {
pinMode(MS1, OUTPUT); // Configura "MS1" como saída
pinMode(MS2, OUTPUT); // Configura "MS2" como saída
pinMode(dir_pin, OUTPUT); // Configura "dir_pin" como saída
pinMode(step_pin, OUTPUT); // Configura "step_pin" como saída
digitalWrite(MS1, LOW); // Configura divisão de passos do motor (ver acima)
digitalWrite(MS2, LOW); // Configura divisão de passos do motor (ver acima)
digitalWrite(dir_pin, LOW); // Sentido (HIGH = anti-horário / LOW = horário) - Também pode ser alterado
}
void loop() {
while(passos>=0) { // Enquanto o valor de passos for maior ou igual a zero
digitalWrite(step_pin, HIGH); // Envia nível lógico alto para o pino de passos do motor
delay(5); // Aguarda 5ms para o próximo passo
digitalWrite(step_pin, LOW); // Envia nível lógico baixo para o pino de passos do motor
delay(5); // Aguarda 5ms para o próximo passo
passos--; // Decrementa a variável "passos"
}
}
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por