- Motor de passo:
- ULN2003 Stepper Motor Driver:
- Componentes Requeridos
- Diagrama de Circuito e Explicação
- Explicação do código
O motor de passo é um motor especialmente projetado que gira em etapas. A velocidade do motor de passo depende da taxa do sinal elétrico aplicado a ele. Diferentes padrões podem controlar a direção e o tipo de rotação do motor de passo. Principalmente dois tipos de motores de passo estão disponíveis, Unipolar e Bipolar. Unipolar é mais fácil de operar, controlar e também mais fácil de obter. Aqui neste tutorial, estamos fazendo a interface do motor de passo com o microcontrolador PIC PIC16F877A.
Estamos usando o motor de passo 28BYJ-48 para este projeto, que é barato e facilmente disponível. É um motor de passo unipolar de 5 V DC. Também estamos usando um módulo disponível com este motor que consiste no CI do driver de motor de passo ULN2003. ULN2003 é uma matriz de pares Darlington, que é útil para acionar este motor, uma vez que o microcontrolador PIC não pode fornecer corrente suficiente para acionar. ULN2003A é capaz de conduzir 500mA de carga com 600mA de corrente de pico.
Motor de passo:
Vamos ver a especificação do motor de passo 28BYJ-48 na folha de dados.
Como girar o motor de passo:
Se virmos a ficha técnica, veremos o pin-out.
Dentro do motor, existem duas bobinas com derivação central disponíveis. O fio vermelho é o comum para ambos os quais serão conectados em VCC ou 5V.
Outros 4 fios rosa, vermelho, amarelo e azul controlarão a rotação dependendo do sinal elétrico. Além disso, dependendo do movimento, este motor pode ser controlado em 3 etapas. Modo Full Drive, modo Half Drive e modo Wave drive.
Três modos de condução do motor de passo:
Acionamento total: Se dois eletroímãs do estator forem energizados por vez, o motor funcionará com torque total referido como modo de sequência de acionamento total.
Degrau |
Azul |
Rosa |
Amarelo |
laranja |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive: Quando alternativamente uma e duas fases são energizadas, o motor funcionará no modo de half-drive. É usado para aumentar a resolução angular. A desvantagem é menos torque produzido neste movimento.
Degrau |
Azul |
Rosa |
Amarelo |
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 |
Wave Drive: neste modo, um eletroímã do estator é ligado. Segue 4 etapas iguais ao modo Full-drive. Consome baixa potência com baixo torque.
Degrau |
Azul |
Rosa |
Amarelo |
laranja |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Anteriormente, fizemos a interface do motor de passo com outros microcontroladores:
O motor de passo também pode ser controlado sem qualquer microcontrolador, consulte este Circuito do driver do motor de passo.
ULN2003 Stepper Motor Driver:
Vamos entender a placa de quebra que consiste em ULN2003 IC. É importante entender o pino.
A parte amarela é usada para conectar o motor, a parte vermelha mostra um jumper. É importante colocar o jumper, pois ele habilitará a proteção de diodo de roda livre para o motor . A entrada rosa é para a conexão do microcontrolador.
Vamos girar o motor no modo de direção total no sentido horário e novamente girá-lo com o modo de transmissão de onda no sentido anti-horário. Confira o vídeo de demonstração no final.
Componentes Requeridos
- Pic16F877A
- Kit de programação
- Tábua de pão
- 20Mhz Cristal
- Capacitor de disco 33pF - 2pcs
- Resistor de 4,7k
- Fios e pinos de berg
- Placa breakout ULN2003A junto com o motor de passo 28BYJ-48.
- Fios adicionais para conectar
- Unidade de fonte de alimentação de 5 V ou adaptador de parede com classificação de 500 mA
Diagrama de Circuito e Explicação
No diagrama de circuito, no lado esquerdo o PIC16F877A é mostrado e no lado direito a conexão ULN2003A é exibida. O ULN2003 e a parte do motor de passo estão dentro da placa de divisão.
A conexão da placa Breakout à unidade do microcontrolador será-
A. IN1 => Pin 33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin 36
Liguei todos os componentes e seu hardware para girar o motor de passo com microcontrolador PIC está pronto.
Se você é novo no Microcontrolador PIC, siga nossos Tutoriais do Microcontrolador PIC, que informam em Introdução ao Microcontrolador PIC.
Explicação do código
O código completo para este driver de motor de passo baseado em PIC é fornecido no final deste tutorial com um vídeo de demonstração. Como sempre, primeiro precisamos definir os bits de configuração no microcontrolador pic e, em seguida, iniciar com a função void principal .
Estas são as macros para bits de configuração da unidade do microcontrolador e os arquivos de cabeçalho da biblioteca.
#define _XTAL_FREQ 200000000 // Freqüência do cristal, usada no retardo #define a velocidade 1 // Faixa de velocidade 10 a 1 10 = mais baixa, 1 = mais alta #define passos 250 // quanto passo levará #define no sentido horário 0 // sentido horário macro #define anti_clockwise 1 // macro sentido anti-horário
Na primeira linha, definimos a frequência do cristal que é necessária para a rotina de atraso. Outras macros são usadas para definir opções relacionadas ao usuário.
Se você vir o código, há três funções definidas para acionar o motor em três modos com sentido horário e anti-horário. Aqui estão as três funções:
1. void full_drive (direção do caractere)
2. void half_drive (direção char)
3. void wave_drive (direção char)
Verifique as definições dessas funções no código completo fornecido a seguir:
Agora, na função void main , estamos dirigindo o motor no sentido horário usando o modo full-drive dependendo das etapas e depois de alguns segundos de atraso, giramos novamente o motor no sentido anti-horário usando o modo wave drive.
void main (void) { system_init (); while (1) { / * Dirija o motor no modo de direção total no sentido horário * / para (int i = 0; i
É assim que podemos girar o motor de passo com o microcontrolador PIC. Os motores de passo são muito úteis em máquinas CNC, robótica e outras aplicações embarcadas.