O motor de passo possui dois tipos baseados em enrolamento interno e construções.
1. Motor de passo tipo unipolar e
2. Motor de passo tipo bipolar
Fig. 1: Diagrama do motor de passo bipolar
No motor de passo tipo bipolar existem duas bobinas do estator e seus quatro terminais são fornecidos como interface para girar o motor. Portanto, os motores de passo bipolares possuem interface de 4 fios sempre conforme mostrado na figura a seguir.
Fig. 2: Diagrama da interface de 8 fios, 5 fios e 6 fios do motor de passo bipolar
Enquanto no motor de passo unipolar existem quatro bobinas do estator. Portanto, há um total de 8 fios (dois para cada bobina) fornecidos para interface. Existem 3 interfaces diferentes para motores de passo unipolares. Consulte a figura abaixo.
1. Interface de 8 fios – todos os 8 terminais de 4 bobinas são fornecidos para interface conforme mostrado primeiro na figura acima. A1-A2 para bobina 1, B1-B2 para bobina 2, C1-C2 para bobina 3 e D1-D2 para bobina 4.
2. Interface de 5 fios – conforme mostrado na figura acima, um terminal de cada bobina (1, 3, 5 e 7) é colocado em curto e retirado como terminal comum, fornecendo um terminal comum e quatro terminais de bobina (A, B, C e D) total de 5 terminais.
3. Interface de 6 fios – quatro bobinas são divididas em grupos de duas bobinas. Um terminal é retirado comum do grupo de duas bobinas, resultando em dois terminais comuns (CMN1 e CMN2) e quatro terminais de bobina, totalizando 6 terminais.
Fig. 3: Protótipo de Identificador de Sequência de Terminais de Motor de Passo Automático
Todos nós sabemos que para girar o motor de passo os pulsos devem ser aplicados aos terminais da bobina na sequência correta. Se os pulsos não forem aplicados na sequência correta aos terminais da bobina, o motor apenas vibrará – não girará. Assim como para girar um motor de passo unipolar com 5 fios, os pulsos são aplicados aos quatro terminais da bobina A, B, C e D conforme tabela fornecida.
Figura 4: Tabela listando o status do pulso para o identificador de sequência dos terminais do motor de passo automático
Nota: o terminal comum está conectado ao terminal +Ve de alimentação. Na tabela acima, 0 significa lógica baixa – o terminal recebe 0 V para que a corrente possa passar pela bobina.
Isso significa que o pulso deve ser dado primeiro à bobina 1 – terminal A, depois à bobina 2 – terminal B e assim por diante. Se os pulsos não forem dados nesta sequência ABCD, ABCD, ABCD,… então o motor não girará.
Na maior parte dos motores de passo, os fios externos dos terminais da bobina são codificados por cores e são fornecidos pelos fabricantes na forma de folhas de dados ou manuais de operação ou qualquer documento relacionado. Também da marca do motor de passo e do modelo número um, você pode obter essas informações em recursos e materiais on-line.
Fig. 5: Imagem do identificador de sequência dos terminais do motor de passo automático
Mas e se tudo listado acima for desconhecido? Nenhuma marca e número de modelo do motor de passo, nenhum documento ou folha de dados, nenhum código de cores padrão dos fios, etc., nada. Significa que o motor de passo é completamente desconhecido.
Nesse caso, é preciso descobrir a sequência terminal fazendo experimentos manualmente. Existe um procedimento manual para fazer isso. Neste procedimento, é necessário aplicar pulsos aos diferentes terminais do motor manualmente usando a fonte de alimentação (ou bateria), conectando os fios da bobina aos terminais de alimentação +Ve e –Ve e observar se sua rotação progride ou apenas vibra para frente e para trás. Mas é um processo muito demorado, cansativo e tedioso. Porque primeiro é preciso pegar papel e caneta e listar diferentes sequências. Em seguida, aplique pulsos conforme as sequências listadas manualmente, conectando os fios aos terminais +Ve e –Ve da alimentação. Não apenas isso, mas ele deve observar a variação do motor de passo com cuidado, se ele gira ou não, porque se o motor de passo tiver um pequeno ângulo de passo como 0,90o, 0,18o, 0,75o etc., então é quase impossível para o olho humano decidir se o motor está girando ou vibrando.
Então, existe alguma solução para esse problema? Sim, a solução é automatizar esse processo. E o projeto apresentado aqui é baseado no mesmo conceito de que identifica automaticamente a sequência correta dos terminais da bobina e fornece o resultado em minutos. Utiliza microcontrolador ATmega32 que gera diferentes sequências de pulsos e se aplica aos terminais do motor e quando o motor gira duas voltas completas dá sequência aos terminais. Exibe no LCD o resultado de que a sequência correta para os terminais do motor é esta. Então vamos ver como construir este projeto bacana, interessante e muito útil.
DESCRIÇÃO DO CIRCUITO
Conforme mostrado na figura acima, o circuito é construído usando microcontrolador ATMega32, chip driver de motor ULN2003A, sensor opto-interrupção MOC7811 e LCD alfanumérico 16×4.
• Os pinos de dados D0 – D7 do LCD estão conectados à porta PORTA do ATMega32 e os pinos de controle Rs e En estão conectados aos pinos PORTD PD1 e PD0 respectivamente. O pino RW do LCD está conectado ao terra para permitir a gravação do LCD
• Um potenciômetro de 1 KΩ é conectado ao pino 3 do LCD para variar seus contrastes
• Quatro LEDs são conectados aos pinos PORTB PB4 – PB7 em configuração de cátodo comum com resistores limitadores de corrente de 1 KΩ conforme mostrado
• Pinos inferiores PORTB PB0 – PB3 acionam o motor de passo através do chip driver de corrente ULN2003A. Esses pinos são conectados às entradas do chip ULN e as saídas do chip ULN são conectadas aos quatro terminais da bobina do motor de passo desconhecido.
• O terminal comum do motor de passo recebe alimentação +Ve de 5 V
• O sensor óptico de interrupção MOC7811 é fixado de tal forma que a tira fixada no eixo do motor passa pela folga do sensor quando o motor gira
• O LED IR interno do sensor é polarizado diretamente através de um resistor limitador de corrente de 330Ω, portanto está sempre ligado. O fototransistor interno é conectado à alimentação de 5 V através do resistor pull up de 1 KΩ
• A saída do sensor é invertida e amplificada por mais um transistor NPN do tipo 2n2222A. A saída do coletor deste transistor é conectada ao pino de entrada de interrupção externa INTR (pino PORTD PD2) do ATmega32
• Um cristal de 8 MHz é conectado aos pinos de entrada do cristal (XTAL1 e XTAL2) para fornecer clock interno ao microcontrolador
• O pino de entrada de reinicialização é puxado para cima usando um resistor pull up de 1KΩ e um botão é conectado para fornecer reinicialização manual ao microcontrolador
Fig. 6: Imagem do identificador de sequência dos terminais do motor de passo automático
OPERAÇÃO DO CIRCUITO
O microcontrolador gera diferentes sequências de pulso. Ele tenta todas as combinações possíveis para sequências de pulso. Como o motor possui 4 terminais de bobina, pode haver um total de 24 (4! = 4x3x2x1) combinações possíveis para sequências de pulso. Destas 24 combinações, para 12 combinações o motor girará no sentido horário e para outras 12 combinações, girará no sentido anti-horário. Portanto, o microcontrolador deve testar 12 combinações de sequência de pulsos para os terminais A, B, C e D da bobina do motor.
Primeiro, ele aplicará a primeira sequência de pulso ABCD – significa 1º pulso para A, 2º pulso para B, 3º pulso para C e 4º pulso para D e novamente 5º pulso para A da mesma forma. Ele exibirá a mensagem no LCD como “tentando sequência 1 como A B C D 1 2 3 4”.
Se o motor começar a girar e ao completar uma revolução a tira passa pela abertura do sensor que irá gerar uma interrupção e o microcontrolador conta esta interrupção como 1 revolução do motor. Se o motor completar 2 rotações, pronto! Bingo!!!!! A sequência terminal da bobina é A é a primeira bobina, B é a segunda bobina, C é a terceira bobina e D é a quarta bobina. O LCD mostra a mensagem como “a sequência correta de terminais da bobina para o motor é 1-A 2-B 3-C 4-D”.
Mas se o motor não girar e continuar vibrando, após 5 segundos quando o temporizador desligar, o microcontrolador muda para a próxima sequência ABDC significa 1º pulso para A, 2º para B, 3º para D e 4º para C.
O LCD mostra a mensagem novamente.
Da mesma forma, a cada 5 segundos, se o motor não girar e completar 2 rotações em 5 segundos, o microcontrolador aplica as próximas sequências. Assim, ele testa todas as 12 sequências seguintes.
1. | A | B | C | D |
2. | A | B | D | C |
3. | A | D | B | C |
4. | A | C | B | D |
5. | A | C | D | B |
6. | A | D | C | B |
7. | B | A | C | D |
8. | B | A | D | C |
9. | C | A | B | D |
10. | C | A | D | B |
11. | B | C | A | D |
12. | C | B | A | D |
Assim, em 1 minuto (5 segundos x 12 sequências = 60 segundos = 1 minuto) o microcontrolador aplica todas as 12 sequências a partir das quais, em uma sequência, o motor começará a girar e completará duas voltas e obteremos a sequência exata dos terminais da bobina.
Depois de aplicar toda a sequência de 12 pulsos, se o motor ainda não girar, significa que a bobina do motor está danificada internamente e é por isso que não está girando. Assim, o microcontrolador decide que o motor está com defeito e exibe a mensagem no LCD como “toda a sequência possível do motor tentado está com defeito”.
Assim, o projeto em questão não apenas identifica a sequência dos terminais da bobina, mas também descobre se o motor está funcionando ou não.
Código fonte do projeto
###
#includepar #include par #include par par unsigned int intr_counter=0,seq_counter=1,timer_int_count=0,new_seq_flag=0,stop_flag=0;par par void lcd_senddata(unsigned char data)par {par tab _delay_ms(2);par tab PORTD=(1< ###
Diagramas de circuito
Diagrama de Circuito-Automático-Motor de Passo-Terminais-Identificador de Sequência |
Vídeo do projeto