Вы находитесь на странице: 1из 8

Relatrio de Microprocessadores

2007/2008

Engenharia Fsica Tecnolgica

CONTROLO DE UM STEP MOTOR


Laboratrio III

Trabalho realizado por:


Andr Cunha, n53757
Joo Pereira, n 55315
Grupo 3; 5feira 13:00-16:00h

Lisboa, 22 de Outubro de 2007

Introduo e Objectivos
O objectivo deste trabalho consiste em controlar um step motor atravs da introduo de
comandos pela consola que os envia pela porta srie. O comando dever incluir um
parmetro para o nmero de steps dado pelo motor, outro para a preciso dos micro passos
dados pelo motor e ainda outro para o sentido de rotao.
Adicionalmente fazer-se- um pequeno estudo adicional para determinar a velocidade
mxima de rotao do motor escolhido.
Implementao, Procedimento e Anlise
Em termos concretos, comearemos por seleccionar um step motor disponvel,
determinaremos a sequncia correcta dos pinos do motor e depois as sequncias binrias
para a preciso normal e dupla de forma a criar os movimentos de rotao pretendidos.
Construir-se- ento um algoritmo em C para efectuar a rotao do motor com os
parmetros desejados e integrar-se- isto com um sistema estruturado de recepo,
interpretao e execuo de comandos atingindo-se assim o objectivo deste trabalho
laboratorial.
1 sesso de laboratrio
Material utilizado:
Step motor OEM de 6 fios;
Osciloscpio digital;
Multmetro;
Foi-nos ento atribudo o step motor da figura 1. Sem entrar em detalhes sobre a estrutura
dos step motors, comeou-se por determinar com que tipo de step motor se ia trabalhar atravs
da medio da resistncia entre os vrios fios. Os resultados esto expressos na seguinte
tabela para melhor visualizao:

11,3

22,3

11,3

22,3

11,3

11,3

11,3

11,3

22,3

11,3

22,3

11,3

Tabela 1 Resistncia entre os diferentes pinos do step motor

Concluu-se ento que a estrutura do step motor usado era a seguinte:

Figura 1 Esquemtico do step motor usado

Tendo ento determinado a estrutura do step motor usado, restava agora saber a sequncia de
disposio das bobines internas para saber com que ordem se deve fornecer corrente
atravs dos terminais do step motor.
Para descobrir a sequncia correcta fazer-se- uso da Lei de Induo de Faraday. Se a
passagem de corrente atravs das bobines gera um campo nas bobines que induz o
movimento do ncleo magntico do motor, o processo inverso, isto , a rotao externa
(neste caso manual) do ncleo magntico do motor (agora gerador) vai induzir corrente nas
bobines de forma sequencial, corrente essa que podemos visualizar se ligarmos os terminais
do motor (agora gerador) s pontas de prova do osciloscpio.
Visuzalizando a diferena de fase entre os vrios sinais gerados, podemos ento determinar
com facilidade a sequencia correcta de rotao.
Canal (osciloscpio)

Pino (step motor)

Tabela 2 Bijeco ordenada entre pinos e canais do osciloscpio

Figura 2 Sinais gerados no osciloscpio (sentido horrio)

Por fim, estabeleceram-se as sequncias binrias que iro ser usadas no programa para
controlar o step motor e que tendo em conta o princpio de funcionamento deste e os dados
recolhidos acima, se tornam imediatas. Quando queremos efectuar movimentos em
preciso simples, basta-nos fornecer corrente de forma sequencial a cada pino
correspondendo isso sequncia binria:
1000, 0100, 0010, 0001, 1000, ...
Quando queremos efectuar movimentos em preciso dulpa, criamos um estado intermdio
atravs do fornecimento de corrente em simultneo a dois pinos sucessivos. Isto vai
obrigar o ncleo magntico a colocar-se numa posio intermdia entre as duas bobines
gerando assim mais preciso. A sequncia naturalmente maior devido ao aumento de
resoluo:
1000, 1100, 0100, 0110, 0010, 0011, 0001, 1001, 1000, ...
E aqui se concluiu a primeira sesso de laboratrio.
2 sesso de laboratrio

MPLAB IDE e compilador de C para este IDE


SDK PIC184550
Breadboard
Base de trabalho (para fornecimento de alimentao de 5V)
ULN2803

Nota: Todo o cdigo se encontra em anexo devidamente comentado e explicado. Este


relatrio explcita apenas a filosofia usada bem como as escolhas efectuadas na
implementao.
Na segunda sesso comeou-se por construir o algoritmo principal do programa que ser o
ncleo da funo responsvel pela rotao do motor. A funo de rotao dever prever a
existncia de orientao, preciso e assegurar que no existem saltos entre estados no
consecutivos (saltos bruscos).
Para resolver a questo da orientao resolveu-se utilizar o sinal do nmero de passos a dar
pelo motor, estabelecendo o sinal positivo para rotao no sentido anti-horrio e sinal
negativo para o sentido inverso.
Para o segundo ponto, apesar da primeira sequncia sugerir fortemente a utilizao de um
shift right/left, a segunda lista torna esta soluo pouco vantajosa uma vez que no
suficientemente geral para prever o segundo caso. Desta forma, resolveu-se utilizar listas
que sero escolhidas de acordo com o modo de rotao desejado. Este mtodo muito
geral e facilita a futura implementao de situaes que envolvam sequncias numricas
caticas.

Por fim, para assegurar que no temos saltos bruscos tinham-se duas hipteses, ou guardar
sempre o ltimo estado do motor e rodar a partir desse ponto ou obrigar o motor a
efectuar sempre um determinado nmero de passos que assegure que estou sempre em
situao conhecida. Por questes de convenincia e sugesto do docente, escolheu-se a
segunda opo.
Como nota adicional, convm referir que a velocidade de rotao ser controlada atravs
de um parmetro interno do programa utilizando uma funo de delay.
A funo responsvel pela interpretao e armazenamento dos parmetros de orientao,
preciso e nmero de passos a funo interpreterRoda. A funo responsvel pela execuo
do ciclo de rotao a funo executeRoda.
Utilizando a estrutura bsica de interrupes e comunicao via porta srie dos programas
anteriores j extensivamente explicados aquando dos mesmos, construram-se as fundaes
da interaco com o utilizador deste programa.
Ao contrrio do que se fez nos programas anteriores, procedeu-se finalmente a uma
estruturao em blocos de todo o programa, estrutura essa j sub-entendida na explicao
do algoritmo principal. Convm referir neste contexto que todas as variveis de relevo
foram armazenadas em estruturas para facilitar o aproveitamento futuro deste programa
noutras aplicaes ou adio de funcionalidades.
Desta forma, a funo principal agora apenas directamente responsvel pela gesto
directa das consequncias das interrupes geradas o que se reflecte na gesto indirecta de
comandos. O ponto mais importante desta gesto indirecta que liga o algoritmo principal
interaco com o utilizador, feita atravs da funo findCommand que trata da gesto dos
comandos introduzidos a pedido da funo principal.
Regressando ao procedimento laboratorial propriamente dito, consultou-se ento a datasheet
do ULN2803 que se vai usar como amplificador dos sinais lgicos que provm do nosso
CPU para o step motor.
Efectuaram-se as ligaes aos outputs do CPU para as entradas do ULN2803, ligaram-se as
suas sadas ao step motor de acordo com a ordem determinada na primeira sesso laboratorial
e por fim ligou-se a alimentao ao ULN2803 e tambm ao ponto comum do step motor
tendo o cuidado de usar uma resistncia em srie para proteco do motor.

Figura 3 Pequeno esquemtico de ligaes entre ULN2803, step motor e alimentao

Finalmente, correu-se o programa utilizando o ambiente de desenvolvimento MPLAB e


testou-se o motor tendo este funcionado como previsto.
Por fim, para determinao da velocidade mxima de operao do step motor, conhecendo o
comportamento catico das bobines aquando da recepo de sinais elctricos e que apenas
estabilizam passado um determinado perodo de tempo, nosso objectivo determinar este
limite, uma vez que representa o momento a partir do qual temos a certeza de que as
bobines se comportam correctamente assegurando o funcionamento eficiente do motor.
Com a utilizao de um osciloscpio para medir a diferena entre steps lgicos consecutivos
bem como para visualizar o comportamento de uma das bobines do step motor, rapidamente
se verificou que as velocidades limite se encontravam utilizando delays de entre 5000 a
10000 ciclos de relgio.
Percorrendo estes valores conclui-se que o valor limite era de 6000 ciclos de relgio por
step, ou seja, tendo em conta que se usa um clock de 4 MHz , temos ento que o tempo
mnimo de cada micro step de 1,5 ms.

Figura 4 Sinais da bobine e de dois steps consecutivos a 5000 ciclos de relgio (irregular)

Figura 5 Sinais da bobine e de dois steps consecutivos a 6000 ciclos de relgio (limite)

Figura 6 Sinais da bobine e de dois steps consecutivos a 10000 ciclos de relgio (estvel)

Figura 7 Sinais da bobine e de dois steps consecutivos a 50000 ciclos de relgio (estvel)

Вам также может понравиться