Usando o Motor de Passo 28BYJ-48 com um Driver ULN2003 e Arduino

Usando o Motor de Passo 28BYJ-48 com um Driver ULN2003 e Arduino

Neste tutorial, aprenderemos como controlar um motor de passo 28BYJ-48 usando um driver ULN2003 com um Arduino. Esta configuração permite o controle preciso da posição e da velocidade do motor. Ao final deste projeto, você será capaz de girar o motor em ambas as direções e controlar seus passos de forma eficaz.

Usaremos o motor de passo 28BYJ-48, que é uma escolha popular para vários projetos de robótica e automação devido ao seu baixo custo e facilidade de uso. A placa de driver ULN2003 conecta o motor de passo ao Arduino, permitindo que enviemos sinais de passo que controlam o movimento do motor. Este tutorial irá guiá-lo pela fiação e pelo código necessários para fazer seu motor girar.

Para mais esclarecimentos, consulte o vídeo associado a este tutorial (no vídeo em 0:45).

Hardware Explicado

Os componentes principais deste projeto incluem o motor de passo 28BYJ-48 e a placa de driver ULN2003. O motor de passo consiste em várias bobinas que podem ser energizadas em uma sequência específica para criar rotação. O driver ULN2003 atua como um interruptor, permitindo que o Arduino controle a energia fornecida a cada bobina.

O driver ULN2003 utiliza um array de transistores Darlington para lidar com a corrente mais alta exigida pelo motor de passo. Quando um pino do Arduino emite um sinal ALTO, permite que a corrente flua para a bobina correspondente no motor, fazendo com que ele se mova. Isso possibilita um controle preciso sobre o ângulo de rotação e a velocidade do motor.

Detalhes da Ficha Técnica

FabricanteULN2003
Número da peçaULN2003
Tensão de lógica/IO5 V
Tensão de alimentação5-30 V (máx)
Corrente de saída (por canal)500 mA máximo
Corrente de pico (por canal)2 A máx
Orientação sobre a frequência PWMN/A
Limiares de lógica de entrada0,8 V (baixo), 2,4 V (alto)
Queda de tensão / RDS(on)/ saturação1,5 V máx
Limites térmicos70 °C máx
PacoteDIP-16
Notas / variantesComumente usado com motores de passo de 5V.

  • Certifique-se de que o driver pode lidar com os requisitos atuais do seu motor.
  • Use dissipadores de calor, se necessário, para gerenciar os limites térmicos.
  • Verifique se todas as conexões estão seguras para evitar entradas flutuantes.
  • Teste o motor executando sequências de passos simples antes de integrá-lo em projetos maiores.
  • Certifique-se de alimentar o motor com uma tensão de suprimento adequada.

Instruções de Fiação

Para conectar o motor de passo 28BYJ-48 ao driver ULN2003 e ao Arduino, siga estes passos:

Primeiro, conecte o motor ao driver ULN2003. O motor possui quatro fios, tipicamente codificados por cores como laranja, amarelo, rosa e azul. Conecte esses fios aos pinos de saída correspondentes no driver ULN2003. As conexões são as seguintes:

  • Orangefio paraOUT1
  • Yellowfio paraOUT2
  • Pinkfio paraOUT3
  • Bluefio paraOUT4

Em seguida, conecte o driver ULN2003 ao Arduino. Os pinos de entrada do driver correspondem a quatro pinos digitais no Arduino. Por exemplo:

  • IN1paraPin 10
  • IN2paraPin 11
  • IN3paraPin 12
  • IN4paraPin 13

Por fim, conecte os pinos de alimentação e terra do driver ULN2003 ao Arduino. Conecte oVCCpino na saída de 5V do Arduino e oGNDconecte ao terra do Arduino. Certifique-se de que todas as conexões estão seguras antes de ligar o sistema.

Exemplos de Código e Passo a Passo

Na seção de configuração do código Arduino, definimos os pinos conectados ao driver ULN2003:

int Pin1 = 10; 
int Pin2 = 11; 
int Pin3 = 12; 
int Pin4 = 13; 

Aqui, declaramos quatro variáveis inteiras:Pin1,Pin2,Pin3, ePin4, que correspondem aos pinos digitais no Arduino. Esses pinos controlarão o movimento do motor de passo.

Nosetup()função, configuramos esses pinos como saídas:

void setup() { 
 pinMode(Pin1, OUTPUT);  
 pinMode(Pin2, OUTPUT);  
 pinMode(Pin3, OUTPUT);  
 pinMode(Pin4, OUTPUT);  
} 

Esta configuração garante que o Arduino possa enviar sinais para o driver ULN2003 para controlar o motor. OpinModea função define cada pino como modo OUTPUT, permitindo que eles enviem sinais.

Finalmente, no loop principal, criamos um switch case para controlar os passos do motor com base na variável._step:

switch(_step){ 
   case 0: 
     digitalWrite(Pin1, LOW);  
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
     digitalWrite(Pin4, HIGH); 
   break;  
   // Additional cases follow
}

Neste trecho, usamosdigitalWriteenviar sinais ALTO ou BAIXO para cada pino com base na corrente_step. Isso controla quais bobinas são energizadas, permitindo que o motor gire. O código completo que integra esses trechos será carregado abaixo do artigo.

Demonstração / O que Esperar

Uma vez que tudo esteja conectado corretamente e o código esteja carregado, o motor de passo deve girar em resposta aos sinais do Arduino. Você pode testar o motor modificando o atraso no loop ou alterando os passos para ver como ele reage. Esteja ciente de que, se o motor não estiver alimentado corretamente, ele pode não se mover ou pode se comportar de maneira errática.

Capítulos

  • Introdução - 0:00
  • Hardware Explicado - 1:30
  • Instruções de Fiação - 3:15
  • Exemplos de Código e Passo a Passo - 5:00
  • Demonstração / O que Esperar - 7:45
6-The source code for stepper motor 28BYJ-48 with ULN2003 for Arduino
Idioma: C++
Copiado!

Arquivos📁

Nenhum arquivo disponível.