You are on page 1of 2

Controlador de motor de passo

com PIC 12C508 025


C. Tavernier fica parado, mas em modo travado, dado protegendo desse modo os transistores.
que estamos falando de um motor de Contudo, se o motor usado precisar menos
www.tavernier-c.com passo. Quando a entrada L vai para o nível de 500 mA, e mais importante, se precisar
Quando não estamos usando um motor lógico zero, o motor roda numa direção, controlar dois motores deste tipo, existe
de passo para obter um posicionamento enquanto que se a entrada R for para o uma solução elegante e engenhosa, apre-
preciso de um elemento de um robô, nível lógico zero ele roda na outra direção. sentada na Figura 3. Esta usa um circuito
podemos usar este como um motor de Se ambas as entradas estiverem no nível integrado excitador ULN2803, usado geral-
tração, em vez dos tradicionais servos lógico zero, a entrada R tem prioridade, mente para excitar relés, e que inclui oito
modificados. Nesse caso, não há necessi- de forma que o motor roda nessa direção. transistores Darlington de média potência
dade de contar os passos que o motor dá, A velocidade de rotação do motor é mais os respectivos diodos de proteção.
uma vez que o que queremos é que este fixa, mas, como estamos fornecendo Assim, este circuito integrado é capaz de
gire de uma forma contínua numa direção a listagem com o código fonte do soft- controlar qualquer tipo de motor passo-a-
ou em outra. ware usado nesta aplicação, é muito -passo de pólo simples, desde que a ten-
Existem várias soluções para controlar um simples o leitor alterar isto se não estiver são não exceda os 50 V e a corrente por
motor, onde algumas são apresentadas ao seu agrado, ou mesmo para incluir enrolamento seja inferior a 500 mA.
nesta edição: usando um circuito inte- a possibilidade de ajuste de veloci- Adicionalmente, como o ULN2803 pos-
grado especifico para controle de motores dade externo, caso seja necessário. sui oito estágios idênticos, pode ser usado
de passo, usando um ou mais saídas de O circuito da parte inteligente do nosso com dois controladores como o que se
uma porta de um microcontrolador pre- controlador é apresentado na Figura pode ver na Figura 1, e, neste caso, con-
viamente programado, ou construir um 1, e como pode ver este usa um micro- trolar dois motores de propulsão para
circuito de controle baseado em circuito controlador PIC12C508 da Microchip. robô: um na esquerda e outro na direita,
integrados lógicos convencionais. Neste caso, configurado para usar o designados por MA e MB na figura.
Contudo, estas soluções estão longe de gerador de relógio interno e o modo Construir uma ou outra destas versões é
ser perfeitas quando se pretende utilizar de reset do circuito, não precisando muito simples. O PIC12C508 precisa ser
um motor de passo como motor de tração. de qualquer componente externo para programado com o arquivo objeto do
Todos eles precisam gerar pulsos de uma essas funções, de forma que todas as programa, que você pode encontrar no
forma contínua enquanto quisermos que linhas das portas estão disponíveis. site da Elektor, ou então no site do autor
o motor rode, mesmo que seja necessário As portas paralelas GP2 e GP3 são usa- (www.tavernier-c.com).
implementar um oscilador programável, das como entradas, e como GP2 não tem Se você construir o amplificador de
ou usar recursos do microcontrolador resistências pull-up internas, isto é imple- potência com transistor, tenha em
principal do robô. mentado por R1. As portas paralelas GP0, mente que T1-T4 não precisam de dis-
Decidimos então sugerir uma outra GP1, GP4 e GP5 são usadas como saídas sipador de calor desde que a cor-
solução para controlar este motor de para gerar os pulsos de controle para o rente consumida pelo motor não
passo de modo que ele gire numa direção motor. Estes podem ser amplificados por
ou em outra, recorrendo a simples sinais dois tipos de estágios de potência, depen- 1
lógicos. Como os motores de propulsão dendo do tipo e do número de motores a IC2
7805 +U
em robôs são usados habitualmente aos controlar; daqui a alguns instantes vamos
pares, vamos disponibilizar um contro- dar uma olhada nesses circuitos. C2 C1 C3 C4

lador duplo, adaptando um circuito inte- O 12C508 precisa ser alimentado com 47µ 10n 220n 470µ

grado bastante comum de modo a realizar uma tensão de 5 V, derivada da alimen- 16V 25V

uma outra tarefa diferente. tação do motor através de um regulador


Uma vez que um motor de passo, quando de três pinos (IC2). Se o controlador for IC1 1
R1
usado para tração, não precisa ser preciso apenas para um motor, ou se o motor a
10k

7
em termos do posicionamento, e também controlar precisar mais de 500 mA por GP0
6
GP0
GP1 GP1
no que diz respeito à precisão dos passos, enrolamento, pode ser usado o estágio L
5
GP2/T0CK
os modelos simples com um único pólo de potência apresentado na Figura 2. Este R
4
GP3/MCLR
3
são adequados. Assim, o nosso circuito foi utiliza transistores bipolares convencion- GP4/OSC2
GP5/OSC1
2
GP4
GP5
projetado para usar este tipo de motores. ais que, dadas as suas características, são
Isto permite controlarmos o motor através capazes de comutar correntes até 3 A. Os 8 12C508
de duas entradas lógicas TTL ou CMOS. diodos D1 a D8 limitam os eventuais picos
070302 - 11
Quando estas duas entradas (L e R) estão de corrente gerados pela comutação da
no nível lógico alto (ou em aberto) o motor alimentação dos enrolamentos do motor,

41
2 +U 3 +U

D8
BD679
T4
R1
GP0 1k
D1 L2 L1

R2 D2

GP1 1k 10 MA M
D7
T3 1 18
BD679 GP0A I1 O1
2 17 L3 L4
GP1A I2 O2
3 IC1 16
L2 L1 GP4A I3 O3 +U M
+U M 4 15
GP5A I4 O4
D1...D8 = 1N4004 M1 M 5 14
GP0B I5 O5
6 ULN2803 13
L3 L4 GP1B I6 O6
7 12
GP4B I7 O7
D6 8 11 L6 L5
BD679 GP5B I8 O8
T2 VEE
R3
GP4 1k 9 MB M
D3

D4
L7 L8
R4
GP5 1k
D5
T1
BD679

070302 - 12 070302 - 13

a construção mecânica, esta pode ser sua velocidade de rotação. A palavra de


Tabela 1. Programação da duração do passo,
através da alteração da constante usada no comum aos quatro transistores, mas neste controle pode ser encontrada na Tabela 1.
programa. caso vai precisar usar uma mica isoladora Para fazer isto, você apenas precisa alterar
entre o alumínio e os transistores. a constante binária na linha:
Constante binária de Duração
passo Se você construir a versão baseada no
ULN2803, não existem precauções espe- MOVLW B’10010101’
10010010 1 ms ciais, além de não exceder a corrente
10010011 2 ms máxima permitida de 500 mA. Mesmo por cima da linha que contém
10010100 4 ms Como estamos fornecendo a lista- OPTION na listagem do código fonte. Com
gem completa do software progra- o valor original, a duração de um passo é de
10010101 8 ms mado no PIC12C508, o leitor pode 8 ms, mas a tabela acima indica que cons-
10010110 16 ms efetuar as modificações que achar tante deve usar de acordo com a duração
10010111 32 ms necessárias. Se você não está famil- de passo que pretende.
iarizado com o assembler do PIC, aqui (070302-1)
ficam os detalhes que precisa para a alte- Artigo original: PIC12C508 Stepper Motor Controller – July/August
exceda o 1 A. Caso contrário, parafuse- ração mais importante que possa querer 2007
-os a uma pequena chapa de alumínio fazer: alterar a velocidade dos pulsos
com alguns cm2 de área. Para simplificar de controle do motor, e assim, alterar a

42

You might also like