From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussão sobre Produtos NI

cancelar
Mostrando resultados para 
Pesquisar então 
Você quer dizer: 

MOTOR DE PASSO

Olá, tudo bem? 

 

Venho pedir ajuda a vcs com relação ao controle de um motor de passo usando o Labview e Arduino. Montei o programa, rodou tudo direitinho, mas a rotação ficou em 6 rpm. Um amigo meu fez apenas usando o Arduino e conseguiu 14rpm. Tem como otimizar a velocidade com que o Labview faz a leitura do programa? Obrigado! 

 

Att, Eduardo. 

obs: segue a foto do programa. 

0 Kudos
Mensagem 1 de 5
3.797Exibições

Olá, 

Tenta com a função que se segue:

 

https://www.labviewmakerhub.com/doku.php?id=learn:libraries:linx:reference:labview:digital-write-squ...

Software developer
www.mcm-electronics.com





PORTUGAL
0 Kudos
Mensagem 2 de 5
3.769Exibições

Tentei aqui mas não consegui fazer o motor girar (provavelmente ignorância minha) usando o que você sugeriu 😕 Mas obrigado mesmo assim! 

0 Kudos
Mensagem 3 de 5
3.757Exibições

Bom dia,

 

O teu amigo consegue uma velocidade superior à tua porque não tem o delay introduzido por cada comunicação. Por exemplo, com um baudrate de 9600 demoras mais ou menos 1ms para enviar 1byte.

Para que consigas aumentar a velocidade do motor podes com a tua aplicação original :

- aumentar o baudrate se ainda for possível 

- tentar reduzir o número de comunicações 

 

Com a função que te sugeri eu diria que devia funcionar. Mas eu nunca cheguei a usar o linx. Fiquei pelo lifa. Mandando um palpite... Se mandas o motor rodar alguns segundos e ele sai imediatamente daquele vi pode querer dizer que o tens de meter num loop. Mas isto é inventar sem saber como funciona 

Software developer
www.mcm-electronics.com





PORTUGAL
0 Kudos
Mensagem 4 de 5
3.743Exibições

Boa Tarde, Eduardo. Como vai?

 

Eu concordo com as sugestões feitas pelo Jorge para a melhoria de velocidade. No entanto, como não sabemos como seu circuito de controle de motor funciona, não dá para dar uma ajuda mais pontual.

 

Até onde me lembro, existem duas formas de controlar motores de passo com um Arduino:

 

1. Usando um driver de motor como o EasyDriver, no qual há uma entrada Digital para determinar o sentido de rotação e uma entrada que aceita um trem de pulsos (a função Digital Write Square Wave seria adequada nesse caso) que determina a velocidade do motor. Esses drivers são mais completos e mais simples de serem utilizados. Esse tutorial explica como utilizá-lo;

 

Eu estou com o Jorge nessa! Não tenho 100% de certeza porque também nunca usei o Linx, mas tudo indica que, se você utiliza um driver como o EasyDriver, você certamente vai atingir uma velocidade maior que 6RPM, mesmo usando o Linx


2. Utilizando simplesmente um ULN 2003 para controlar o Drive.  Aí faria mais sentido fazer a rotação de bits direto no código do Arduino, como dá para ver nesse tutorial.

 

Esse vídeo mostra como seria as estratégias de geração de pulsos para controle do motor.

 

Eu acredito que esse método não seja muito interessante se você está buscando velocidade, porque exige que muitos comandos sejam trocados entre o LabVIEW e o Arduino para ficar chaveando o motor. Mas, se você ainda quiser utilizar esse método, provavelmente terá que deixar o Linx de lado e fazer códigos customizados tanto para o Arduino quanto para o LabVIEW para conseguir uma velocidade de rotação interessante.


Qual desses métodos é mais próximo da sua aplicação?

 

Atenciosamente,

Felipe Flores
Applications Engineer II
National Instruments Brazil



0 Kudos
Mensagem 5 de 5
3.731Exibições