Olá pessoal tenho que fazer um projeto com arduino que consiste em movimentar 4 motores de passo, e preciso de ligar um fim de curso nos motores para quando eu ligar o arduino ele ver se o motor está no fim de curso se não estiver ele move o motor até o fim de curso para criar tipo um home uma posição inicial para os motores para partirem os trabalhos daquele ponto pois ai saberei quanto devo mandar os motores andar para concluir o trabalho, e também vai que os motores estão andando e acaba a energia com eles no meio ai também ele verifica se ta no fim do curso e se não tiver manda pra lá,

to começando agora e não fiz nenhum código ainda, tenho 3 sensores aqui que tirei de uma impressora velha, um optico com 3 fios um de contato 2 fios e outro q é não sei explicar mas tem 2 fios também.

uso motores de passo 6kgf 6 fios ligados em bipolar tenho 2 drivers tb6560 e 2 ponte h L298N de 2A arduono mega R3

já ta tudo ligado e os motores funcionando, to pensando em usar accelstepper ou até mesmo stepper.h o que me atender e for mais fácil.

cheguei a fazer alguns códigos dentro do void setup visto que basta executar o código uma vez quando ligar o arduino e pronto, tentei fazer uns ifs lendo o estado das portas mas não deu nada, se tiver algum jeito também de ler variáveis em tempo de execução do código também seria bom saber isso.

desde já agradeço

Exibições: 406

Responder esta

Respostas a este tópico

Oi RRS, boa noite,

post o código que escreveu (Como arquivo Anexado), para avaliarmos,

e assim sugerir melhorias.

Rui

Olá Rui obrigado pela resposta, se eu disser a vc que não tenho nem codigo ainda vc vai pensar pocha mais que kra folgado, mas te garanto que não sou folgado, é que eu tentei uns codigos que achei aqui no forum outros na internet mas não aconteceu nada, eu fiz o seguinte liguei o sensor em uma porta analogica e fiz pinMode(sensor, INPUT) ai fiz sensor == analogRead(5); ai deu um if sensor == 0) indica que está aberto então move o motor uns 500 passos até bater no sensor "e nem sei aqui o que fazer para ele parar quando bater no sensor"mas não acontece nada e nem sei se vai dar certo colocar isso no setup, vou tentar hoje a noite escrever um novo codigo e posto em seguida dando certo ou não.

Não é bem o que você está fazendo, mas é quase isso. Deve te ajudar:

http://pastebin.com/dyUVH8Hz

Gostaria de agradecer a todos vocês e dizer que achei um código que faz o home do motor e até aqui está dando certo com um dos sensores que tenho apesar dele ser do contrario ele fica fechado e abre quando o motor bate nele mas vi que funcionou e bem no setup como eu queria segue o código se for de ajuda para alguém.

#include <AccelStepper.h>

AccelStepper stepper1(1, 7, 6);

const int homeButton = 2;
byte hBval;

//contributed by Runaway Pancake 9/2/13
void stepperHome(){ //this routine should run the motor
  hBval = digitalRead(homeButton);
  while (hBval == HIGH)
  {
    //backwards slowly till it hits the switch and stops
    stepper1.moveTo(-3200);
    stepper1.run();
    hBval = digitalRead(homeButton);
  }
  stepper1.setCurrentPosition(0); //should set motor position to zero and go back to main routine
}

void setup(){
  stepper1.setMaxSpeed(500); //nice and slow for testing
  stepper1.moveTo(-3200);
  stepper1.setAcceleration(500);
  pinMode(homeButton, INPUT);
  stepperHome(); //runs routine to home motor
}
void loop(){

}

veja o sensor que eu disse o menor foi o que não funcionou e o grandão foi o que funcionou mas tive que trocar HIGH PARA LOW pois ele é fechado e abre quando o motor vai bater nele analisando este código com o que tentei fazer notei algo de burrice minha, estava usando um inteiro para armazenar o HIGH OU LOW e o kra usou um byte de toda forma eu testei o sensor com o multímetro e ele ta normal mas não funciona, se puderem indicar os sensores pra eu comprar todos iguais fico agradecido mais ainda.

um abraço a todos.

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço