Olá galera, meu nome é Wellington sou novo por aqui e no Arduíno também e gostaria de pedir sua ajuda.

A questão é a seguinte, no meu TCC da faculdade preciso fazer o controle de 3 motores de passo, um deles deve girar constantemente, outros dois devem fazer parte de um ciclo quando eu solicitar. Toda essa programação foi feita com sucesso na IDE do Arduino, exceto por uma coisa.

Criei 3 funções: Void Stepper
Void Atuador 1
Void Atuador 2

No void loop coloquei:

void loop()
/*Acionamento do motor da esteira*/
{
stepper();

/*Acionamento do atuador 1*/

atuador1();

/*Acionamento do atuador 1*/

atuador2();
}

Necessito que a função stepper() nunca pare, ou seja seu loop seja intermitente mesmo quando o atuador1 e atuador2 forem acionados. Mas acontece é que na programação sei que isso não acontece pela ordem dos comandos colocados no loop, pois quando passa ao atuador1(), parado meu motor que ficou no comando anterior, o stepper().

Seria possível fazer isso manter a função em funcionamento quando eu entrar em outra?

O código completo está em anexo para quem precisar ver.

Tudo isso é um controle de uma esteira selecionadora, que tem um motor de giro, dois para fazer seleção com cancelas acopladas sob comando de sensores.

Espero que possam ajudar.

Exibições: 3617

Anexos

Responder esta

Respostas a este tópico

Vc pode usar a biblioteca AccelStepper.h. Ela roda em background, ou seja, vc aciona o motor e ele continua acionando enquanto seu programa segue. No meu blog tem um exemplo: http://automatobr.blogspot.com.br/2013/02/robo-cartesiano-com-ardui...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço