- 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 de circuito para motor rotativo de passo usando potenciômetro:
- Código para placa Arduino:
- Trabalhando:
Os motores de passo estão cada vez mais tomando sua posição no mundo da eletrônica. A partir de uma câmera de vigilância normal para máquinas CNC / robôs complicados, esses motores de passo são usados em todos os lugares como atuadores, uma vez que fornecem um controle preciso. Neste tutorial, aprenderemos sobre o motor de passo 28-BYJ48 mais comumente / barato disponível e como fazer a interface com o Arduino usando o módulo de passo ULN2003.
No último projeto, simplesmente fizemos a interface do motor de passo com o Arduino, onde você pode girar o motor de passo inserindo o ângulo de rotação no monitor serial do Arduino. Aqui neste projeto, vamos girar o motor de passo usando o potenciômetro e o Arduino, como se você girar o potenciômetro no sentido horário, então o passo girará no sentido horário e se você girar o potenciômetro no sentido anti-horário, ele girará no sentido anti-horário.
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.
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 de circuito para motor rotativo de passo usando potenciômetro:
O diagrama de circuito para o motor de passo de controle usando o potenciômetro e o 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. Um potenciômetro é conectado a A0 com base em cujos valores iremos girar o motor de passo.
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 Driver.
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 de demonstração completo pode ser encontrado no final deste tutorial.
Neste tutorial iremos programar o Arduino de forma que possamos girar o potenciômetro conectado ao pino A0 e controlar a direção do motor de passo. 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 no sentido horário, podemos usar a seguinte linha.
stepper.step (1);
Para fazer o motor se mover um passo no sentido anti-horário, podemos usar a seguinte linha.
stepper.step (-1);
Em nosso programa leremos o valor do pino analógico A0 e o compararemos com o valor anterior (Pval). Se aumentou, movemos 5 passos no sentido horário e se diminuiu, então movemos 5 passos no sentido anti-horário.
potVal = map (analogRead (A0), 0,1024,0,500); if (potVal> Pval) stepper.step (5); if (potVal
Trabalhando:
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, você deve girar o potenciômetro para controlar a rotação do motor de passo. Girá-lo no sentido horário girará o motor de passo no sentido horário e vice-versa.
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-as na seção de comentários abaixo ou em nossos fóruns.