Eletrônica digital com Arduino – Stepper motor: controlando motor de passo

Não era minha intenção escrever nesse momento sobre motores de passo, mas é uma coisa muito legal de escrever porque esses motores tem características avançadas e o controle deles através do Arduino é muito simples!

Primeiramente, vou recomendar algumas leituras, caso você deseje ir mais a fundo (e acredito que deva ir, se pretende utilizar motores de passo). Nesse link do eletronica.org está um excelente material sobre motores DC, AC e motores de passo. É bom ler e entender o seu funcionamento.

No exemplo, utilizarei o motor de passo da imagem abaixo:

O datasheet desse motor está nesse link.

Perceba que as cores dos motores de passo não são um padrão (exceto pertencendo ao mesmo datasheet), além de que o número de fios pode variar. No nosso exemplo, o motor possui 4 fios. Mais uma vez utilizaremos um CI L293D para controlar o motor, mas dessa vez com uma alimentação externa conectada ao pino 8. Para alimentá-lo, utilizei uma bateria de 9v (apesar do motor ser de 12v, funcionou sem fazer fumaça nem derreter a protoboard). O Arduino alimentei pela USB de meu notebook mesmo (coragem nesse momento).

No datasheet se pode ver na tabela esquerda abaixo em common rating:

1.8º +- 5%

Isso quer dizer que cada passo possui aproximadamente 1.8 graus de movimento, com 5% de margem de erro. No link eletronica.org descreve as variações de cada motor de passo que podem ser de 0.72,1.8, 3.6, 7.5, 15 e até 90 graus. No nosso caso, o datasheet descreve como 1.8, então para sabermos quantos passos temos em uma volta basta dividir 360º por 1.8º, que dá exatamente 200 passos – essa é a precisão desse motor.

Além dos passos, também podemos controlar a direção e velocidade e isso que faz tão divertido mexer com esse tipo de motor!

No canto direito superior estão descritos os dois pares de fio; Red e Green e Yellow com Blue. Mas além disso, perceba que cada fio tem uma letra; Red e Yellow para A e B, respectivamente. Então, esses dois fios devem assumir as mesmas posições em lados opostos do CI. Dessa forma teremos de um lado vermelho e verde. O verde na posição 11e o vermelho na posição 14. Como o amarelo é o B, então no mesmo pino da direção oposta do CI teremos o amarelo – pino número 3 e o fio azul, pino número 6. No modelo do Fritzing, os fios do motor aparecem como duas fases e dois terras, mas o desenho deixa claro suas ligações:

Maiores detalhes sobre o CI podem ser encontrados nesse outro post.

Motores de passo são comumente utilizados em impressoras para alinhar cabeça de impressão, em braços robóticos e diversas outras aplicações que exijam precisão. No momento não tenho um projeto aplicável para desenvolvermos, mas vamos fazer provas dos controles com base nos exemplos da própria IDE de desenvolvimento.

Um passo por vez

Esse é o primeiro exemplo descrito aqui. Veja o código:

E para finalizar essa etapa, o video do motor a 60 RPM, passo a passo (não reparem na bagunça, deixei o projeto do robô montado em paralelo):

No próximo post (se não tiver mais uma etapa dos posts do projeto robô pronta) pretendo mostrar mais algumas coisas com motor de passo. Espero ter alguma idéia aplicável para tornar o exemplo mais divertido, apesar de que simplesmente controlar essas belezinhas já é uma diversão!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “Eletrônica digital com Arduino – Stepper motor: controlando motor de passo

Deixe uma resposta