- Modos de operação em motor de passo
- Criação da interface gráfica do usuário MATLAB para controlar o motor de passo
- Código MATLAB para controlar o motor de passo com Arduino
- Material Necessário
- Diagrama de circuito
- Motor de passo de controle com MATLAB
Os motores de passo são motores CC sem escova que gira em etapas discretas e são a melhor escolha para muitas aplicações de controle de movimento de precisão. Além disso, os motores de passo são bons para posicionamento, controle de velocidade e aplicações que requerem alto torque em baixa velocidade.
Em tutoriais anteriores do MATLAB, explicamos como usar o MATLAB para controlar o motor DC, servo motor e eletrodomésticos. Hoje vamos aprender como controlar o motor de passo usando MATALB e Arduino. Se você é novo no MATLAB, é recomendável começar com o programa simples de piscar de LED com MATLAB.
Modos de operação em motor de passo
Antes de começar a codificar para um motor de passo, você deve compreender o conceito de funcionamento ou rotação de um motor de passo. Como o estator do modo de passo é construído com diferentes pares de bobinas, cada par de bobinas pode ser excitado em muitos métodos diferentes, permitindo que os modos sejam acionados em muitos modos diferentes. A seguir estão as classificações gerais
Modo de Passo Completo
No modo de excitação de passo completo, podemos atingir uma rotação completa de 360 ° com um número mínimo de voltas (etapas). Mas isso leva a menos inércia e também a rotação não será suave. Existem outras duas classificações em Full Step Excitation, elas são um modo de passo em fase de onda e dois modos de fase em.
1. Uma etapa de ativação ou etapa de onda: Neste modo, apenas um terminal (fase) do motor será energizado a qualquer momento. Isso tem menos número de etapas e, portanto, pode atingir uma rotação completa de 360 °. Como o número de etapas é menor, a corrente consumida por este método também é muito baixa. A tabela a seguir mostra a sequência de passo de onda para um motor de passo de 4 fases
Degrau | Fase 1 (azul) | Fase 2 (rosa) | Fase 3 (amarelo) | Fase 4 (laranja) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Stepping em duas fases : Como o nome indica neste método, duas fases serão uma. Ele tem o mesmo número de etapas que a etapa de onda, mas como duas bobinas são energizadas por vez, pode fornecer melhor torque e velocidade em comparação com o método anterior. Embora a desvantagem seja que esse método também consome mais energia.
Degrau |
Fase 1 (azul) |
Fase 2 (rosa) |
Fase 3 (amarelo) |
Fase 4 (laranja) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Modo de meio passo
O modo Half Step é a combinação de um modo de ativação de fase e de ativação de duas fases. Esta combinação nos ajudará a superar a desvantagem acima mencionada de ambos os modos.
Como você deve ter adivinhado, uma vez que estamos combinando os dois métodos, teremos que executar 8 etapas neste método para obter uma rotação completa. A sequência de comutação para um motor de passo de 4 fases mostrada abaixo
Degrau |
Fase 1 (azul) |
Fase 2 (rosa) |
Fase 3 (amarelo) |
Fase 4 (laranja) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Portanto, é sua escolha programar seu motor de passo em qualquer modo, mas eu prefiro o modo de passo completo de passo duplo na etapa. Como esse método oferece velocidade mais rápida do que o método de uma fase e em comparação com o modo de meia, a parte de codificação é menor devido ao menor número de etapas no método de duas fases.
Saiba mais sobre motores de passo e seus modos aqui
Criação da interface gráfica do usuário MATLAB para controlar o motor de passo
Então, temos que construir uma GUI (Graphical User Interface) para controlar o motor de passo. Para iniciar a GUI, digite o comando abaixo na janela de comando
guia
Uma janela pop-up será aberta, selecione uma nova GUI em branco, conforme mostrado na imagem abaixo,
Agora escolha dois botões de alternância para girar o motor de passo no sentido horário e anti-horário, conforme mostrado abaixo,
Para redimensionar ou alterar a forma do botão, basta clicar sobre ele e você poderá arrastar os cantos do botão. Ao clicar duas vezes no botão de alternância, você pode alterar a cor, a string e a marca desse botão específico. Nós personalizamos dois botões conforme mostrado na imagem abaixo.
Você pode personalizar os botões de acordo com sua escolha. Agora, quando você salva isso, um código é gerado na janela do Editor do MATLAB. Para codificar seu Arduino para realizar qualquer tarefa relacionada ao seu projeto, você sempre deve editar o código gerado. Abaixo, editamos o código MATLAB. Você pode aprender mais sobre a janela de comando, janela do editor etc. no tutorial de Introdução ao MATLAB.
Código MATLAB para controlar o motor de passo com Arduino
O código MATLAB completo, para controlar o motor de passo, é fornecido no final deste projeto. Além disso, estamos incluindo o arquivo de GUI (.fig) e o arquivo de código (.m) aqui para download (clique com o botão direito no link e selecione 'Salvar link como…')), usando o qual você pode personalizar os botões de acordo com sua necessidade. Abaixo estão alguns ajustes que fizemos para girar o motor de passo no sentido horário e anti-horário usando dois botões de alternância.
Copie e cole o código abaixo na linha no. 74 para ter certeza de que o Arduino está se comunicando com o MATLAB toda vez que você executa o arquivo m.
limpar tudo; global a; a = arduino ();
Ao rolar para baixo, você verá que há duas funções criadas para ambos os botões na GUI. Agora escreva o código em ambas as funções de acordo com a tarefa que deseja executar no clique.
Na função do botão Sentido horário , copie e cole o código abaixo pouco antes do final da função para girar o motor no sentido horário. Para girar continuamente o motor de passo no sentido horário, estamos usando o loop while para repetir as duas etapas do modo completo de passo em fase para a direção do relógio.
enquanto get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); pausa (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); pausa (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pausa (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pausa (0,0002); fim
Agora, na função do botão Anti-horário , cole o código abaixo no da função para girar o motor no sentido anti-horário. Para girar continuamente o motor de passo no sentido anti-horário, estamos usando o loop while para repetir as duas etapas de modo completo de passo de fase para o sentido anti-horário.
enquanto get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pausa (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pausa (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); pausa (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); pausa (0,0002); fim
Material Necessário
- Laptop instalado com MATLAB (preferência: R2016a ou versões superiores)
- Arduino UNO
- Motor de passo (28BYJ-48, 5 VCC)
- ULN2003 - Driver de motor de passo
Diagrama de circuito
Motor de passo de controle com MATLAB
Após configurar o hardware de acordo com o diagrama de circuito, basta clicar no botão Executar para executar o código editado no arquivo.m
O MATLAB pode levar alguns segundos para responder, não clique em nenhum botão da GUI até que o MATLAB mostre uma mensagem de ocupado no lado inferior do canto esquerdo, conforme mostrado abaixo,
Quando tudo estiver pronto, clique no botão no sentido horário ou anti-horário para girar o motor. Como estamos usando o botão de alternância, o motor de passo se moverá continuamente no sentido horário até que pressione o botão novamente. Da mesma forma, ao pressionar o botão de alternância anti-horário, o motor começa a girar no sentido anti-horário até que o botão seja pressionado novamente.