Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial Eletronica - Motor de Passo
Tutorial Eletronica - Motor de Passo
Controle de
Motor de Passo
Autor: Lus Fernando Patsko
Nvel: Intermedirio
Criao: 22/02/2006
ltima verso: 18/12/2006
PdP
Pesquisa e Desenvolvimento de Produtos
http://www.maxwellbohr.com.br
contato@maxwellbohr.com.br
http://www.automato.com.br
atendimento@automato.com.br
1 Introduo
Esse tutorial abordar a confeco de uma placa para o controle de um motor de passo e a
programao para que se possa control-lo por meio das portas de sadas digitais do MEC1000 ou
do KDR5000. O motor de passo muito utilizado na robtica porque pode ter sua rotao
controlada por meio de passos, como o nome j diz, e isso indispensvel em alguns aparelhos
onde exigido um maior grau de preciso, pois o uso de motores de corrente contnua
convencionais poderia resultar em danos no aparelho ou em mal funcionamento.
2 Material
O material necessrio ser um motor de passo, um integrado ULN2003, um conector latch
de 10 vias macho, um conector latch de 10 vias fmea, um cabo flat e uma placa de fenolite.
3 Funcionamento
por rotao, respectivamente. Alm do mais, hoje existem controladores de modulao de largura
de pulso onde se obtm micropassos, desse modo observa-se uma resoluo de posicionamento
infinitamente preciso. Para se ter uma idia, h controladores que operam na faixa de 50.000
micropassos por rotao.
No seu interior h estatores formados por bobinas que geram, quando percorridos por uma
corrente eltrica, o campo magntico necessrio para o movimento do rotor, que construdo com
mas permanentes confeccionados de acordo com o nmero de passos. Essa rotao controlada
por meio de um circuito externo que promove a oscilao do sinal que percorrer os pares de
estatores e, por isso, no pode ser conectado diretamente alimentao, pois desse modo no
haveria a pulsao necessria para que o motor possa girar.
Desse modo poderemos estar utilizando o ULN2003, que nada mais do que um array de
transistores Darlington, que trabalha com tenses de at 50V e suporta uma corrente de at
500mA, o suficiente para o controle do nosso motor de passo. Este integrado possui 7 entradas para
o controle de at 7 sadas que sero ligadas s sadas dos estatores. necessrio em primeiro lugar
descobrir qual a sada comum aos estatores e esta ser ligada entrada de 12V. As conexes das
sadas dos estatores sero ligados aos pinos 16, 15, 14 e 13 do integrado e as sadas digitais do Kit
correspondentes a eles sero conectadas aos pinos 1, 2, 3 e 4. O integrado estar ligado
alimentao por meio dos pinos 8 (GND) e 9 (V+). As portas 1, 2, 3 e 4 sero ligados por meio de
cabos flat ao MEC1000 ou ao KDR5000.
ULN2003
H trs modos bsicos de operao do motor de passo: dois onde se usa o passo completo,
um com apenas um estator energizado por passo, onde o consumo de energia e torque so baixos, e
o outro com dois estatores energizados por passo, onde torque e consumo de energia so maiores; e
um de meio-passo, gerando um torque prximo ao de passo completo com dois estatores
energizados, com um consumo superior de energia, porm com uma preciso maior deslocamento.
Com a finalidade de uma explicao mais clara e uma linha de cdigo menor, o programa de
controle do motor de passo disponibilizar apenas o uso das operaes de passo completo.
4 Montagem
Para a montagem da placa para o motor de passo necessrio observar bem a polaridade dos
fios para que no haja erro na hora da confeco da placa. O fio comum aos estatores aquele cuja
resistncia quando medida entre dois fios d o valor nominal da resistncia do motor. Este fio deve
ser ligado alimentao de 12V. Se medirmos a resistncia entre dois fios que so os extremos da
bobina, esta ser o dobro da resistncia nominal do motor.
Comearemos pelo diagrama esquemtico do circuito para que no haja erro na hora de
confeccionarmos a placa. Para isso temos que ter mo o integrado ULN2003 pois este o nico
componente eletrnico que ser soldado placa. O esquemtico est mostrado a seguir.
Observe que tanto o ULN2003 como o prprio motor de passo no utilizaro o pino de
alimentao de 5 Volts disponvel no pino 1 das portas de sadas digitais. Eles devero ser
alimentados com uma tenso de 12 Volts, disponvel nas sadas de alimentao do Kit. Sendo assim
possvel soldar um borne de 2 vias ou mesmo soldar dois fios diretamente na placa, sendo que um
ser o terminal positivo e o outro ser o terminal negativo. Basta lig-los nas sadas de alimentao
correspondentes.
O desenho da placa, vista pelo lado dos componentes, mostrado a seguir.
Devemos transferir o desenho para o lado cobreado da placa de fenolite tomando o cuidado
de invert-lo. Depois disso s fazer a perfurao da placa e desenhar as trilhas at s sadas dos
cabos flat. Observe que utilizaremos apenas 4 entradas e sadas do integrado, preferencialmente a
dos pinos 1, 2, 3 e 4 como entradas, os pinos 16, 15, 14 e 13 respectivamente como sadas das
entradas utilizadas e os pinos de alimentao que so o 8 (GND) e 9 (V+), podendo ligar o terminal
comum do motor de passo com este ltimo pino, pois ambos vo ao positivo. Aps o desenho das
trilhas colocamos a placa para ser corroda no percloreto de ferro.
Depois de feita a corroso da placa, soldaremos o ULN2003 conforme o diagrama,
observando muito bem sua pinagem, pois caso seja invertido, ele poder ser danificado. Com muita
ateno, compare a posio em que ser soldado com o esquema e com a pinagem do componente,
para conferir se os pinos estaro conectados adequadamente. Soldaremos tambm um conector
latch, com o propsito de ligar um cabo flat ao Kit e o conector adequado ao motor de passo. Para
as entradas de alimentao, podemos soldar um borne de 2 vias ou ento soldar dois fios
diretamente placa.
5 Programao
Depois da criao da placa para o controle do motor de passo, necessrio criar um
programa especfico para control-lo. Isso necessrio devido ao prprio funcionamento do motor.
Como vimos logo acima, no basta apenas aliment-lo corretamente, necessrio haver uma
oscilao que faa com que os estatores proporcionem o movimento. Devemos ento criar um
programa que proporcione essa oscilao nas sadas digitais.
Nosso primeiro passo criar a interface grfica do programa. Vamos utilizar o projeto
criado no tutorial Base que j nos fornece algumas funcionalidades interessantes. Para isso
copiamos o projeto daquele tutorial e em cima dele vamos adicionar alguns componentes grficos
extras.
A interface grfica composta por dois SpeedButton, dois Labels e dois ComboBox. Os
botes sero destinados a ligar e desligar o motor nos modos de torque alto e torque baixo. Uma
ComboBox selecionar a porta de sada digital e a outra o sentido da rotao do motor e os Labels
apenas indicaro o contedo de cada ComboBox. Tambm existe um componente Timer, que no
visvel durante a execuo do programa, mas essencial para seu funcionamento.
O primeiro passo modificar a propriedade Caption do Form principal de Projeto Base
para Motor de passo placa. importante deixar o nome desse programa um pouco diferente do
que destinado a controlar o motor de passo do Kit, para evitar confuses. Em seguida
adicionaremos um Label e um ComboBox para a seleo da porta de sadas digitais na interface.
Esses componentes podem ser encontrados na aba Standard.
LabelPorta
Caption
Porta:
Font/Style/fsBold
true
ComboBoxPorta
Style
csDropDownList
Items.Strings
Porta 0, Porta 1
ItemIndex
LabelSentido
Caption
Sentido:
Font/Style/fsBold
true
Name
ComboBoxSentido
Style
csDropDownList
Items.Strings
Horrio, Anti-horrio
ItemIndex
Devemos agora adicionar os SpeedButtons, cuja funo ser acionar ou desligar o motor.
Como temos dois modos de operao possveis, devemos colocar dois SpeedButtons, que
encontram-se na aba de componentes Additional.
Name
SpeedButtonBaixo
Caption
Torque Baixo
Font/Style/fsBold
true
GroupIndex
AllowAllUp
True
Name
SpeedButtonAlto
Caption
Torque Alto
Font/Style/fsBold
true
GroupIndex
AllowAllUp
True
O ltimo componente a ser adicionado um Timer, que no ser visvel na interface grfica
do programa, no entanto, essencial para o seu funcionamento. O componente Timer encontra-se
na aba System da barra de componentes. A seguir uma imagem dessa aba.
TimerMotor
Interval
400
Com a incluso desse componente, encerramos a criao da parte grfica e podemos partir
9
begin
while SpeedButtonBaixo.Down = true do
begin
end;
if
SpeedButtonBaixo.Down = false do
begin
end;
while SpeedButtonAlto.Down = true do
begin
end;
if SpeedButtonAlto.Down = false do
begin
end;
end;
except
end;
end;
Agora, faremos uma pausa para analisar os comandos que sero enviados pelas sadas
digitais. Utilizaremos o mtodo DigitalPortWrite para enviar os comandos para a placa de controle
de motores-de-passo. Esse mtodo possui a seguinte declarao:
Procedure DigitalPortWrite(port : Integer;
value : Byte);
Ele possui dois parmetros, um que indica a porta que queremos definir o estado e outro que
define o estado da porta. O Mdulo de Entradas, Sadas e Servo-Motores possui duas portas de
sadas digitais, logo o primeiro parmetro pode ser 0, para indicar a primeira porta, ou 1, para
indicar a segunda. Esse parmetro ser selecionado pelo ComboBoxPorta.
J o segundo parmetro do mtodo DigitalPortWrite define quais bits da porta devero ser
setados para o nvel lgico 1 e quais devero ser setados para o nvel lgico 0. Esse parmetro um
valor de 8 bits sendo que cada bit dele ir definir o estado de um bit da porta sada. O bit 0 da porta
ser representado pelo bit 0 do parmetro, o bit 1 pelo bit 1 e assim por diante. Como o motor de
passo utilizado possui 4 estatores, precisaremos setar apenas 4 bits.
Para acionar o primeiro estator, basta acionar a primeira sada digital da porta onde o motor
est acoplado, utilizando o mtodo DigitalPortWrite. O primeiro parmetro ser utilizado para
selecionar a porta correta, enquanto que o segundo acionar as sadas desejadas. Enviando um
nmero 1 no segundo parmetro, acionaremos a primeira sada, pois esse nmero em cdigo binrio
00000001. Caso queiramos acionar a terceira porta, devemos enviar o nmero 4, que em cdigo
11
binrio 00000100. Caso, queiramos fazer com que um motor de passo gire, precisamos acionar
seus estatores, um de cada vez. Podemos fazer isso enviando um nmero, cujo equivalente em
binrio seja adequado para acionar cada uma das 4 sadas durante um curto intervalo. A tabela a
seguir mostra a relao entre o nmero enviado e seu valor binrio.
Nmero decimal
Valor binrio
00000001
00000010
00000100
00001000
00000001
Enviando esses valores, com um pequeno intervalo entre cada um, acionaremos cada uma
das quatro primeiras sadas digitais, e consequentemente, os quatro estatores do motor de passo.
Sendo assim, o motor se movimentar. Para fazer com que ele gire no sentido contrrio, basta
apenas inverter os nmeros a serem enviados para a porta de sada digital.
No modo descrito acima, acionamos um estator de cada vez, utilizando o modo de baixo
torque. Para um maior torque, basta apenas acionarmos dois estatores simultaneamente. Para isso,
devemos modificar os valores a serem enviados. Ao enviar esses valores, com um pequeno
intervalo entre cada um, teremos um maior torque disponvel no motor de passo, embora o consumo
tambm seja maior.
Nmero decimal
Valor binrio
12
00000011
00000110
00001100
00001001
00000011
8);
4);
2);
1);
end;
// Realizar a instruo quando o SpeedButtonBaixo no
// estiver acionado
if SpeedButtonBaixo.Down = false then
begin
//seta todas as sadas digitais em zero
kit.DigitalPortWrite(ComboBoxPorta.Itemindex, 0);
end;
13
6 Concluso
Com esse tutorial, foi possvel aprender a construo de uma placa destinada ao controle de
um motor de passo utilizando um integrado ULN2003 e elaborar a programao destinada a
control-lo, utilizando as portas de sadas digitais. Trata-se de um desenvolvimento complexo, mas
que pode resultar em timos resultados, tanto em conhecimento adquirido quanto em praticidade de
operao.
15