28BYJ-48 Motor Passo-a-Passo com ULN2003

Olá,

Mais um periférico muito útil, o motor passo-a-passo.

Neste caso utilizei o driver ULN2003, com o motor de 5V o 28BYJ-48.

stepper01

Existem vários vídeos ilustrativos do funcionamento deste motor, ex: Video Youtube.

Este versátil motor é muito utilizado na industria para rigoroso posicionamento de braços de robôs.

 

Segundo o datasheet este motor possui um redutor de 1/64 ou seja para fazer os 360º precisa de 64 passos. Sendo que 360/64=5,625 graus ( cada passo ).

 

Abaixo apresento um codigo muito simples como se pode colocar um motor passo-a-passo, sequência de activação 4 passos.

TabelaMotor

 /*
* Stepper_ULN2003.c
* http://www.microelectronic.pt
* Created: 11-03-2017
* Author: Norlinux
*/
#include
#include
#include
#define F_CPU 16000000UL/* 16 MHz External Oscillator */
#define PORT_AVR PORTC
#define DDR_AVR DDRC
#define delay_motor() _delay_ms(4);
int main(void)
{
DDR_AVR = 0xFF;
int j=150, i=150;
int Motor1_Dir[4]={1,2,4,3};
int Motor1_Esq[4]={3,4,2,1};
int Motor2_Dir[4]={16,32,64,48};
int Motor2_Esq[4]={48,64,32,16};
while(1)
{
while(j)
{
j--;
i=150;
for(uint8_t i=0;i<=4;i++)
{
PORT_AVR=(3*Motor1_Esq[i]);
delay_motor();
PORT_AVR=(3*Motor2_Esq[i]);
delay_motor();
}
}
while (i)
{
j=150;
i--;
for(uint8_t i=0;i<=4;i++)
{
PORT_AVR=(3*Motor1_Dir[i]);
delay_motor();
PORT_AVR=(3*Motor2_Dir[i]);
delay_motor();
}
}
}
}

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s