Interface do motor de passo com o microcontrolador 8051 (89c51,89c52)

Aqui está um tutorial simples sobre como fazer a interface do motor de passo com o microcontrolador 89c51. O motor de passo, como o nome indica, executa etapas para completar uma rotação circular completa de 360 ​​graus. Podemos girar o passo a passo no sentido horário e anti-horário. A velocidade do motor de passo também pode ser variada. Existem muitos tipos de motores mais íngremes de quatro, oito ou dezoito passos. Os motores de passo são classificados de acordo com as etapas executadas por um motor específico para completar uma rotação completa de 360 ​​​​graus. Nosso foco está no motor de quatro passos. Depois de estar familiarizado com o motor de passo de quatro etapas, você poderá acionar qualquer tipo de motor mais íngreme.

Motor de passo funcionando

Vou usar quatro motores de passo íngremes neste projeto. Geralmente há 5 ou 6 fios saindo de um motor de passo de quatro curvas. Em 5 fios, um é o nosso vcc (tensão externa) e os 4 renomeados são fios de passo. Em 6 fios, 2 são nossos vcc (tensão externa) e os quatro renomeados são fios de passo.

  • Para saber como funciona o motor de passo? Aqui está um bom tutorial.BOM TUTORIAL DA WIKIPEDIA.


O motor de passo funciona de 5 volts a 12 volts. O motor de passo que estou usando neste tutorial é o NEMA 17. É um motor de passo bipolar. Cada passo dado pelo motor de passo nema 17 conta com um aumento de 1,8 graus. Portanto, em 200 etapas, nema 17 completa uma rotação de 360 ​​(200 * 1,8 = 360) graus. Nossa preocupação neste tutorial é apenas girar o motor de passo.

Motor de passo Nema 17

Motor de passo Nema 17

Consumo de energia do motor de passo

O motor de passo consome 0,1 a 1 ampere de corrente durante a rotação escalonada com carga. Os microcontroladores não podem produzir esta quantidade de energia. Portanto, não podemos conectar diretamente os motores de passo com microcontroladores como o microcontrolador 89c51, cujos pinos podem produzir no máximo 0,045 amperes de corrente.

Uso do driver ULN2003 para motor de passo

Para cobrir a restrição de potência do motor de passo acima, precisamos de uma fonte de energia externa que possa acionar cargas pesadas e fornecer energia suficiente para a operação do motor de passo. ULN2003 é um ic contendo pares de configuração Darlington de transistores. O ULN2003 recebe entrada de baixa potência e emite um sinal com maior potência. Decidi usar este driver IC para acionar o motor de passo.

Driver ULN2003

Driver ULN2003

Motor de passo microcontrolador 8051 – Circuito de projeto

Conecte a porta nº 1 do microcontrolador 8051 (89c51) quatro bits inferiores ao driver ULN2003 ic. O microcontrolador 89c51 é incapaz de produzir tensão/corrente suficiente para acionar um motor, portanto, um driver IC é necessário para atender aos requisitos de tensão/corrente do motor. A saída do ULN2003 está conectada ao nosso motor de passo. Certifique-se de inserir o mesmo fio no motor que você está especificando na sua etapa de código. Faça o pino 8 do aterramento ULN2003. Aplique a mesma tensão no pino 9 do ULN2003 que você está aplicando ao seu motor.

A interface do motor de passo com o diagrama do circuito do microcontrolador 89c51 é fornecida abaixo. Observe as etapas executadas pelo motor de passo na imagem GIF abaixo. Para cada etapa, temos que fazer cada etapa com alfinetes altos e seguir o padrão mostrado na imagem GIF. Os pinos / fios do motor de passo são coloridos em amarelo, marrom, preto e verde, etc. Primeiro, precisamos ter certeza do padrão dos fios de passo. O padrão do motor de passo Nema 17 é mostrado na imagem GIF.

Observação: O padrão deve estar na ordem correta para girar o motor de passo. Preste atenção ao código de cores dos fios do motor mais inclinados abaixo.

motor de passo com microcontrolador 89c51 e driver uln2003

motor de passo com microcontrolador 89c51 e driver uln2003

Interface de motor de passo com microcontrolador 8051 – Código do projeto

O código é muito simples. Ele é escrito em linguagem c++ usando keil ide como ferramenta de software para escrever e compilar o código. Primeiro o arquivo necessário reg51.h está incluído. Em seguida, uma função de atraso é criada para fornecer alguns atrasos nas etapas. Este atraso é muito importante, use-o para evitar fem reversa (força motriz elétrica) gerada pelo motor, caso contrário, seu controlador será danificado por esta fem traseira produzida pelo motor de passo. Você também pode acelerar a rotação do motor reduzindo o tempo de atraso. Na função principal utilizei alguns comandos para girar o motor de passo. Os comandos são explicados abaixo. Os comandos estão em formato hexadecimal.

P1=0x01 Tornando a porta 1 bit 0 alto para o primeiro passo. Equivalente binário=00000001
P1=0x00 Tornando a porta 1 todos os bits 0 para o próximo passo. Equivalente binário=00000000
P1=0x02 Tornando a porta 1 bit 1 alto para o segundo passo. Equivalente binário=00000010
P1=0x00 Tornando a porta 1 todos os bits 0 para o próximo passo. Equivalente binário=00000000
P1=0x04 Tornando a porta 1 bit 2 alta para o terceiro passo. Equivalente binário=00000100
P1=0x00 Tornando a porta 1 todos os bits 0 para o próximo passo. Equivalente binário=00000000
P1=0x08 Tornando a porta 1 bit 3 alta para o quarto passo. Equivalente binário=00001000

Você também pode declarar individualmente os bits e torná-los altos e baixos para etapas suficientes. O loop while(1) está operando continuamente o motor no sentido horário. Você também pode reverter a direção no sentido anti-horário apenas invertendo os comandos, colocando o último comando (0x08) no início e invertendo o
ordene da mesma maneira para o restante dos comandos.

Com uma ligeira modificação no código você pode variar a velocidade do motor de passo com o microcontrolador 89c51. Basta diminuir o atraso ou removê-lo. Para girar em um determinado ângulo, calcule as etapas necessárias para atingir o ângulo e coloque as etapas no loop for. Espero que faça sentido para você.

Mais projetos envolvendo motores de passo e diferentes microcontroladores estão listados abaixo. Cada projeto é único e um microcontrolador dedicado controla o motor de passo. Todos os projetos são de código aberto. Você pode modificá-los de acordo com suas necessidades.

Motor de passo controlado via web usando nodemcu

Controlador de motor de passo via Bluetooth com aplicativo Android

Motor de passo controlado com microcontrolador stm32 de 32 bits

Baixe os arquivos do projeto e o código compilado em keil uvision 4. O código é escrito em linguagem c. Se você tiver alguma dúvida sobre a postagem é só deixar um comentário abaixo. O vídeo do projeto também é fornecido abaixo.

Assista ao vídeo do projeto da interface do motor de passo 89c51

Código do motor de passo 8051

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.