
Olá pessoal.
Acho que se você trabalhou com o arduino + nema 17, sabe que pode ser muito difícil iniciar vários motores ao mesmo tempo.
Existem diferentes maneiras de resolver esse problema, o mais fácil, talvez, é usar a biblioteca NemaStepper. A biblioteca simplifica essa tarefa várias vezes, a principal vantagem é que ela não interrompe o programa. Está instalado, assim como todas as outras bibliotecas. Distribuído sob licença do MIT.
Bem, vamos começar. E vamos começar conectando.
Usaremos o Simple Nema 17 com aliexpress por 500 rublos, o driver L298N e o arduino uno. Aqui estão elas:



- No exemplo, mostrarei quatro drivers conectados ao arduino, apesar de usar apenas um.
- Existem muitos tutoriais sobre como conectar o Nema 17 na Internet, então não vou descrevê-lo em detalhes aqui.
Então, conectamos o motor ao motorista:


A biblioteca é orientada a objetos. Vejamos um exemplo de ligação de um motor:
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); void Setup(){ Stepper1.SetStepCount(100);
Todos os métodos da biblioteca podem ser encontrados nos arquivos de código-fonte da biblioteca (há uma descrição no cabeçalho da biblioteca).
* Mais sobre o código no exemplo.
E agora para o exemplo.
A biblioteca possui um exemplo embutido (no momento em que está sozinho), que permite controlar três motores com o Serial de uma só vez.
Este exemplo aceita os seguintes comandos para a porta.
Vamos desmontar.
Vamos começar com o cabeçalho - conectando bibliotecas:
A seguir, três motores são declarados, com os seguintes parâmetros:
1. Primeiro pino
2. Segundo pino
3. terceiro pino
4. Quarto pino
5. O número de etapas por rotação - a maioria dos motores Nema 17 tem 200.
6. velocidade inicial
7. Um valor indicando se deve manter o eixo após a parada (se verdadeiro, os motoristas se tornam um churrasco)
NemaStepper Stepper1(2, 3, 4, 5, 200, 10, false); NemaStepper Stepper2(6, 7, 8, 9, 200, 10, false); NemaStepper Stepper3(10, 11, 12, 13, 200, 10, false);
Próxima inicialização da porta:
void setup() { Serial.begin(9600); }
Então, IMPORTANTE! No loop principal, você precisa atualizar a posição dos mecanismos com o comando Step ().
void loop() { if (IsStepperEnabled == true){ Stepper1.Step(); Stepper2.Step(); Stepper3.Step(); } GetCommandFromSerial(); }
A seguir, é apresentada uma sub-rotina que recebe dados da porta, liga / desliga os motores, define a velocidade, os freios e a rotação.
void GetCommandFromSerial() { if (Serial.available() > 0) {
E então, vamos tentar fazer o download para o quadro.
Carregado?
Depois, entramos no monitor da porta e inserimos os comandos do código.
Cada comando termina com um /.
Os três primeiros caracteres são o nome da equipe.
Isso entre o nome e / - parâmetros.
Vamos ligar os motores com o comando “EMS /” (Ativar MotorS).
Em seguida, indicaremos a velocidade 60 do motor 1 com o comando "SS160 /" (velocidade definida), onde 60 é a velocidade.
E, finalmente, ligue o primeiro motor com o comando “MV1100 /”, (MoVe), em que 100 é o número de rotações.
Tudo funciona. Viva.
O mesmo com o resto dos motores.
Bem, onde conseguir a biblioteca.
A biblioteca pode ser baixada agradecendo ao criador, seguindo o link, indicando o preço real:
NemaStepper ObterObrigado pela leitura, espero que meu artigo tenha ajudado.
Quando eu estava procurando uma solução para o meu problema, ela acabou sendo a única biblioteca adequada.