Pessoal, preciso dar um home nos motores de uma maquina que estou construindo, não e uma impressora 3 d nem uma cnc, depois que eu terminar meu projeto posso ate postar aqui para todos verem. Esta maquina tem 3 motores que antes de começarem os trabalhos tem que estar numa posicao inicial, pensei em colocar no void setup() uma funcao trazendo todos eles para uma posição inicial, ou seja, daria uma comando para um motor ir para esquerda ate atingir um microswith(chave fim de curso) e desligar. Ate sei fazer o contrario, fazer um motor ser acionado depois que a chave fim de curso for pressionada, mas o contrario nao estou sabendo.

Alguem sabe como posso fazer isso? Nao estou usando biblioteca para motores de passo estou usando  Motor de Passo NEMA23 - 1.8° - Híbrido - 15Kgf/cm com drive 2m542.

 

Exibições: 6293

Responder esta

Respostas a este tópico

Penso que a melhor forma é fazer algo tipo o exemplo do push button do Arduino, so que ao inves de usar o btn, pode usar o micro switch.

Quando detectar o pulso por uma porta do arduino, pode inverter a rotação do motor e andar para o outro lado.

Daria certo assim ?

[]´s

Jota

Testei algumas coisas, nao sei se esta correto, mas o codigo abaixo funcionou bem. Meu código original e bem maior para ficar mais simples de entender o que fiz estou postando algo mais simplificado caso alguém um dia possa precisar.


int dir = 10;
int pulse = 11;
int velocidade = 700;
int passo = 2000;

void setup() {
pinMode(dir, OUTPUT);
pinMode(pulse, OUTPUT);
pinMode(5,INPUT); //pino analogico, aonde esta ligado o endstop//
analogWrite(5,1);
}

void loop() {

for (int i = 0; i< passo; i++)
{
movimentoantihora();
}
}

void movimentoantihora()
{
int leitura = analogRead(5);// obs.: ligar o endstop no NC assim quando a chave for apertada o motor desliga, com o a ligacao em NO ocorre o inverso//
if(leitura == 0){
digitalWrite(dir, HIGH); // HIGH sentido antihorario, se for mudar a direcao colocar LOW//
digitalWrite(pulse, HIGH);
delayMicroseconds(velocidade);
digitalWrite(pulse, LOW);
delayMicroseconds(velocidade);
} else {
analogWrite(pulse,LOW);
}
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço