- Motores de passo:
- Calculando os Passos por Revolução para Motor de Passo:
- Por que precisamos de módulos de driver para motores de passo?
- Diagrama do circuito de controle de posição do motor de passo Arduino e explicação:
- Código para placa Arduino:
- Trabalhando com motor de passo com Arduino:
Os motores de passo estão cada vez mais tomando sua posição no mundo da eletrônica. Desde uma câmera de vigilância normal até máquinas CNC / robôs complicados, esses motores de passo são usados em todos os lugares como atuadores, pois fornecem um controle preciso. Um motor de passo é um motor síncrono sem escovas que completa uma rotação completa em várias etapas. Neste tutorial de motor de passo do Arduino, aprenderemos sobre o motor de passo 28-BYJ48 mais comumente disponível e como fazer a interface com o Arduino usando o módulo de motor de passo ULN2003.
Motores de passo:
Vamos dar uma olhada neste motor de passo 28-BYJ48.
Ok, então ao contrário de um motor DC normal, este tem cinco fios de todas as cores extravagantes saindo dele e por que é assim? Para entender isso, devemos primeiro saber como funciona um stepper e qual é sua especialidade. Em primeiro lugar, os motores de passo não giram, eles andam e, por isso, também são conhecidos como motores de passo. Ou seja, eles se moverão apenas um passo de cada vez. Esses motores têm uma sequência de bobinas presentes neles e essas bobinas devem ser energizadas de uma maneira particular para fazer o motor girar. Quando cada bobina está sendo energizada o motor dá um passo e uma sequência de energização fará com que o motor dê passos contínuos, fazendo-o girar. Vamos dar uma olhada nas bobinas presentes dentro do motor para saber exatamente de onde vêm esses fios.
Como você pode ver, o motor possui um arranjo de bobina Unipolar de 5 derivações. Existem quatro bobinas que devem ser energizadas em uma seqüência particular. Os fios vermelhos serão fornecidos com + 5V e os quatro fios restantes serão puxados para o terra para acionar a respectiva bobina. Usamos um microcontrolador como o Arduino para energizar essas bobinas em uma sequência específica e fazer o motor executar o número necessário de etapas.
Então agora, por que esse motor é chamado de 28-BYJ48 ? A sério!!! Eu não sei. Não há razão técnica para este motor ter esse nome; talvez devêssemos mergulhar muito mais fundo nisso. Vejamos alguns dos dados técnicos importantes obtidos na folha de dados deste motor na imagem abaixo.
Essa é uma cabeça cheia de informações, mas precisamos olhar algumas importantes para saber que tipo de stepper estamos usando para que possamos programá-lo com eficiência. Primeiramente sabemos que é um motor de passo de 5V, pois energizamos o fio vermelho com 5V. Então, também sabemos que é um motor de passo de quatro fases, uma vez que tinha quatro bobinas. Agora, a relação de transmissão é de 1:64. Isso significa que o eixo que você vê do lado de fora fará uma rotação completa apenas se o motor interno girar 64 vezes. Isso porque as engrenagens que estão conectadas entre o motor e o eixo de saída, ajudam no aumento do torque.
Outro dado importante a ser observado é o Ângulo de Passada: 5,625 ° / 64. Isso significa que o motor quando opera na sequência de 8 etapas se moverá 5,625 graus para cada etapa e levará 64 etapas (5,625 * 64 = 360) para completar uma rotação completa. Você pode aprender mais sobre como trabalhar com motores de passo com ARM LPC2148, Microcontrolador ATMega16, MSP430.
Calculando os Passos por Revolução para Motor de Passo:
É importante saber como calcular os passos por revolução para seu motor de passo porque só assim você poderá programá-lo com eficácia.
No Arduino, estaremos operando o motor em uma sequência de 4 etapas, de modo que o ângulo de passada será de 11,25 °, já que é 5,625 ° (fornecido na ficha técnica), para a sequência de 8 etapas será 11,25 ° (5,625 * 2 = 11,25).
Passos por revolução = 360 / ângulo de passo
Aqui, 360 / 11,25 = 32 passos por revolução.
Por que precisamos de módulos de driver para motores de passo?
A maioria dos motores de passo operará apenas com a ajuda de um módulo driver. Isso ocorre porque o módulo do controlador (em nosso caso, Arduino) não será capaz de fornecer corrente suficiente de seus pinos de E / S para o motor operar. Portanto, usaremos um módulo externo como o módulo ULN2003 como driver de motor de passo. Existem muitos tipos de módulo de driver e a classificação de um mudará com base no tipo de motor usado. O princípio primário para todos os módulos do driver será fornecer / absorver corrente suficiente para o motor operar.
Diagrama do circuito de controle de posição do motor de passo Arduino e explicação:
O diagrama de circuito para o projeto de controle de motor de passo Arduino é mostrado acima. Usamos o motor de passo 28BYJ-48 e o módulo de driver ULN2003. Para energizar as quatro bobinas do motor de passo, estamos usando os pinos digitais 8,9,10 e 11. O módulo do driver é alimentado pelo pino de 5 V da placa Arduino.
Porém, alimente o driver com fonte de alimentação externa quando estiver conectando alguma carga ao motor de estepe. Como estou usando o motor apenas para fins de demonstração, usei o trilho de + 5V da placa Arduino. Lembre-se também de conectar o aterramento do Arduino com o aterramento do módulo Diver.
Código para placa Arduino:
Antes de começarmos a programar com nosso Arduino, vamos entender o que realmente deve acontecer dentro do programa. Como dito anteriormente, usaremos o método de sequência de 4 etapas, portanto, teremos quatro etapas a serem executadas para fazer uma rotação completa.
Degrau |
Pin energizado |
Bobinas Energizadas |
Passo 1 |
8 e 9 |
A e B |
Passo 2 |
9 e 10 |
B e C |
etapa 3 |
10 e 11 |
C e D |
Passo 4 |
11 e 8 |
D e A |
O módulo Driver terá quatro LEDs com os quais podemos verificar qual bobina está sendo energizada a qualquer momento. O vídeo que mostra a sequência de energização pode ser encontrado no final deste tutorial.
Neste tutorial vamos escrever o código do motor de passo do arduino e para isso programaremos o Arduino de forma que possamos inserir o número de passos a serem executados pelo motor de passo através do monitor serial do Arduino. O programa completo pode ser encontrado no final do tutorial, algumas linhas importantes são explicadas abaixo.
O número de passos por revolução para nosso motor de passo foi calculado em 32; portanto, inserimos isso conforme mostrado na linha abaixo
#define PASSOS 32
Em seguida, você deve criar instâncias nas quais especificamos os pinos aos quais conectamos o motor de passo.
Stepper stepper (STEPS, 8, 10, 9, 11);
Nota: O número dos pinos é desordenado como 8,10,9,11 propositalmente. Você deve seguir o mesmo padrão, mesmo que mude os pinos aos quais seu motor está conectado.
Como estamos usando a biblioteca de passo do Arduino, podemos definir a velocidade do motor usando a linha abaixo. A velocidade pode variar entre 0 e 200 para motores de passo 28-BYJ48.
stepper.setSpeed (200);
Agora, para fazer o motor se mover um passo, podemos usar a seguinte linha.
stepper.step (val);
O número de passos a serem movidos será fornecido pela variável “val”. Já que temos 32 etapas e 64 como a relação de engrenagem, precisamos mover 2048 (32 * 64 = 2048), para fazer uma rotação completa.
O valor da variável “val” pode ser inserido pelo usuário usando o monitor serial.
Trabalhando com motor de passo com Arduino:
Assim que a conexão for feita, o hardware deve ser parecido com o da figura abaixo.
Agora, carregue o programa abaixo em seu Arduino UNO e abra o monitor serial. Conforme discutido anteriormente, teremos que dar 2048 passos para fazer uma rotação completa, então quando entrarmos em 2048 o motor fará uma rotação completa no sentido horário, dando 2048 passos. Para girar no sentido anti-horário, basta inserir o número com “-“ sinal negativo. Portanto, inserir -1024 fará o motor girar até a metade no sentido anti-horário. Você pode inserir quaisquer valores desejados, como inserir 1 fará com que o motor dê apenas uma etapa.
Espero que você tenha entendido o projeto e gostado de construí-lo. O funcionamento completo do projeto é mostrado no vídeo abaixo. Se você tiver alguma dúvida, poste-os na seção de comentários abaixo ou em nossos fóruns.