- Componentes necessários
- Descrição do pino do motor de passo
- Diagrama de circuito para controle de motor de passo usando módulo ULN2003
- Diagrama de circuito para controle de motor de passo usando o módulo L293D:
- Motor de passo de controle com AVR ATmega16
Os motores de passo são motores DC sem escova que podem girar de 0 0 a 360 0 em etapas. O motor de passo usa sinais eletrônicos para girar o motor em etapas e cada sinal gira o eixo em incrementos fixos (uma etapa). O anjo de rotação é controlado pela aplicação de certa sequência de sinais. Ao contrário do servo motor, os motores de passo podem ser acionados usando pinos GPIO do microcontrolador em vez de pinos PWM e podem girar em (+360 0) e (-360 0) A ordem dos sinais decide o sentido horário e anti-horário do motor de passo. Para controlar a velocidade do motor, precisamos apenas alterar a taxa dos sinais de controle aplicados. Os motores de passo giram em etapas. Existem vários modos de etapas para operar o motor de passo, como passo completo, meio passo e microstep. Para saber mais sobre os fundamentos, teoria e princípio de funcionamento do motor de passo, siga o link.
Anteriormente, fizemos a interface do motor de passo com muitos microcontroladores:
- Interface do motor de passo com ARM7-LPC2148
- Interface do motor de passo com o Arduino Uno
- Interface do motor de passo com MSP430G2
- Interface do motor de passo com STM32F103C8
- Interface do motor de passo com o microcontrolador PIC
- Interface do motor de passo com o microcontrolador 8051
- Interface do motor de passo com Raspberry Pi
Neste tutorial, faremos a interface do motor de passo 28BYJ-48 com o microcontrolador Atmega16 AVR usando o Atmel Studio 7.0. O motor de passo é classificado para funcionar em 5V. Faremos a interface do motor de passo com os drivers de motor, ou seja, ULN2003 e L293. Ambos serão movidos por alimentação de 5V. Para simplificar a interface, estamos usando um módulo pré-construído de ambos os drivers de motor. Você também pode usar CIs autônomos ULN2003 e L293D. O número de fios e jumpers pode ser maior, então tome cuidado ao conectar todas as conexões.
Componentes necessários
- Motor de passo (28BYJ-48)
- Módulo ULN2003 / Driver de motor L293D
- Atmega16 Microcontrolador IC
- Oscilador de cristal de 16 MHz
- Dois capacitores 100nF
- Dois capacitores 22pF
- Botão de apertar
- Jumper Wires
- Tábua de pão
- USBASP v2.0
- Led (qualquer cor)
Descrição do pino do motor de passo
Diagrama de circuito para controle de motor de passo usando módulo ULN2003
Conecte todos os componentes conforme mostrado no diagrama abaixo ao usar ULN2003. Da mesma forma, faremos a interface usando L293D na próxima etapa. Estamos usando o PORTA do Atmega16 para fazer a interface do motor de passo para ambos os drivers do motor. Não há necessidade de conectar o pino de 5 V do motor de passo. Apenas os pinos da bobina são necessários para mover o motor de passo. A ordem dos pinos é muito importante para acionar o motor de passo, já que a energização das bobinas deve ser para atingir as etapas. Quatro entradas de ULN2003 e quatro saídas de ULN2003 são usadas neste projeto. As entradas serão conectadas aos pinos PORTA e as saídas serão conectadas aos pinos de sinal do motor de passo. Além disso, conecte um botão de pressão no pino de reinicialização para reinicializar o Atmega16 sempre que necessário. Conecte o Atmega16 com o circuito oscilador de cristal adequado. Todo o sistema será alimentado por alimentação de 5V.
Abaixo está a imagem real do Módulo Motorista ULN2003:
Abaixo, fornecemos conexões de pino Atmega16 com ULN2003 e L293D para girar o motor de passo. A interface do motor de passo com o módulo L293D é explicada na seção posterior, lembre-se de que apenas um módulo ULN2003 ou L293D é necessário para o controle do motor de passo.
As conexões de pino para INPUT são as seguintes:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
As conexões de pino para OUTPUT são as seguintes:
Motor de passo |
ULN2003 |
L293D |
laranja |
OUT1 (PIN16) |
OUT1 (PIN3) |
Amarelo |
OUT2 (PIN15) |
OUT2 (PIN6) |
Rosa |
OUT3 (PIN14) |
OUT3 (PIN11) |
Azul |
OUT4 (PIN13) |
OUT4 (PIN14) |
Diagrama de circuito para controle de motor de passo usando o módulo L293D:
Motor de passo de controle com AVR ATmega16
Como já foi dito, ao contrário do servo motor, os motores de passo precisam de drivers externos, por exemplo, o driver de motor ULN2003 ou L293D. Portanto, basta conectar o circuito como acima e fazer o upload do programa main.c fornecido no final.
O esboço demonstra o motor de passo girando em ambos os lados, ou seja, no sentido horário e anti-horário. Se você deseja girar o stepper em uma direção, simplesmente comente as linhas de código de outra direção no esboço.
O código AVR completo para controlar o motor de passo é fornecido abaixo. O código é simples e pode ser facilmente compreendido. Dois códigos são fornecidos abaixo, um para motor de passo giratório com ULN2003 e o segundo com módulo L293D.
Conecte seu USBASP v2.0 e siga as instruções neste link para programar o microcontrolador Atmega16 AVR usando USBASP e Atmel Studio 7.0. Basta construir o esboço e fazer o upload usando o conjunto de ferramentas externo.
O código completo com o vídeo de demonstração é fornecido abaixo.