Boa tarde, estou com dificuldades para programar um Sensor de Proximidade Infravermelho E18-D80NK para poder desligar o motor de passo enquanto o portão estiver aberto e o veículo passando por ela...

Consegui fazer a programação do RFId + Motor de Passo ... o arquivo segue em anexo...

ficarei muito grato pela ajuda para solucionar o  problema.

Exibições: 461

Anexos

Responder esta

Respostas a este tópico

Olá Argel,  só esclarecendo, a IDE do arduino usa arquivo de texto ASCII. Então se você modificar a extensão   .ino para .txt e vice-versa, não vai alterar o arquivo.

boa tarde Argel, qual seria o formato ideal para ser anexado? o que enviei foi feito no bloco de notas salvo com a extensão .txt

Olá.

Não usei a biblioteca stepper tão profundamente, mas diria que o problema está na forma como ela está sendo usada.

Usando o comando:

.runToNewPosition()

Vc comanda e tudo que pode fazer é esperar que o motor vá até a posição desejada. Vc (o microcontrolador) não pode fazer mais nada. 

Se a ideia é poder controlar o motor durante esse salto de posição, eventualmente parando, acredito que o caminho seria fazer os posicionamentos "na unha".

Vejo que o programa está bem organizado e otimizado, do jeito que vou sugerir vai ficar um pouco mais complicado, mas não sei se há outra forma.

A ideia seria criar um loop for() para a posição do motor no lugar do runToNewPosition().

Dentro desse loop vc precisa ter um delay e a verificação do sensor.

Caso o sensor tenha atuado o ideal ainda seria não só parar, mas recuar um pouco.

Esse delay também pode ser inteligente, vindo de uma equação que determine a velocidade. Ele acelerando teria um delay maior, já acelerado um menor. Basicamente é assim que se fazia antes da existencia das bibliotecas.

boa tarde Eduardo, esse laço "loop for()" seria o que na programação?

já pesquisei e não encontrei nada parecido...

bom dia...

eu coloquei o seguinte programa>>>

estado_sensor = digitalRead(pino_sensor);
if (estado_sensor == 1)
stepper1.runToNewPosition(-2048);
Serial.println("Movimento Detectado...!");
delay(30);

neste caso o sensor detecta o obstáculo e para o motor, assim que o sensor é desbloqueado o motor não volta ao normal, fica travado...

é o caminho certo ?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço