Vous êtes sur la page 1sur 152

UNIVERSIDADE ESTADUAL DE CAMPINAS

Faculdade de Engenharia Mecnica


Engenharia de Controle e Automao

ES951 / ES952 - TRABALHO DE GRADUAO

Estudo de Encoders pticos Baseados no Efeito Moir


e Projeto de um Kit de Encoder Didtico

Aluno: Victor Adriano Turchetti

RA: 025366

Orientador: Prof. Dr. Luiz Otvio Saraiva Ferreira

NOVEMBRO - 2007

FACULDADE DE ENGENHARIA MECNICA


COORDENAO DE GRADUAO
ENGENHARIA DE CONTROLE E AUTOMAO
UNICAMP

ES952 - TRABALHO DE GRADUAO II


2 o semestre de 2007
ALUNO:

RA:

TTULO:

MEMBRO
(1)

NOTAS DA BANCA

MEMBRO
(2)

ORIENTADOR

Contedo do Trabalho
Apresentao do Trabalho
Seminrio de Apresentao
A t r i b u ir c o n c e i t o :

E x c e l e n t e , B o m, R e g u la r , I n s u f i c ie n t e

M DI A
F IN AL

NOTA GLOBAL
A t r ib u i r n o t a d e 0 - 1 0 ( n o t a m n i ma p a r a a p r o v a o : 5 , 0 )

Campi nas,

de

de

_________________________________
Prof.
Membro (1)
Carimbo e Assinatura

_________________________________
Prof.
Membro (2)
Carimbo e Assinatura

_________________________________
Prof.
Orientador
Carimbo e Assinatura

_________________________________
Prof. Dr. Eurpides G. de Oliveira Nbrega
Coordenador de Graduao
Carimbo e Assinatura

Agradecimentos
Gostaria de agradecer ao professor Luiz Otvio Saraiva Ferreira pelas orientaes prestadas
e pela disponibilidade de atendimento para esclarecer dvidas. Gostaria de agradecer ao Marclio
e ao Paulo Lamim, que contriburam quando da utilizao do laboratrio de mecatrnica.
Gostaria tambm de deixar um agradecimento aos meus pais, pelo apoio e suporte constantes.

ii

Resumo
O presente trabalho traz, inicialmente, um estudo sobre encoders pticos baseados no efeito
moir, apresentando os princpios de funcionamento, discutindo sistemas para aumentar a
resoluo (sistemas resolvedores), mostrando as tcnicas de fabricao de discos e abordando
questes relacionadas a erros e testes de encoders. Em seguida, apresenta o desenvolvimento de
um kit de encoder composto por um encoder didtico de baixo custo (128 PPR), um encoder de
referncia (1024 PPR), uma interface eletrnica com microcontrolador e uma interface grfica do
usurio em MATLAB. O encoder didtico desenvolvido utilizando o efeito moir para gerar a
defasagem de 90 eltricos entre seus canais A e B. Para isso, so utilizados dois discos, um
mvel com 32 pares de setores translcido-opaco e outro esttico com 33 pares. A diferena de 1
par de setores translcido-opaco permite a obteno da defasagem de 90 eltricos por meio do
posicionamento de dispositivos de leitura a 90 angulares. A resoluo do encoder obtida
fisicamente (32 PPR) ampliada (128 PPR) com a utilizao de um resolvedor eletrnico via
software, implementado em um microcontrolador. O microcontrolador tambm utilizado para a
transmisso de dados, via serial, a um PC executando a interface grfica do usurio (GUI). A
GUI criada em MATLAB permitiu caracterizar o funcionamento do encoder didtico atravs de
dois tipos de experimentos: aquisio da posio e teste de preciso. Nos experimentos de
aquisio da posio, o encoder didtico foi movimentado nos dois sentidos e com velocidades
diferentes, fazendo com que os dados de posio fossem lidos e armazenados em MATLAB,
onde foram determinadas as velocidades. Cada experimento teve os resultados apresentados na
forma grfica, refletindo, coerentemente, o movimento fsico imposto ao encoder didtico. Nos
experimentos de teste de preciso, o encoder didtico foi movimentado juntamente com um
encoder de referncia. Alm das leituras da posio do encoder didtico, o MATLAB recebeu as
quantidades de pulsos do encoder de referncia que ocorreram entre cada duas leituras do
encoder didtico. Os resultados dos experimentos tambm foram apresentados graficamente,
onde foi possvel inferir a respeito da preciso do encoder didtico, que ficou em 1,4 , metade
de sua resoluo (360 / 128PPR = 2,8).

Palavras-chave: encoder ptico, efeito moir, encoder incremental, encoder absoluto, resolvedor,
fabricao de discos de encoder, erros de encoder, teste de encoder, kit didtico, PIC, MATLAB.

iii

Abstract
First, the present work brings a study about optical encoders based on moir effect, showing the
working principles, discussing systems to increase the resolution (resolving systems), showing
the manufacturing techniques of encoder disks and approaching questions related to errors and
tests of encoders. Next, it shows the development of an encoder kit composed of a low cost
didactic encoder (128 PPR), a reference encoder (1024 PPR), an electronic interface with a
microcontroller, and of a graphical user interface in MATLAB. The didactic encoder is
developed using the moir effect to generate the difference in phase of 90 electrical degrees
between its channels A and B. Therefore, two disks are used, one moving with 32 pairs of
translucent-opaque sectors, and another one static with 33 pairs. The difference of 1 pair of
translucent-opaque sectors allows obtaining the difference in phase of 90 electrical degrees
through the positioning of the reading devices at 90 angular degrees. The resolution of the
encoder obtained physically (32 PPR) is increased (128 PPR) with the use of an electronic
resolving system via software, programmed in a microcontroller. The microcontroller is also used
to transmit data, via serial port, to a PC running the graphical user interface (GUI). The GUI
created in MATLAB allowed characterizing the operation of the didactic encoder through two
types of experiments: position acquisition and accuracy test. In the position acquisition
experiments, the didactic encoder was turned in both directions and at different speeds, so that the
position data could be read and recorded in MATLAB, where the speeds were calculated. Each
experiment had its results showed graphically, reflecting coherently the physical turn applied to
the didactic encoder. In the accuracy test experiments, the didactic encoder was turned at the
same time as the reference encoder. Besides receiving the position readings of the didactic
encoder, MATLAB received the quantities of pulses of the reference encoder that happened
between each two readings of the didactic encoder. The results of the experiments were also
showed graphically, where it was possible to infer about the accuracy of the didactic encoder, that
was in 1,4, half of its resolution (360 / 128PPR = 2,8).

Key words: optical encoder, moir effect, incremental encoder, absolute encoder, resolving
systems, encoder disks manufacturing, encoder errors, encoder testing, didactic kit, PIC, MATLAB.

iv

ndice
1. Introduo ................................................................................................................................... 11
2. Princpio de Funcionamento de Encoders pticos ..................................................................... 22
2.1 O Efeito Moir .......................................................................................................................... 22
2.2 Batimentos ................................................................................................................................ 99
16
2.3 Introduo aos Sistemas de Medio ...................................................................................... 16
16
2.3.1 Sistemas de Medio ........................................................................................................... 16
2.3.2 Transdutores ........................................................................................................................ 18
18
2.4 Encoders ................................................................................................................................. 20
20
2.4.1 Fundamentos do Encoder Incremental ................................................................................ 20
20
2.4.2 Encoder ptico Incremental ................................................................................................ 23
23
31
2.4.3 Fundamentos do Encoder Absoluto ..................................................................................... 31
2.4.4 Encoder ptico Absoluto .................................................................................................... 37
37
3. Resolvedores ............................................................................................................................. 39
39
3.1 Resolvedores Eletrnicos ....................................................................................................... 39
39
3.2 Resolvedores pticos ............................................................................................................. 47
47
4. Tcnicas de Fabricao de Discos e Rguas de Encoders pticos .......................................... 50
50
4.1 Tcnica Industrial Utilizando o Processo de Lift-off ............................................................. 50
50
4.1.1 Preparao Inicial do Disco ................................................................................................. 51
51
4.1.2 Processo de Lift-off ............................................................................................................. 53
53
60
4.2 Tcnica para Fins Didticos Utilizando Materiais de Baixo Custo ........................................ 60
5. Erros e Testes de Encoders pticos .......................................................................................... 62
62
5.1 Erros Associados a Encoders pticos Incrementais Rotativos .............................................. 62
62
5.2 Testes de Encoders pticos Incrementais Rotativos .............................................................. 68
68
6. Materiais e Mtodos ................................................................................................................. 77
6.1 Projeto e Montagem da Mecnica do Kit de Encoder ............................................................ 77
6.2 Projeto e Montagem da Eletrnica do Kit de Encoder ........................................................... 86
6.3 Desenvolvimento do Software Embarcado ............................................................................ 91
6.4 Desenvolvimento da Interface com o Usurio ....................................................................... 98
6.5 Manual de Experimentos ...................................................................................................... 104
6.5.1 Aquisio da Posio e Determinao da Velocidade ....................................................... 105
6.5.2 Teste de Preciso Utilizando um Encoder de Referncia .................................................. 107
7. Resultados e Discusso ........................................................................................................... 109
7.1 Construo do Kit de Encoder .............................................................................................. 109
7.2 Experimentos de Aquisio da Posio ................................................................................ 112
7.3 Experimentos de Teste de Preciso ...................................................................................... 115
8. Concluses e Sugestes para Prximos Trabalhos ................................................................. 76
119
Referncias Bibliogrficas .......................................................................................................... 77
121
Anexos ........................................................................................................................................ 124
79

Lista de Figuras
Figura 2.1 - Efeito moir ................................................................................................................ 2
Figura 2.2 - Efeito moir em cores ................................................................................................. 3
Figura 2.3 - Surgimento das franjas moir ..................................................................................... 4
Figura 2.4 - Efeito moir entre duas grades de linhas retas com mesmo espaamento e um ngulo
2 entre elas ................................................................................................................................... 6
Figura 2.5 - Padres moir causados pela sobreposio de duas grades de linhas retas ................ 7
Figura 2.6 - Geometria utilizada para determinar o espaamento e o ngulo das franjas moir .... 8
Figura 2.7 - Exemplo de batimento .............................................................................................. 11
Figura 2.8 - Exemplo de batimento. Ondas y1, y2, e resultante y=y1+y2 num mesmo grfico .. 12
Figura 2.9 - Exemplo de batimento gerado pela sobreposio de duas grades. Uma grade com n1
= 352 linhas e outra com n2 = 350 linhas ..................................................................................... 13
Figura 2.10 - Exemplo de batimento gerado pela sobreposio de duas grades. Uma grade com
n1=354 linhas e outra com n2=350 linhas .................................................................................... 13
Figura 2.11 - Exemplo de batimento gerado pela sobreposio de duas grades. Uma grade com
n1=358 linhas e outra com n2=350 linhas .................................................................................... 14
Figura 2.12 - Exemplo de grade circular de linhas radiais com Nlinhas=100 .............................. 15
Figura 2.13 - Exemplo de grade circular de linhas radiais com Nlinhas=101 .............................. 15
Figura 2.14 - Exemplo de batimento gerado pela sobreposio de duas grades circulares. Uma
grade com Nlinhas=100 e outra com Nlinhas=101 ...................................................................... 15
Figura 2.15 - Exemplo de batimento gerado pela sobreposio de duas grades circulares. Uma
grade com Nlinhas=100 e outra com Nlinhas=102 ...................................................................... 16
Figura 2.16 - Exemplo de batimento gerado pela sobreposio de duas grades circulares. Uma
grade com Nlinhas=100 e outra com Nlinhas=104 ...................................................................... 16
Figura 2.17 - Estrutura geral de um sistema de medio e controle ............................................. 17
Figura 2.18 - Princpio de encoder incremental rotativo e encoder incremental linear ................ 21
Figura 2.19 - Sinais fornecidos por um encoder incremental. Canais A e B em quadratura ........ 22
Figura 2.20 - Determinao da direo de movimento utilizando um flip-flop tipo D ................ 22
Figura 2.21 - Esquema de encoder com disco constitudo de setores transparentes e opacos ...... 23
Figura 2.22 - Esquema de encoder com rgua constituda de setores refletivos e no refletivos . 24
Figura 2.23 - Mscara, em (a), com quatro janelas dispostas de modo a gerar uma defasagem de
90 eltricos entre os sinais das fotoclulas, em (b) ..................................................................... 25
Figura 2.24 - Canais A e B ........................................................................................................... 25
Figura 2.25 - Grades com mesmo espaamento dos setores presentes no elemento mvel ......... 26
Figura 2.26 - Mscara com quatro grades dispostas de modo a gerar uma defasagem de 90
eltricos entre os sinais dos fotodetectores, no caso fotoclulas .................................................. 27
Figura 2.27 - Mscara com grade inclinada em relao aos setores presentes no elemento mvel,
gerando uma franja moir ............................................................................................................. 27
Figura 2.28 - Dispositivos de leitura distribudos verticalmente para obter os sinais defasados . 28
Figura 2.29 - Sobreposio de elementos com diferena de 1 par ............................................... 28
28
Figura 2.30 - Sobreposio de elementos com diferena de 1 par e aps o deslocamento relativo
equivalente a um setor/espaamento ............................................................................................ 29
Figura 2.31 - Exemplos comerciais de encoders pticos incrementais lineares .......................... 30

vi

Figura 2.32 - Encoder ptico incremental rotativo ....................................................................... 30


Figura 2.33 - Encoder absoluto ..................................................................................................... 31
Figura 2.34 - Circuitos para converso do cdigo Gray para o cdigo binrio natural ................ 34
Figura 2.35 - Exemplo de mecanismo multi-revolues .............................................................. 36
Figura 2.36 - Esquema bsico de um encoder ptico absoluto .................................................... 37
Figura 2.37 - Sistemas bsicos de focalizao ............................................................................. 38
Figura 2.38 - Exemplos comerciais de encoders pticos absolutos rotativos .............................. 38
Figura 3.1 - Obteno de dois sinais senoidais defasados de 90 eltricos .................................. 41
Figura 3.2 - Transformao senide / onda quadrada .................................................................. 41
Figura 3.3 - Formas de onda de um sistema resolvedor sem interpolador eletrnico .................. 42
Figura 3.4 - Circuito interpolador eletrnico ............................................................................... 43
Figura 3.5 - Formas de onda de um sistema resolvedor com interpolador eletrnico. A resoluo
obtida neste exemplo oito vezes maior ..................................................................................... 45
Figura 3.6 - Exemplos comerciais de circuito interpolador eletrnico ........................................ 46
Figura 3.7 - Obteno de N sinais senoidais igualmente defasados, N = 4 (esq) e N = 5 (dir) ... 48
Figura 4.1 - Exemplos de discos de encoders pticos .................................................................. 50
Figura 4.2 - Expanso em funo do tipo de vidro, tamanho e temperatura ................................ 52
Figura 4.3 - Transmisso em funo do comprimento de onda para diferentes tipos de vidro .... 52
Figura 4.4 - Etapas iniciais do processo de lift-off ...................................................................... 55
Figura 4.5 - Perfis aps a exposio radiao e revelao ........................................................ 56
Figura 4.6 - Perfil obtido com a aplicao de clorobenzeno sobre uma resina positiva antes da
revelao ...................................................................................................................................... 56
Figura 4.7 - Resultado obtido com a deposio de uma pelcula de metal sobre um substrato, via
processo de evaporao do metal ................................................................................................. 58
Figura 4.8 - Etapas finais do processo de lift-off ......................................................................... 59
Figura 4.9 - Exemplo de disco incremental obtido com programa em MATLAB, Nlinhas=36 .. 60
Figura 4.10 - Exemplo de tcnica para construo de um disco de encoder ptico para fins
didticos empregando materiais de baixo custo ........................................................................... 61
Figura 5.1 - Sistema genrico com encoder ................................................................................. 64
Figura 5.2 - Excentricidade .......................................................................................................... 65
Figura 5.3 - Inclinao do disco/escala ........................................................................................ 67
Figura 5.4 - Princpio de um encoder ptico incremental rotativo ............................................... 68
Figura 5.5 - Relao fotodetector-graduaes e amplitude do sinal de sada do fotodetector ..... 69
Figura 5.6 - Sistema implementado para a realizao da anlise ................................................. 69
Figura 5.7 - Imagem da intensidade de luz a uma posio L = 0,1 mm ....................................... 70
Figura 5.8 - Resultado analtico do sinal de sada do modelo do fotodetector ............................. 71
Figura 5.9 - Influncia da distncia entre o fotodetector e o disco graduado ............................... 71
Figura 5.10 - Influncia da distncia entre o fotodetector e o disco graduado. Resultado das
medies do sinal de sada do fotodetector em um encoder real .................................................. 72
Figura 5.11 - Influncia da razo entre a largura da rea ativa do fotodetector e o espaamento
das graduaes do disco ............................................................................................................... 72
Figura 5.12 - Influncia da razo entre a largura da rea ativa do fotodetector e o espaamento
das graduaes. Resultado das medies do sinal de sada do fotodetector em um encoder real .. 73
Figura 5.13 - Posio relativa entre o fotodetector e o disco graduado ........................................ 74
Figura 5.14 - Influncia da concentricidade entre o fotodetector e o disco graduado .................. 74
Figura 5.15 - Teste de preciso de um encoder de menor resoluo utilizando um encoder de
referncia ....................................................................................................................................... 76
38

38

41

41

42

43

45

46

48

50

52

52

55

56

56

58

59

60

61

64

65

67

68

69

69

70

71

71

72

72

73

74

74

76

vii

Figura 6.1 - Mtodo escolhido para gerao do efeito moir ....................................................... 78


Figura 6.2 - Croqui da base metlica ............................................................................................ 79
Figura 6.3 - Croqui do eixo de plstico ......................................................................................... 34
79
Figura 6.4 - Croqui do suporte de papelo para fixar os fotodiodos ............................................ 80
Figura 6.5 - Croqui do suporte de papelo para fixar os LEDs infravermelho ........................... 37
80
Figura 6.6 - Croqui dos CDs de plstico transparente ................................................................ 80
Figura 6.7 - Croqui do disco incremental em transparncia com 33 pares de setores .................. 80
Figura 6.8 - Croqui do disco incremental em transparncia com 32 pares de setores .................. 81
34
Figura 6.9 - Croqui dos suportes metlicos .................................................................................. 81
Figura 6.10 - Croqui das cantoneiras metlicas com rasgos ........................................................ 37
81
Figura 6.11 - Croqui das cantoneiras metlicas com furos .......................................................... 81
Figura 6.12 - Croqui de um conjunto de componentes ................................................................ 82
Figura 6.13 - Croqui da sub-montagem dos fotodiodos no suporte ............................................. 34
82
Figura 6.14 - Croqui da sub-montagem dos LEDs infravermelho no suporte ............................ 83
Figura 6.15 - Croquis das etapas de montagem do encoder didtico ........................................... 37
84
Figura 6.16 - Circuito para ligao de um par emissor-receptor .................................................. 87
Figura 6.17 - Circuito quadrador .................................................................................................. 87
Figura 6.18 - Defasagem de 90 eltricos entre os sinais dos pares emissor-receptor ................. 34
88
Figura 6.19 - Circuito para ligao e condicionamento dos sinais dos fotodiodos e dos LEDs
infravermelho, incluindo a pinagem do CI LM324 ...................................................................... 88
Figura 6.20 - Ligao do encoder de referncia ........................................................................... 37
89
Figura 6.21 - Conector de expanso ligando a protoboard ao mdulo II ..................................... 89
Figura 6.22 - Formas de onda de um sistema resolvedor sem interpolador eletrnico ................ 92
Figura 6.23 - Diagrama SDL para o encoder didtico ................................................................. 34
92
Figura 6.24 - Fluxograma simplificado de funcionamento do software embarcado ................... 93
Figura 6.25 - Teste de preciso de um encoder de menor resoluo utilizando um encoder de
referncia ..................................................................................................................................... 37
95
Figura 6.26 - Registradores de configurao da transmisso/recepo serial ............................. 97
Figura 6.27 - Desenvolvimento da interface com o usurio GUI ............................................. 99
Figura 6.28 - Tela principal da interface com o usurio do kit de encoder didtico .................. 105
34
Figura 7.1 - Mecnica do kit de encoder didtico construdo ..................................................... 109
Figura 7.2 - Eletrnica do kit de encoder didtico construdo .................................................... 110
Figura 7.3 - GUI do kit de encoder didtico construdo ............................................................. 34
111
Figura 7.4 - Resultados do ensaio I ............................................................................................ 112
Figura 7.5 - Resultados do ensaio II ........................................................................................... 113
Figura 7.6 - Resultados do ensaio III .......................................................................................... 114
Figura 7.7 - Resultados do ensaio IV ......................................................................................... 115
Figura 7.8 - Resultados do ensaio V ........................................................................................... 117
Figura 7.9 - Resultados do ensaio VI ......................................................................................... 118
Figura 7.10 - Resultados do ensaio VII ...................................................................................... 118

viii

Lista de Tabelas
Tabela 2.1 - Cdigos comuns em discos de encoders absolutos .................................................. 32
Tabela 2.2 - Cdigo binrio natural e cdigo Gray ...................................................................... 35
Tabela 2.3 - Exemplo de cdigo Gray deslocado em 3 unidades ................................................ 36
36
Tabela 4.1 - Caractersticas dos principais tipos de vidro ............................................................ 51
Tabela 6.1 - Correspondncia entre os segmentos dos displays e os terminais do PIC ............... 51
90
Tabela 6.2 - Correspondncia entre as vias de seleo dos displays e os terminais do PIC ........ 51
91

ix

1. Introduo
Os encoders pticos so dispositivos amplamente utilizados em aplicaes que exigem o
controle de posio e velocidade, tais como em robs industriais e mquinas ferramentas. Grande
parte deste tipo de encoder se baseia no efeito moir, um efeito muito interessante proveniente da
sobreposio de estruturas repetitivas. Um estudo sobre encoders pticos, alm fornecer uma
base terica para a utilizao dos mesmos, permitir o conhecimento dos princpios e tecnologias
envolvidas. O complemento do estudo atravs de um projeto prtico de um kit de encoder
didtico servir para consolidar estes conhecimentos e outros adquiridos durante a graduao em
engenharia mecatrnica.

2. Princpio de Funcionamento de Encoders pticos


Este captulo apresenta os conceitos bsicos para a compreenso do funcionamento de
encoders pticos. Ele comea discutindo e analisando matematicamente o efeito moir, que surge
da sobreposio de estruturas repetitivas e encontra aplicaes em diversas reas. Em seguida,
aborda o fenmeno do batimento associado ao efeito moir, atravs do equacionamento e da
apresentao de exemplos. O captulo faz ainda uma breve introduo aos sistemas de medio,
destacando sua funo e debatendo o conceito de transdutor. Finalmente, so apresentados os
fundamentos dos encoders incrementais e absolutos, dando maior nfase aos encoders pticos.

2.1 O Efeito Moir


Seguramente, todos j se depararam com o efeito moir em algum momento. Ele est
presente em situaes do dia-a-dia e pode trazer curiosidade queles que o observam. Exemplos
clssicos do efeito moir surgem quando uma cortina se sobrepe outra e enxerga-se atravs
delas (tambm se aplica a tecidos), quando possvel ver um lado treliado de uma ponte na
frente do outro, ou simplesmente quando colocamos dois pentes de cabelo frente-a-frente. Em
todos esses casos so observados padres constitudos de reas mais claras e mais escuras. A
Figura 2.1, retirada de (POST et al, 1994), ilustra o caso dos dois pentes e tambm mostra o
efeito da sobreposio de duas peneiras finas.

(a)

(b)
Figura 2.1 - Efeito moir. (a) Sobreposio de duas peneiras. (b) Sobreposio de dois pentes.
(POST et al, 1994).

Em (AMIDROR, 2000) possvel encontrar uma descrio sobre a origem do efeito moir.
Ele nada mais do que um fenmeno que ocorre quando estruturas repetitivas do mesmo tipo
(como retculos, telas ou grades) so sobrepostas e visualizadas. Consiste ento, de um novo
padro de reas claras e escuras alternadas (franjas moir), que so observadas apenas com a
sobreposio, ou seja, no aparecem em nenhuma das estruturas originais isoladamente.
Segundo (AMIDROR, 2000), o termo moir proveniente da Frana, onde ele
originariamente se referia a um tipo especial de seda que possua como caracterstica um padro
alternado e ondulado. Muitas vezes, tal tecido era colocado em duas camadas para se fazer
determinada roupa, de modo que o movimento dessa roupa no corpo da pessoa criasse um
movimento relativo dos tecidos, gerando um efeito visual bem interessante, o efeito moir. dito
que esse efeito em roupas j era utilizado pelos chineses desde os tempos antigos. Diante desses
relatos, vale ressaltar que o termo moir no se refere ao nome de um cientista que estudou o
efeito moir. Portanto, no necessrio que se inicie a escrita desse termo com letra maiscula.
O efeito moir pode ser aplicado em inmeros campos do conhecimento e tecnologia. Isso
ocorre graas grande sensibilidade aos menores deslocamentos das estruturas sobrepostas. So
exemplos de aplicaes descritas em (POST et al, 1994) e (AMIDROR, 2000) a medio de
deformaes em objetos (deslocamentos no plano e fora dele), a medio de ngulos e
movimentos muito pequenos, alinhamento ptico, cristalografia, documentos anti-falsificao,
arte e diverso. Amostras do efeito moir em cores, exibidas em (AMIDROR, 2000), podem ser
observadas na Figura 2.2, onde se v um misto de arte e diverso. Convm lembrar que o efeito
moir pode ser indesejado em algumas situaes como, por exemplo, na imagem de monitores de
computadores e principalmente na rea de impresso e reproduo colorida.

(a)

(c)

(b)

Figura 2.2 - Efeito moir em cores. (a) Padro RGB. (b) Verde e branco. (c) Vermelho e branco.
(AMIDROR, 2000).

Claro
Escuro
Claro
Escuro
Claro

Figura 2.3 - Surgimento das franjas moir. (AMIDROR, 2000).

Como foi dito anteriormente, a sobreposio de estruturas repetitivas responsvel pelo


aparecimento do efeito moir, que surge da distribuio geomtrica de reas claras e escuras. As
reas onde os elementos escuros das estruturas originais ficam exatamente uns sobre os outros
aparecem mais claras. Quando esses elementos escuros ficam uns entre os outros, ocorre um
maior preenchimento de espaos e essa regio tende a se tornar mais escura. A Figura 2.3,
adaptada de (AMIDROR, 2000), mostra o surgimento das reas claras e escuras (franjas moir).
Em (CREATH et al, 1992), encontra-se uma anlise que apresenta como calcular o padro
moir para qualquer sobreposio de estruturas repetitivas (grades). A anlise comea ao se
definir a funo transmisso de intensidade para duas grades f1 ( x, y ) e f 2 ( x, y ) , dadas por

f1 ( x, y ) = a1 + b1n cos[n1 ( x, y )]
n =1

f 2 ( x, y ) = a2 + b2 m cos[m2 ( x, y )] ,

(2.1)

m =1

onde ( x, y ) a funo que descreve a forma bsica das linhas da grade. Para a freqncia
fundamental, ( x, y ) igual a um inteiro multiplicado por 2 no centro de cada linha clara e

igual a um inteiro e meio multiplicado por 2 no centro de cada linha escura. Os coeficientes b
determinam o perfil das linhas da grade (i. e., onda quadrada, triangular, senoidal, etc.). Para um
perfil de linha senoidal, bi1 o nico termo no nulo.
Quando essas duas grades so sobrepostas, a funo transmisso de intensidade resultante
dada pelo produto

f1 ( x, y ) f 2 ( x, y ) =

m =1

n =1

a1a 2 + a1 b2 m cos[m 2 ( x, y )] + a 2 b1n cos[n1 ( x, y )] + b1n b2 m cos[n1 ( x, y )] cos[m2 ( x, y )] .


m =1 n =1

(2.2)

Os trs primeiros termos da Equao 2.2 fornecem informaes que podem ser
determinadas observando os dois padres separadamente. O ltimo termo o termo de interesse,
e pode ser reescrito como

Termo 4 =
+

1
b11b21 cos[1 ( x, y ) 2 ( x, y )]
2

1
b1n b2 m cos[n1 ( x, y) m2 ( x, y)] ;
2 m =1 n=1

n e m ambos 1
+

1
b1n b2m cos[n1 ( x, y) + m2 ( x, y)] x .
2 m =1 n=1

(2.3)

Esta expresso mostra que ao se sobrepor duas grades, a soma e a diferena entre as duas
grades obtida. O primeiro termo da Equao 2.3 representa a diferena entre o padro
fundamental e as duas grades. Ele pode ser usado para predizer o padro moir mostrado na
Figura 2.4. Assumindo que as duas grades esto orientadas com um ngulo 2 entre elas e com o
eixo y do sistema de coordenadas biseccionando esse ngulo, as duas funes das grades 1 ( x, y )
e 2 ( x, y ) podem ser escritas como

1 ( x, y ) =

( x cos + y sin )
e

2 ( x, y ) =

( x cos y sin ) ,

onde 1 e 2 so os espaamentos entre as linhas das duas grades.

(2.4)

y
2

/ 2 sin

Plano de
Observao

Figura 2.4 - Efeito moir entre duas grades de linhas retas com mesmo espaamento e um ngulo
2 entre elas. (CREATH et al, 1992).

A Equao 2.4 pode ser reescrita como

1 ( x, y ) 2 ( x, y ) =

beat

x cos +

y sin ,

(2.5)

onde a mdia dos espaamentos entre as linhas, e beat o comprimento de onda de


batimento entre as duas grades, dado por

beat =

12
.
2 1

(2.6)

Usando a Equao 2.3, as franjas moir sero as linhas cujos centros satisfazem a equao

1 ( x, y ) 2 ( x, y ) = M 2 .

(2.7)

Trs casos separados para o efeito moir podem ser considerados. Quando 1 = 2 = , o primeiro
termo da Equao 2.5 zero, e os centros das franjas so dados por
M = 2 y sin ,

(2.8)

onde M um inteiro correspondendo ordem da franja. Como esperado, a Equao 2.8 a


equao de linhas horizontais igualmente espaadas, como pode ser visto na Figura 2.4.
O outro caso simples ocorre quando as grades esto em paralelo, ou seja, = 0 . Isso faz
com que o segundo termo da Equao 2.5 seja anulado. As franjas moir, nesse caso, sero as
linhas que satisfazem
Mbeat = x .

(2.9)

Essas franjas so igualmente espaadas e so linhas verticais paralelas ao eixo y .


Para o caso mais geral, onde as duas grades tm diferentes espaamentos entre linhas e o ngulo
entre as grades diferente de zero, a equao para as franjas moir ser

M =

x cos + 2 y sin .
beat

(2.10)

Essa a equao de linhas retas cujo espaamento e orientao dependente da diferena relativa
entre os espaamentos das duas grades e do ngulo entre as grades. A Figura 2.5 mostra os
padres moir para esses trs casos.
y
Inclinado
Mesma Freqncia
y
No Inclinado
Freqncias Diferentes
y
Inclinado
Freqncias Diferentes

Figura 2.5 - Padres moir causados pela sobreposio de duas grades de linhas retas. (CREATH
et al, 1992).

D
C

Franjas
moir
Grades

Figura 2.6 - Geometria utilizada para determinar o espaamento e o ngulo das franjas moir.
Uso de duas grades de freqncias diferentes e inclinadas entre si. (CREATH et al, 1992).

A orientao e o espaamento das franjas moir para o caso geral podem ser determinados
a partir da geometria mostrada na Figura 2.6. A distncia AB pode ser escrita em termos dos
espaamentos das duas grades,

AB =

1
2
=
,
sin( ) sin( + )

(2.11)

onde o ngulo que as franjas moir fazem com o eixo y . Depois de rearranjar os termos, o
ngulo de orientao das franjas dado por

+
tan = tan 1 2
1 2

(2.12)

Quando = 0 e 1 2 , = 0 o , e quando 1 = 2 com 0 , = 90 o como esperado. O


espaamento das franjas perpendicular s linhas das franjas pode ser encontrado igualando as
quantidades para a distncia DE ,

DE =

sin 2

C
,
sin( + )

(2.13)

onde C o espaamento da franjas. Aps rearranjar os termos tem-se,


sin( + )
.
C = 1
sin 2

(2.14)

Substituindo a orientao das franjas , o espaamento da franjas pode ser encontrado em termos
dos espaamentos das grades e do ngulo entre as grades,

C=

12
sin 2 + (2 cos 2 1 ) 2
2
2

(2.15)

No limite quando = 0 e 1 2 , o espaamento da franjas se iguala beat , e no limite quando

1 = 2 = e 0 , o espaamento das franjas vale / (2 sin ) . Conhecendo 1 , consegue-se


determinar 2 e a partir da medio do espaamento e orientao das franjas.

2.2 Batimentos
O fenmeno conhecido como batimento, associado ao efeito moir, proveniente da
sobreposio de duas grades, de diferentes espaamentos (freqncias espaciais) e com linhas
paralelas entre si. Para efeito de anlise, as duas grades sero consideradas como duas ondas
distintas de mesma amplitude. Pode-se ento aplicar o princpio da sobreposio de ondas para
obter uma equao que represente os batimentos. Baseado em (HECHT, 2002), possvel iniciar
a anlise sobre os batimentos com a definio das equaes das duas ondas,
y1 = A cos(k1 x 1t )
y 2 = A cos(k 2 x 2 t ) ,

(2.16)

onde A a amplitude das ondas, ki a freqncia espacial e i a freqncia temporal. A onda


resultante da sobreposio das ondas y1 e y 2 dada por
y = y1 + y 2 = A cos(k1 x 1t ) + A cos(k 2 x 2 t ) = A[cos(k1 x 1t ) + cos(k 2 x 2 t )] ,

(2.17)

e que pode ser escrita na forma

1
1

y = 2 A cos [(k1 + k 2 ) x ( 1 + 2 ) t ] cos [(k1 k 2 ) x ( 1 2 ) t ]


2
2

(2.18)

com base na identidade trigonomtrica

1
1
cos + cos = 2 cos ( + ) cos ( ) .
2
2

(2.19)

Rearranjando a Equao 2.18 tem-se que


( + 2 )
( 2 )
(k + k 2 )
(k k 2 )
y = 2 A cos 1
x 1
t cos 1
x 1
t ,
2
2
2
2

(2.20)

onde se nota a presena de termos que contm a soma das freqncias e de termos que contm a
subtrao das freqncias, tanto no tempo quanto no espao. Para existir o batimento, os valores
das respectivas freqncias devem ser diferentes, mas prximos um do outro ( k1 k 2 e 1 2 ).
A freqncia de batimento definida como a diferena dessas freqncias ( k1 k 2 ou 1 2 ).
A seguir ser apresentado um exemplo para visualizao do fenmeno do batimento. O exemplo
foi realizado no MATLAB 7.0 e seu cdigo se encontra no Anexo I.
Supondo as duas ondas y1 e y 2 , definidas na Equao 2.16, com

A = 1 , k1 = 2 .24 ,

k 2 = 2 .20 , 1 = 2 = 1 , e para um instante de tempo qualquer, que no caso foi t = 0 , a onda


resultante dada por

10

2 (24 + 20)
2 (24 20)
y = 2 cos
x cos
x = 2 cos(44 x) cos(4 x) ,
2
2

(2.21)

onde possvel notar valores distintos no argumento dos cossenos. O cosseno cujo argumento
proveniente da subtrao de freqncias ( 4 ) ir modular a amplitude do sinal de maior
freqncia ( 44 ). justamente essa modulao que causa o aparecimento dos batimentos. A
Figura 2.7 apresenta os grficos das ondas individualmente. As trs ondas plotadas no mesmo
grfico podem ser observadas na Figura 2.8. A freqncia de batimento neste exemplo dada por
4
y1
3

(a)

-1

-2

-3

-4

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

4
y2
3

(b)

-1

-2

-3

-4

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

4
y=y1+y2
3

(c)

-1

-2

-3

-4

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Figura 2.7 - Exemplo de batimento. (a) Onda y1. (b) Onda y2. (c) Onda resultante y=y1+y2.

11

4
y1
y2
y=y1+y2

-1

-2

-3

-4

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Figura 2.8 - Exemplo de batimento. Ondas y1, y2, e resultante y=y1+y2 num mesmo grfico.
k1 k 2 = 2 .24 2 .20 = 2 .4 = 2 . f . Nota-se que o valor de f 4 , exatamente o nmero de
batimentos gerados, os quais podem ser vistos no grfico (c) da Figura 2.7.
Para o caso da sobreposio de duas grades de linhas retas paralelas entre si, o espaamento
entre linhas de uma grade tem valor bem prximo do espaamento entre linhas da outra grade,
mas so valores diferentes. A mesma anlise pode ser feita considerando o nmero de linhas de
cada grade que existem num mesmo intervalo de posio. Em ambos os casos h uma diferena
entre as freqncias espaciais. Continuando, quando h sobreposio de duas grades com essas
caractersticas, o fenmeno do batimento surge associado ao efeito moir. Os batimentos nesse
caso so observados na forma de franjas moir. O programa presente no Anexo II, desenvolvido
em MATLAB, ilustra bem o fenmeno do batimento. O programa gera e sobrepe duas grades de
linhas retas paralelas entre si. O espaamento de cada grade definido pelo nmero de linhas a
serem criadas num mesmo intervalo de posio (eixo x). Trs exemplos sero apresentados. O
primeiro exemplo gera uma grade com n1 = 352 linhas e outra com n2 = 350 linhas. A
sobreposio dessas grades mostrada na Figura 2.9. No segundo exemplo, apresentado na
Figura 2.10, utiliza-se n1 = 354 e n2 = 350 . O terceiro exemplo, com n1 = 358 e n2 = 350 , pode
ser visto na Figura 2.11. Como esperado, a diferena n1 n 2 igual ao nmero de batimentos
(franjas moir).

12

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0
1

Figura 2.9 - Exemplo de batimento gerado pela sobreposio de duas grades. Uma grade
com n1 = 352 linhas e outra com n 2 = 350 linhas.

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0
1

Figura 2.10 - Exemplo de batimento gerado pela sobreposio de duas grades. Uma grade
com n1 = 354 linhas e outra com n 2 = 350 linhas.

13

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

0
1

Figura 2.11 - Exemplo de batimento gerado pela sobreposio de duas grades. Uma grade
com n1 = 358 linhas e outra com n2 = 350 linhas.

Os batimentos associados ao efeito moir podem ser visualizados de um outro modo. Eles
tambm surgem com a sobreposio de duas grades circulares com nmero diferente de linhas
radiais. O programa (em MATLAB) apresentado no Anexo III auxilia na criao de grades
circulares de linhas radiais. O nmero de linhas da grade definido na varivel Nlinhas .
Exemplos de grades geradas podem ser vistas nas Figuras 2.12 e 2.13, com Nlinhas = 100 e
Nlinhas = 101 respectivamente. Essas duas grades, quando sobrepostas, originam a Figura 2.14,

onde visivelmente se observa uma rea mais clara e outra mais escura, representando um
batimento. Considerando agora a sobreposio de uma grade circular com Nlinhas = 100 e outra
com Nlinhas = 102 , obtm-se a Figura 2.15. Nesse caso aparecem duas reas claras e duas
escuras, em outras palavras, dois batimentos. Mais uma vez, o nmero de batimentos corresponde
diferena entre o nmero de linhas de uma grade e o nmero de linhas da outra grade. Essa
correspondncia sempre ocorre e est relacionada com a freqncia espacial. Sendo assim, se a
diferena entre o nmero de linhas fosse 4, o nmero de batimentos observados tambm seria 4.
Esse ltimo caso mostrado na Figura 2.16.

14

Figura 2.12 - Exemplo de grade circular de linhas radiais com Nlinhas = 100 .

Figura 2.13 - Exemplo de grade circular de linhas radiais com Nlinhas = 101 .

Figura 2.14 - Exemplo de batimento gerado pela sobreposio de duas grades circulares.
Uma grade com Nlinhas = 100 e outra com Nlinhas = 101 .

15

Figura 2.15 - Exemplo de batimento gerado pela sobreposio de duas grades circulares.
Uma grade com Nlinhas = 100 e outra com Nlinhas = 102 .

Figura 2.16 - Exemplo de batimento gerado pela sobreposio de duas grades circulares.
Uma grade com Nlinhas = 100 e outra com Nlinhas = 104 .

2.3 Introduo aos Sistemas de Medio


2.3.1 Sistemas de Medio
Como apresentado em (PALLS-ARENY et al, 1991), um sistema de medio tem a
funo de associar um nmero (valor) a uma grandeza (propriedade ou qualidade) de um objeto

16

ou evento, a fim de descrev-lo. Deve haver uma correspondncia entre as quantidades numricas
medidas e as propriedades descritas. Sistemas de medio podem ser utilizados para
monitoramento de processos, como a medio de temperatura, de volume de lquidos, ou de
dados clnicos. Tambm podem ser utilizados no controle de processos, como no controle de
nvel de um tanque, ou no controle de posio de uma esteira. Por fim, sistemas de medio
podem auxiliar na engenharia experimental, como no estudo de distribuio de temperaturas num
objeto com formato irregular, ou na determinao da distribuio de foras num teste de coliso
de um veculo, exemplos de (PALLS-ARENY et al, 1991). A Figura 2.17, traduzida do mesmo
livro, mostra o fluxo de dados em um sistema de medio e controle. Em uma medio,
imprescindvel que haja a aquisio das informaes por um sensor ou transdutor, mas tambm
necessrio que ocorra o processamento dessas informaes e a apresentao dos resultados numa
forma que o ser humano possa perceber.

Objetivos

Transdutor

Condicionamento
do sinal

Transmisso
dos dados

Display

Alarmes

Perturbaes

Sistema, planta
ou processo

Controlador

Supervisor

Controle manual
Atuador

Condicionamento
do sinal

Transmisso
de ordens

Figura 2.17 - Estrutura geral de um sistema de medio e controle. (PALLS-ARENY et al, 1991).

17

2.3.2 Transdutores
Como (PALLS-ARENY et al, 1991) define, um transdutor um dispositivo que
converte um sinal de uma forma fsica para um sinal correspondente que possui forma fsica
diferente. Da definio percebe-se que um transdutor uma espcie de conversor de energia,
como o autor mesmo afirma. Sendo assim, o sinal de entrada deve necessariamente ter esforo e
fluxo, componentes que multiplicados originam a potncia. Ele lembra que, no entanto, em
sistemas de medio, um desses componentes presentes no sinal medido tem valor desprezvel,
de modo que somente o outro componente medido. Por exemplo, ao realizar uma medio de
fora, o deslocamento (e velocidade) do transdutor desprezado. Quando medida uma corrente
eltrica, a queda de tenso no ampermetro deve ser prxima de zero. Vale ressaltar que um
transdutor sempre ir consumir uma pequena parte da potncia. Logo, deve-se garantir que a ao
de medir no perturbe excessivamente o sistema que est sendo medido. Caso contrrio, essa
interferncia pode levar a um erro na medio.
Existem seis tipos principais de sinais segundo (PALLS-ARENY et al, 1991): mecnico,
trmico, magntico, eltrico, ptico e qumico. Ele considera um transdutor qualquer dispositivo
que transforma um tipo de sinal num outro tipo, independentemente do tipo de sinal da sada.
Mas avisa que, na prtica, somente os dispositivos que geram um sinal eltrico na sada so
chamados de transdutores. Isso se deve ao fato de sinais eltricos serem utilizados na maioria dos
sistemas de medio. Ele apresenta ainda uma srie de vantagens para o uso de sistemas
eletrnicos de medio:

1) Transdutores eltricos podem ser desenvolvidos para medir qualquer propriedade no


eltrica, selecionando um material apropriado. Qualquer variao em um parmetro no eltrico
leva a uma variao em um parmetro eltrico, devido estrutura eletrnica do material.

2) Energia no consumida do processo que est sendo medido porque os sinais na sada
do transdutor podem ser amplificados. Com amplificadores eletrnicos, fcil a obteno de
ganhos no sinal que ultrapassam 1010 num nico estgio.

18

3) Um nmero cada vez maior de diferentes circuitos integrados esto disponveis para o
condicionamento de sinais eletrnicos. Inclusive existem transdutores que j incorporam esse
condicionamento do sinal.

4) Existem muitas opes para a exibio ou registro de informaes via meios


eletrnicos. Essas opes permitem lidar no somente com dados numricos, mas tambm com
textos, grficos e diagramas.

5) A transmisso do sinal mais verstil para sinais eltricos. Sinais mecnicos,


hidrulicos, ou pneumticos podem ser mais apropriados em algumas circunstncias, como em
ambientes onde est presente a radiao ionizante ou onde a atmosfera explosiva. Mas os sinais
eltricos tm substitudo a maioria dos sinais no eltricos.

Refora afirmando que um transdutor um dispositivo que retira energia do sistema que
ele mede para gerar um sinal de sada que pode ser convertido num sinal eltrico, o qual
corresponde quantidade medida. Cita que algumas vezes os termos sensor e transdutor so
utilizados como sinnimos, embora sensor esteja mais ligado capacidade de adquirir
informaes no percebidas pelos sentidos humanos, e transdutor esteja ligado apenas ao fato de
converter tipos de sinais. Conclui dizendo que a distino entre transdutor de entrada (sinal
fsico / sinal eltrico) e transdutor de sada (sinal eltrico / exibio ou atuao) raramente feita
nos dias de hoje. E a tendncia, particularmente em robtica, em direo ao uso do termo
sensor para se referir a um transdutor de entrada, e o uso do termo atuador para se referir a um
transdutor de sada.
Os tpicos seguintes faro uma abordagem sobre o encoder, considerado um transdutor
digital, segundo (De SA, 1990). Embora o encoder possa fazer uso de um outro transdutor
internamente (ex. clula fotoeltrica), o dispositivo como um todo pode ser chamado de
transdutor, pois converte um sinal de posio/deslocamento em um sinal eltrico. Alm disso,
com o condicionamento apropriado do sinal (ex. transformao de senide para onda quadrada),
o encoder pode ser considerado um transdutor digital, assim como fez (De SA, 1990).

19

2.4 Encoders
O encoder um transdutor que converte um movimento linear ou angular em sinais
digitais. Esses sinais digitais podem ser utilizados para determinar a posio, a direo, a
velocidade e a acelerao do sistema ao qual o encoder est acoplado. Encoders apresentam
muitas aplicaes, as mais comuns so: em eixos de robs, em eixos de mquinas-ferramenta, em
plotters (mesas XY), em mesas rotativas, no controle de velocidade e posio de motores
eltricos, no posicionamento de antenas, telescpios e radares. Eles tambm podem ser aplicados
na medio de qualquer grandeza que pode ser convertida num deslocamento, como por exemplo,
na medio do nvel de um lquido usando uma bia ou na determinao da direo do vento
usando uma biruta. Encoders so classificados funcionalmente em dois tipos: incremental ou
absoluto.

2.4.1 Fundamentos do Encoder Incremental


Baseado em (PALLS-ARENY et al, 1991), pode-se dizer que um encoder incremental
consiste basicamente de uma rgua linear ou um disco, o qual acoplado ao sistema que se
deseja medir. Uma rgua utilizada num encoder incremental linear, e um disco num encoder
incremental rotativo. Como discutido antes, a rgua deve possuir a menor massa possvel, ou se
for um disco, ter a menor inrcia possvel. Com isso, deseja-se interferir minimamente no sistema
a ser medido. A rgua ou o disco deve possuir uma trilha com dois tipos de setores que tenham
uma propriedade que permita diferenci-los. Tais setores geralmente so dispostos de forma
alternada e eqidistante, como mostra a Figura 2.18, traduzida do livro citado. A figura mostra o
princpio de um encoder incremental, que ainda no um encoder propriamente dito. Se uma
mudana em tal propriedade percebida por um dispositivo de leitura, ento um incremento na
posio resultar em pulso na sada. O autor cita que as propriedades fsicas usadas para
diferenciar os setores podem ser do tipo magntica, eltrica e ptica, mas que em todos os casos a
sada bsica na forma de um trem de pulsos eltricos com ciclo de trabalho (duty cycle) de 50%.
Ele menciona a simplicidade e a economia desse mtodo, mas alerta sobre alguns inconvenientes.

20

Setores
eqidistantes

Dispositivo de
leitura fixo

Eixo
Disco
Rotao
Rgua

Acoplamento
Movimento linear

Figura 2.18 - Princpio de encoder incremental rotativo e encoder incremental linear. (PALLSARENY et al, 1991).

Primeiro em relao perda de informao da posio sempre que ocorrer a falta de alimentao
eltrica, segundo em relao necessidade da utilizao de contadores up-down para fazer a
integrao com os circuitos externos, e por fim, principalmente em relao impossibilidade de
se determinar a direo do movimento. A determinao da direo do movimento requer o uso de
um outro dispositivo de leitura, ou ainda de um elemento adicional (rgua ou disco). Nesses casos
tem-se um encoder propriamente dito, ou seja, com deteco de movimento e direo.
Independentemente da natureza da propriedade utilizada para diferenciar os setores da
rgua ou do disco, a mecnica do posicionamento dos dois dispositivos de leitura combinado com
o posicionamento dos elementos mveis (rguas ou discos) a responsvel pela defasagem de
90 eltricos existente entre os dois sinais fornecidos por um encoder incremental. A eletrnica
embarcada trata os sinais e os coloca em forma de pulsos (onda quadrada). Diz-se ento, que
esses dois sinais, usualmente chamados de canal A e canal B, esto em quadratura. Normalmente
um encoder incremental possui uma marcao (na rgua ou no disco) indicando a posio
absoluta zero. Nesse caso, preciso a utilizao de um terceiro dispositivo de leitura. O mesmo
ir fornecer o sinal de zero, chamado de Z, e que na maioria das vezes consiste de um pulso
com fase idntica fase do canal A. A Figura 2.19 apresenta o comportamento desses trs sinais.

21

90

Z
Figura 2.19 - Sinais fornecidos por um encoder incremental. Canais A e B em quadratura.

Alguns encoders incrementais oferecem a opo das sadas complementares, A, B e Z, que


podem ser utilizadas para diminuir a sensibilidade a rudos de medio.
A direo do movimento pode ser obtida de diversas formas. A mais simples utiliza um
flip-flop do tipo D (Data), onde o canal A ligado na entrada D e o canal B no clock. O esquema
pode ser visto na Figura 2.20. Notar que o flip-flop sensvel borda de subida. A sada Q ser
1, nvel lgico alto, quando o canal A estiver 90 eltricos adiantado em relao ao canal B
(sentido da esquerda p/ direita na Figura 2.19). A sada Q ser 0, nvel lgico baixo, quando o
canal A estiver 90 eltricos atrasado em relao ao canal B (sentido da direita p/ esquerda na
Figura 2.19). Portanto, a direo ser dada pelo nvel lgico presente na sada Q. Cada nvel
lgico estar associado a uma direo fisicamente (ex. giro horrio / anti-horrio). O trem de
pulsos para ser utilizado em um circuito de contagem pode vir do canal A ou do canal B.

Q = 1 , Canal A adiantado de 90 em relao ao canal B

CLK

Q = 0 , Canal A atrasado de 90 em relao ao canal B

Figura 2.20 - Determinao da direo de movimento utilizando um flip-flop tipo D.

22

A resoluo de um encoder incremental linear dada em pulsos por unidade de


comprimento, ou simplesmente pela distncia (m) correspondente a um nico incremento/pulso.
J a resoluo de um encoder rotativo dada em pulsos por revoluo (PPR), mas tambm pode
ser dada na forma do ngulo correspondente a um nico incremento/pulso.

2.4.2 Encoder ptico Incremental


Em encoders pticos, a propriedade fsica utilizada para diferenciar os setores de uma rgua
ou um disco a ptica. Rguas ou discos de encoders pticos incrementais podem ser
constitudos de setores translcidos e opacos ou de setores refletivos e no refletivos. Nos dois
casos, os dispositivos de leitura so compostos por uma fonte emissora de luz, geralmente um
LED, e por um detector de luz (fotodetector), que pode ser um LDR, uma clula fotoeltrica, um
fototransistor ou um fotodiodo. Pode ou no haver elementos de focalizao (lentes). Quando
setores translcidos e opacos so utilizados, o elemento mvel (rgua ou disco) deve estar
posicionado entre o emissor e o detector de luz. O elemento comumente feito de vidro
transparente e os setores opacos so obtidos atravs da deposio de cromo. Um esquema de um
encoder ptico incremental rotativo desse tipo pode ser visto na Figura 2.21, traduzida do
(CATLOGO TURCK, acesso em 2007). Quando setores refletivos e no refletivos so
utilizados, o emissor e detector devem ser posicionados do mesmo lado. A Figura 2.22, traduzida
do (CATLOGO RENISHAW, acesso em 2007), mostra um esquema de encoder ptico
incremental linear que usa essa tcnica.

Placa PCB

Sensor

Disco

Mscara

LED

Figura 2.21 - Esquema de um encoder com disco constitudo de setores transparentes e opacos.
(CATLOGO TURCK, acesso em 2007).

23

LED

Fotodetector
Grade

Lente

Mscara do
dispositivo de leitura

Marca de referncia

ptica IN-TRAC

Rgua

Figura 2.22 - Esquema de um encoder com rgua constituda de setores refletivos e no refletivos.
(CATLOGO RENISHAW, acesso em 2007).

Nos dois casos, de acordo com (PALLS-ARENY et al, 1991), os problemas associados
so aqueles advindos da sujeira do ambiente, das limitaes de temperatura e tempo de resposta
dos componentes optoeletrnicos, e da possvel vibrao dos elementos de focalizao.
Como j foi dito, um encoder incremental precisa fornecer dois sinais (canal A e canal B)
com 90 eltricos de defasagem, a qual obtida pela mecnica do posicionamento dos
dispositivos de leitura e elementos mveis. Essa mecnica para obteno da defasagem pode ser
implementada de diversas formas. Alguns mtodos sero apresentados a seguir e independem se
os setores so do tipo translcido/opaco ou do tipo refletivo/no refletivo.
O primeiro mtodo consiste na utilizao de uma mscara fixa contendo quatro janelas de
espaamentos idnticos ao espaamento de um nico setor. Na direo de cada janela
posicionado um fotodetector, que neste exemplo uma clula fotoeltrica. As quatro janelas so
dispostas de tal modo que os sinais na sada das quatro fotoclulas esto defasados de 90
eltricos entre si. Esses sinais de tenso so aproximadamente senoidais, pois o movimento
relativo da rgua ou disco em relao mscara faz com que a luminosidade em cada janela varie
de um mnimo at um mximo. Lembrando que a luminosidade pode ser transmitida ou refletida.
A Figura 2.23, traduzida de (WOOLVET, 1977), ilustra essa tcnica e exibe os sinais na sada
das clulas fotoeltricas. O sinal E11 est 180 eltricos defasado em relao ao sinal E12, assim
como o sinal E21 est 180 eltricos defasado em relao ao sinal E22. Cada par de sinais E11 / E12
e E21 / E22 ter suas componentes de tenso somadas, gerando dois sinais, aqui chamados de a e b.

24

mscara
rgua

(a)

movimento da rgua

sada da
clula

(b)

deslocamento da rgua

Figura 2.23 - Mscara, em (a), com quatro janelas dispostas de modo a gerar uma defasagem de
90 eltricos entre os sinais das fotoclulas, em (b). (WOOLVET, 1977).

Esses dois sinais, ainda senoidais, j esto defasados de 90 eltricos entre si. Logo, necessrio
o uso de circuitos quadradores para se obter sinais de onda quadrada. Uma vez obtido os dois
sinais de onda quadrada, tem-se os canais A e B. A Figura 2.24, baseada em (WOOLVET, 1977),
esquematiza o circuito de condicionamento dos sinais e mostra as formas de onda envolvidas.
Dependendo do componente fotodetector, pode ser preciso ainda amplificar ou inverter os sinais.

E11
-

a
E12
-

+
+

E21
-

quadrador

quadrador

E22

B
(a)

(b)

Figura 2.24 - Canais A e B. (a) Condicionamento eletrnico. (b) Formas de onda.

25

Segundo (PALLS-ARENY et al, 1991), encoders pticos fornecem as maiores resolues


e o fator limitante o tamanho do fotodetector, principalmente neste mtodo apresentado. Nele, a
luminosidade dependente do posicionamento de um nico setor, tornando o sistema mais
suscetvel a erros de contagem devido a interferncias ou contaminao das janelas. Os mtodos
seguintes buscam contornar esse problema fazendo uso do efeito moir mdio, ao mesmo tempo
em que conseguem maiores resolues.
Um mtodo possvel consiste tambm na utilizao de uma mscara fixa, s que ao invs
de ter quatro janelas, ela possui quatro grades com regies translcidas e opacas alternadas. O
espaamento das grades exatamente igual ao espaamento dos setores da rgua ou disco, como
mostrado na Figura 2.25, adaptada de (PALLS-ARENY et al, 1991). Na direo de cada grade
posicionado um fotodetector, o qual receber a mxima luminosidade quando a grade estiver
perfeitamente alinhada com os setores do elemento mvel (rgua ou disco). Quando o elemento
movido de meio incremento, ou seja, quando percorrido um setor, a luminosidade decresce at
atingir um mnimo. Nesse instante, o alinhamento faz com que a luminosidade seja totalmente
bloqueada. Vrios incrementos consecutivos geram um sinal luminoso praticamente senoidal, que
ser convertido em sinal eltrico pelo fotodetector. Em todo o tempo, o fotodetector recebe a
luminosidade mdia, no mais dependendo da luminosidade correspondente a um nico setor. As
quatro grades existentes na mscara tambm so dispostas fisicamente com o intuito de se obter
quatro sinais defasados eletricamente de 90 entre si, como pode ser observado na Figura 2.26,
traduzida de (WOOLVET, 1977). O condicionamento dos sinais pode ser feito de forma similar
quela apresentada, e, caso os fotodetectores sejam clulas fotoeltricas, o esquema eletrnico
idntico ao apresentado no item (a) da Figura 2.24.

Fotodetector

Fotodetector

Grade

Grade

LED
LED
Elemento mvel

Elemento mvel

(a)

(b)

Figura 2.25 - Grades com mesmo espaamento dos setores presentes no elemento mvel. (a) Setores
translcidos / opacos. (b) Setores refletivos / no refletivos. (PALLS-ARENY et al, 1991).

26

Rgua

Mscara

Fotoclulas

Figura 2.26 - Mscara com quatro grades dispostas de modo a gerar uma defasagem de 90
eltricos entre os sinais dos fotodetectores, no caso fotoclulas. Utiliza o efeito moir originado
da sobreposio de grades igualmente espaadas. (WOOLVET, 1977).

Um outro mtodo para deteco da direo de movimento e para a gerao de sinais


defasados discutido por (PALLS-ARENY et al, 1991) e (WOOLVET, 1977). O mtodo
tambm fundamentado no efeito moir, mais precisamente nas franjas moir. Novamente
utilizada uma mscara fixa, que nesse caso contm apenas uma nica grade com regies
translcidas e opacas alternadas. Alm disso, a grade deve estar inclinada em relao aos setores
da rgua ou disco, como pode ser visto na Figura 2.27, traduzida de (PALLS-ARENY et al,
1991). Se a inclinao tal que tan = p / d , um deslocamento relativo p resultar num
deslocamento vertical d de uma franja moir horizontal (franja escura). Se a inclinao relativa
for n vezes maior, aparecero n franjas moir horizontais. O sentido de movimento (para cima
ou para baixo) das franjas moir horizontais depende do sentido do deslocamento do elemento
que se move (para esquerda ou para direita, giro horrio ou giro anti-horrio). Considerando a
rgua da Figura 2.27, se ela se deslocar para a esquerda, a franja moir se movimentar para cima.
p = afastamento (pitch)

Elemento mvel
d

Figura 2.27 - Mscara com grade inclinada em relao aos setores presentes no elemento mvel,
gerando uma franja moir. (PALLS-ARENY et al, 1991).

27

Setores
Rgua
Mscara
Fotoclulas

Figura 2.28 - Dispositivos de leitura distribudos verticalmente para obter os sinais defasados.
Utiliza o efeito moir originado da sobreposio de grades inclinadas entre si. (WOOLVET,
1977).

Se o deslocamento da rgua for para a direita, a franja se movimentar para baixo. Nesse mtodo,
os dispositivos de leitura devem ser posicionados perpendicularmente em relao ao
deslocamento do elemento mvel, como ilustrado na Figura 2.28, traduzida de (WOOLVET,
1977). Na figura, observa-se a existncia de quatro clulas fotoeltricas, as quais esto
distribudas novamente com a finalidade de se gerar quatro sinais defasados de 90 eltricos. O
condicionamento dos sinais pode ser realizado da mesma maneira j abordada.
Um ltimo mtodo, aqui discutido, no se utiliza de mscara para gerar o efeito moir. O
efeito surge da sobreposio de dois elementos, um esttico e outro mvel. A condio que a
diferena entre o nmero de pares de setores translcido-opaco do elemento esttico e do
elemento mvel seja 1. Em outras palavras, se o elemento esttico tiver N pares de setores
translcido-opaco, o elemento mvel dever ter N 1 pares, ou vice-versa. A diferena de 1
justamente para o aparecimento de um nico batimento associado ao efeito moir. A Figura 2.29
mostra exatamente esse comportamento utilizando rguas e discos.
4
1

(a)

(b)

Figura 2.29 - Sobreposio de elementos com diferena de 1 par. (a) Duas rguas. (b) Dois discos.

28

4
1

(a)

(b)

Figura 2.30 - Sobreposio de elementos com diferena de 1 par e aps o deslocamento relativo
equivalente a um setor/espaamento. (a) Duas rguas. (b) Dois discos.

Nela pode-se observar o aparecimento uma regio mais clara e uma regio mais escura.
Dispositivos de leitura, com ou sem auxlio de grades para leitura, so posicionados nas direes
indicadas de 1 a 4, mais uma vez resultando em quatro sinais defasados de 90 eltricos entre si.
A cada deslocamento relativo entre os elementos equivalente a um setor/espaamento, tem-se a
luminosidade oposta anterior em cada dispositivo de leitura. Isso pode ser verificado fazendo a
comparao da Figura 2.29 com a Figura 2.30. Logo, um deslocamento relativo equivalente a
dois setores/espaamentos far com que a luminosidade em cada dispositivo de leitura varie de
um valor inicial at um valor final e volte ao valor inicial, correspondendo a um pulso, ou
melhor, um incremento.
Os mtodos apresentados fazem uso de quatro dispositivos de leitura, os quais fornecem
quatro sinais defasados de 90 eltricos. Estes sinais so combinados eletronicamente para gerar
dois sinais de onda quadrada, o canal A e o canal B, minimizando erros mecnicos. possvel
obter diretamente esses dois canais a partir de apenas dois dispositivos de leitura, desde que esses
dispositivos estejam posicionados de modo a garantir a defasagem de 90 e que seus sinais
tenham amplitude suficiente para deteco, a partir da luminosidade existente.
Como j foi citado, encoders pticos possuem as maiores resolues. Mesmo assim,
existem tcnicas para aumentar sua resoluo, como a utilizao de resolvedores eletrnicos ou a
utilizao de mais dispositivos de leitura para se obter sinais com defasagens diferentes
(resolvedores pticos). Tcnicas estas que sero estudadas no captulo seguinte.

29

Para efeito de ilustrao, a Figura 2.31 mostra exemplos comerciais de encoders pticos
incrementais lineares presentes no (CATLOGO RENISHAW, acesso em 2007). A Figura 2.32
mostra exemplos de encoders pticos incrementais rotativos e um desenho de encoder em corte,
ambos do (CATLOGO TURCK, acesso em 2007).

Figura 2.31 - Exemplos comerciais de encoders pticos incrementais lineares. (CATLOGO


RENISHAW, acesso em 2007).

(a)

Sinais de sada
Entrada 5-30 VDC

(b)

Movimento mecnico rotativo

Figura 2.32 - Encoder ptico incremental rotativo. (a) Exemplos comerciais. (b) Desenho em
corte. (CATLOGO TURCK, acesso em 2007).

30

2.4.3 Fundamentos do Encoder Absoluto


A principal caracterstica que diferencia um encoder absoluto de um encoder incremental
que o encoder absoluto nunca perde a posio real em que se encontra, mesmo ocorrendo uma
eventual queda da tenso de alimentao. Enquanto que a posio de um encoder incremental
dada pela contagem de pulsos a partir de uma referncia, normalmente a marcao de zero, a
posio de um encoder absoluto obtida pela leitura de um cdigo gravado no elemento mvel
(rgua ou disco). Tal cdigo determina vrios conjuntos de sinais, sendo que cada conjunto
representa unicamente uma possvel posio. A Figura 2.33 (a), adaptada de (PALLS-ARENY
et al, 1991), exibe um exemplo de cdigo gravado num disco. Um encoder absoluto dito linear
quando o elemento mvel uma rgua, e dito rotativo quando o elemento mvel um disco. As
anlises seguintes sero baseadas em um disco, mas podem ser estendidas para uma rgua.
O cdigo gravado no elemento mvel deve ser formado por dois tipos de regies contendo
uma propriedade que as diferencie. A cada tipo de regio ser associado um valor binrio, 0 ou 1.
A propriedade em questo pode ser eltrica, magntica ou ptica. Quando a propriedade a
eltrica, o encoder absoluto utiliza escovas fixas como dispositivos de leitura e utiliza um disco
contendo reas condutoras e no condutoras, como esquematizado na Figura 2.33 (b), traduzida
de (HOESCHELE, 1968). Nesse caso, dever haver contato entre as escovas fixas e o disco mvel.
Escovas fixas

Comum

Linha de leitura

reas condutoras

Rotao

Eixo

(a)

(b)

Figura 2.33 - Encoder absoluto. (a) Exemplo de um disco. (PALLS-ARENY et al, 1991).
(b) Esquema de um encoder absoluto por contato. (HOESCHELE, 1968).

31

Quando a propriedade a magntica, no h o contato, e os dispositivos de leitura so mas


envolvidos por espiras que sentem a variao do fluxo magntico provocada pela presena de
reas magnticas e no magnticas, codificadas no disco. Maiores detalhes desses dois casos
podem ser encontrados em (WOOLVET, 1977). Em relao ao uso da propriedade ptica,
tambm no existe o contato entre dispositivos de leitura e disco. Esse caso ser tratado mais
adiante, mas cabe antecipar que os dispositivos de leitura so pares emissor/receptor de luz, e o
disco codificado em reas translcidas e opacas.
O cdigo presente no disco associa a cada posio um conjunto de N sinais que so lidos
pelos N dispositivos de leitura. Cada conjunto de N sinais um conjunto de N bits, que
variam de acordo com a resoluo do encoder absoluto. Por exemplo, considerando um encoder
com N = 10 bits, a quantidade de posies codificadas dada por 2 N = 210 = 1024 . Esse valor
corresponde resoluo do encoder, que normalmente potncia de 2 ou mltiplo de 360. Os
sinais de sada em encoders comerciais esto disponveis na forma paralela ou em algum padro
serial do tipo RS ou SSI. Os bits mais significativos esto associados aos dispositivos de leitura
posicionados mais prximos do centro do disco, ou seja, nas trilhas mais internas.
Existem diferentes tipos de cdigo que podem ser gravados em um disco de encoder
absoluto. O cdigo binrio natural o mais fcil de ser interpretado por circuitos eletrnicos
simples, e no requer nenhum tipo de converso para se determinar a posio real do encoder, e
conseqentemente, a posio real do sistema ao qual ele est acoplado. O cdigo BCD (Binary
Coded Decimal) tambm pode ser empregado. Ambos os cdigos podem ser analisados na
Tabela 2.1, adaptada de (PALLS-ARENY et al, 1991).

Tabela 2.1 - Cdigos comuns em discos de encoders absolutos. (PALLS-ARENY et al, 1991).
BCD
Binrio natural
Nmero
decimal

Gray
Cdigo

Cdigo

Padro

Dezena

Unidade

32

Padro
Dezena

Unidade

Cdigo

Padro

Aps uma rpida inspeo tanto no cdigo binrio natural quanto no cdigo BCD, nota-se
que em cada mudana de valor, equivalente num disco a uma mudana de posio, ocorre a
inverso de um ou mais bits. As mudanas que envolvem a inverso de mais de um bit por vez
so crticas. Elas exigem um perfeito alinhamento das trilhas do disco, caso contrrio, podem
causar ambigidade. O exemplo a seguir, modificado de (PALLS-ARENY et al, 1991), explica
bem isso. Considere um encoder absoluto de 10 bits com cdigo binrio natural. As posies 0, 1,
2, 3 e 4 so dadas por
Posio 0

0000000000

Posio 1

0000000001

Posio 2

0000000010

Posio 3

0000000011

Posio 4

0000000100

Supondo que os dispositivos de leitura estejam ligeiramente desalinhados, por exemplo, os dois
primeiros estejam um pouco adiantados. Ento, a sada lida aps um movimento da posio 3
para a posio 4 seria 0 0 0 0 0 0 0 0 0 0, que representa a posio 0.
Para evitar essa ambigidade, vrios mtodos foram desenvolvidos. Um deles consiste em
um cdigo cclico contnuo onde h a inverso de somente um bit a cada mudana de valor. O
cdigo Gray o exemplo mais comum desse tipo de cdigo, e tambm pode ser analisado na
Tabela 2.1. Outros mtodos podem eliminar a ambigidade sem a necessidade da inverso de um
nico bit por vez, so exemplos as lgicas V-scan e U-scan, detalhadas em (HOESCHELE, 1968)
e (WOOLVET, 1977).
A utilizao do cdigo Gray exige a interpretao dos sinais de sada, seja para determinar
a posio real ou para uso aritmtico. Segundo (HOESCHELE, 1968), o cdigo Gray deve ser
traduzido para o sistema binrio natural ou para um algum sistema numrico aplicvel. A
traduo para o sistema binrio natural pode ser feita por um circuito eletrnico simples, como o
reproduzido na Figura 2.34, mas tambm pode ser programada em um computador. A expresso
Booleana para a converso do cdigo Gray para binrio

) (

Bn 1 = Gn 1 B n + G n 1 Bn ,

33

(2.22)

(a)

(b)

Figura 2.34 - Circuitos para converso do cdigo Gray para o cdigo binrio natural.
(a) Utilizando portas lgicas elementares. (b) Utilizando portas XOR. (HOESCHELE, 1968).

onde B = o bit binrio ( Bn = 2 n ),


G = o bit Gray correspondente,
n 1

= o prximo bit menos significativo.

Com uma anlise mais profunda do cdigo de Gray, pode-se verificar que a propriedade de
inverso de um nico bit por vez s vale completamente quando o nmero total de valores
potncia de 2. Quando o nmero total de valores no satisfaz essa relao, como mltiplos de
360, a propriedade no obedecida na transio do maior valor para o valor zero, e vice-versa.
Ver Tabela 2.2. Por exemplo, se o nmero total de valores for 10, que no potncia de 2, as
mudanas entre 9 e 0 (1101 e 0000 em Gray) provocam a inverso de 3 bits de uma s vez.
Uma maneira de contornar esse problema causando um deslocamento D a partir do valor
zero no cdigo Gray. Seu valor pode ser determinado por

D=

2 n N TOT
,
2

onde N TOT = o nmero total de valores,

2 n = o valor que potncia de 2 imediatamente aps o N TOT .

34

(2.23)

Tabela 2.2 - Cdigo binrio natural e cdigo Gray. A transio para o valor zero com a mudana
de um nico bit s ocorre quando o nmero total de valores potncia de 2.
DECIMAL

BINRIO

GRAY

0
1

00000
00001

00000
00001

2
3

00010
00011

00011
00010

4
5
6
7

00100
00101
00110
00111

00110
00111
00101
00100

8
9
10
11
12
13
14
15

01000
01001
01010
01011
01100
01101
01110
01111

01100
01101
01111
01110
01010
01011
01001
01000

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

11000
11001
11011
11010
11110
11111
11101
11100
10100
10101
10111
10110
10010
10011
10001
10000

Voltando ao exemplo cujo nmero total de valores N TOT = 10 , o deslocamento a partir do


zero calculado como:

D =

2n NTOT
24 10
16 10
6
=
=
=
= 3.
2
2
2
2

(2.24)

O efeito do deslocamento pode ser observado na Tabela 2.3, onde a transio crtica 0-9 foi
substituda pela transio 3-12, no crtica.

35

Tabela 2.3 - Exemplo de cdigo Gray deslocado em 3 unidades. Nmero total de valores N TOT = 10 .
DECIMAL

BINRIO

GRAY

0
1
2

0000
0001
0010

0000
0001
0011

3
4
5
6
7
8
9
10
11
12

0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

0010
0110
0111
0101
0100
1100
1101
1111
1110
1010

13
14
15

1101
1110
1111

1011
1001
1000

A resoluo de um encoder absoluto aumenta medida que cresce o nmero de bits


considerados, ou seja, que cresce o nmero de dispositivos de leitura e o nmero de trilhas. O
fator limitante o tamanho e a inrcia do disco. Um mtodo para aumentar a resoluo seria
incluir uma trilha radial na periferia do disco, possibilitando a leitura de sinais defasados, os quais
comporiam um resolvedor eletrnico ou um resolvedor ptico. Uma maneira diferente para
aumentar a resoluo acoplar o disco a um conjunto de engrenagens, de tal forma que a cada
revoluo completa do disco, uma posio avanada na engrenagem seguinte, e assim por
diante. Vrias engrenagens encadeadas possibilitam multiplicar o nmero total de posies.
Portanto, o nmero total de posies est relacionado com o nmero de rotaes do disco. Assim,
a resoluo aumentada, embora a resoluo final (dentro de uma nica revoluo) ainda
dependa exclusivamente do disco. Encoders absolutos rotativos desse tipo so chamados de
encoders de multi-revolues (multi-turn), enquanto que os que no possuem engrenagens so
chamados de encoders de uma nica revoluo (single-turn). A Figura 2.35, do (CATLOGO
TURCK, acesso em 2007), ilustra um mecanismo multi-revolues.

Figura 2.35 - Exemplo de mecanismo multi-revolues. (CATLOGO TURCK, acesso em 2007).

36

2.4.4 Encoder ptico Absoluto


Hoje em dia, a maioria dos encoders absolutos faz uso de princpios pticos e fotoeltricos.
Falando especificamente de encoders absolutos rotativos, que so os mais comuns, eles possuem
um disco constitudo de reas translcidas e opacas. A distribuio dessas reas sobre o disco
definida de acordo com o cdigo utilizado. Normalmente o disco feito de vidro transparente e o
cdigo gravado na superfcie atravs da deposio de cromo, que no permite a passagem de
luz. Segundo (WOOLVET, 1977), esses encoders possuem ainda uma fonte de luz, um sistema
de focalizao e um conjunto de fotodetectores dispostos radialmente. Esses elementos podem ser
vistos na Figura 2.36, traduzida do mesmo livro, onde os fotodetectores so fotoclulas. O autor
ressalta a importncia da qualidade do disco na performance do encoder. O disco deve ter um alto
grau de preciso e possuir trilhas com arestas agudas, minimizando rudos durante as transies
0-1 e 1-0.
Ainda segundo (WOOLVET, 1977), a fonte de luz utilizada pode ser uma pequena lmpada
com filamento de tungstnio ou um dispositivo do estado slido como, por exemplo, um LED. A
Figura 2.37, tambm traduzida do livro, ilustra dois sistemas bsicos de focalizao utilizando
uma lmpada pequena como fonte de luz. A Figura 2.37 (a) mostra uma lente focalizando a luz
sobre o disco e os fotodetectores expostos luminosidade atravs de uma fenda estreita,
precisamente posicionada na linha de leitura. A Figura 2.37 (b) mostra um arranjo alternativo,
onde uma lente cilndrica includa no sistema com o objetivo de linearizar o feixe de luz na
direo da linha de leitura.

Fenda

Lmpada

Fotoclulas

Figura 2.36 - Esquema bsico de um encoder ptico absoluto. (WOOLVET, 1977).

37

Fenda

Lmpada

Lmpada

Fotoclulas

Fotoclulas

Lente
cilndrica

(a)

(b)

Figura 2.37 - Sistemas bsicos de focalizao. (a) Utilizao de uma fenda na linha de leitura.
(b) Utilizao de uma lente cilndrica para focalizar a luz na linha de leitura. (WOOLVET, 1977).

O nmero de fotodetectores corresponde ao nmero de bits de um encoder ptico absoluto.


Os sinais eltricos provenientes desses fotodetectores devem ser condicionados eletronicamente,
resultando em sinais digitais, os quais so fornecidos em paralelo (uma sada para cada bit) ou em
algum padro serial (uma nica sada para todos os bits).
Exemplos comerciais de encoders pticos absolutos rotativos podem ser vistos na Figura
2.38, presente no (CATLOGO TURCK, acesso em 2007).

Figura 2.38 - Exemplos comerciais de encoders pticos absolutos rotativos. (CATLOGO


TURCK, acesso em 2007).

38

3. Resolvedores
Neste captulo, sero apresentados dois tipos de sistemas resolvedores, que nada mais so
do que sistemas que permitem aumentar a resoluo de um encoder, seja ele incremental ou
absoluto, a partir de sinais defasados adequadamente. O primeiro tipo de sistema resolvedor a ser
analisado o resolvedor eletrnico, cujo princpio para obteno de sinais defasados est na
utilizao de um circuito interpolador eletrnico. O resolvedor ptico o outro tipo de sistema
resolvedor que ser discutido. Nele, os sinais defasados provm da existncia e posicionamento
de vrios dispositivos de leitura.

3.1 Resolvedores Eletrnicos


Um resolvedor eletrnico um sistema que possibilita o aumento da resoluo de um
encoder (incremental ou absoluto, linear ou rotativo) a partir da utilizao de dois sinais senoidais
defasados de 90 eltricos entre si. Esses dois sinais (sin e cos) so gerados pelo prprio encoder,
atravs do arranjo mecnico entre os dispositivos de leitura e o elemento mvel (rgua ou disco).
Na maioria das vezes, o sistema resolvedor composto ainda por um circuito interpolador
eletrnico, o qual responsvel pela obteno de um nmero maior de sinais senoidais defasados.
Cada sinal senoidal passa por um circuito quadrador para se tornar digital (onda quadrada). A
combinao lgica entre esses sinais digitais possibilita o aumento da resoluo do encoder. Em
um encoder incremental, aumenta-se o nmero de pulsos gerados durante um deslocamento fsico
na posio. No caso de um encoder absoluto, h um acrscimo no nmero de bits menos
significativos, levando ao aumento do nmero total de bits.
Considerando que o elemento mvel seja do tipo incremental, de acordo com (WOOLVET,
1977), os dispositivos de leitura fixos so capazes de fornecer sinais de sada aproximadamente
senoidais, quando da movimentao do elemento. Com uma pequena modificao na geometria
ptica e na forma dos setores presentes na rgua ou no disco, possvel produzir uma onda
senoidal praticamente perfeita.
As anlises seguintes sero realizadas com base num disco, mas sua aplicao em rguas
pode ser feita de forma anloga sem maiores dificuldades.

39

Encoders incrementais j possuem um disco do tipo incremental, ou seja, com uma trilha
radial constituda de dois tipos de setores, por exemplo, opacos e translcidos. Para um encoder
absoluto, necessrio incluir na periferia do disco uma trilha radial, cujo espaamento dos
setores deve ser metade do espaamento dos setores da trilha mais externa (relativa ao bit menos
significativo). Em ambos os discos, dispositivos de leitura so posicionados na trilha radial para
se obter dois sinais senoidais defasados de 90 eltricos entre si, chamados de sin (seno) e cos
(cosseno). Em alguns casos, dois ou mais dispositivos de leitura juntamente com circuitos para
efetuar a mdia so utilizados para determinar cada sinal, minimizando erros mecnicos.
Na presente anlise, ser considerado o uso de apenas um dispositivo de leitura para gerar o
sinal sin e um dispositivo de leitura para gerar o sinal cos. A Figura 3.1 ilustra esse incio de
anlise. No item (a), tem-se um exemplo de um disco de encoder ptico incremental, onde uma
mscara com duas grades utilizada para originar a defasagem dos sinais sin e cos. No item (b),
pode ser visto um exemplo de um disco de encoder ptico absoluto de 7 bits, onde foi includa
uma trilha radial na periferia. Tambm utilizada uma mscara com duas grades para originar a
defasagem dos sinais. Em (c), observa-se a sobreposio de dois discos incrementais, cuja
diferena no nmero de pares translcido-opaco 1. Aqui, os 90 eltricos esto relacionados
com os 90 angulares. Portanto, os dois dispositivos de leitura so posicionados a 90 angulares
um do outro, dando origem aos sinais sin e cos. Duas grades so utilizadas, neste caso, para
facilitar a captura da luminosidade, alm de estarem alinhadas com os setores de um dos discos.
Uma vez obtidos os sinais senoidais sin e cos, a prxima etapa do sistema resolvedor seria
o uso de um circuito interpolador eletrnico. No entanto, ainda sem a presena de tal circuito,
consegue-se construir um resolvedor capaz de multiplicar por 4 a resoluo do encoder. Isso
feito, primeiramente, com a transformao dos sinais sin e cos em sinais de onda quadrada, por
meio de circuitos quadradores (ex. Schmitt triggers). Um esquema dessa transformao
mostrado na Figura 3.2. Os dois sinais digitais resultantes A e B so combinados logicamente
para se obter quatro sinais digitais defasados de 1/4 do perodo (90 eltricos). A Figura 3.3 exibe
as formas de onda referentes a um exemplo de combinao lgica, a qual pode ser implementada
eletronicamente ou programada em um microcontrolador.
Na mesma figura, nota-se que, para um encoder absoluto, um perodo dos sinais A e B
corresponde meio perodo do sinal relacionado ao bit menos significativo (LSB). O mesmo
provm da trilha mais externa do disco, no considerando a trilha radial acrescentada na periferia.

40

sin

sin

cos

cos
6
5
4
3
2
1
0

sin

(a)

(b)

cos

(c)

Figura 3.1 - Obteno de dois sinais senoidais defasados de 90 eltricos. (a) Disco
incremental com mscara. (b) Disco absoluto com trilha perifrica e mscara.
(c) Sobreposio de dois discos incrementais com diferena de 1 no nmero de pares de setores
translcido-opaco.

sin

sin
cos

quadrador
quadrador

cos

A
B

(a)

(b)

Figura 3.2 - Transformao senide / onda quadrada. (a) Esquema. (b) Formas de onda.

41

LSB
(encoder absoluto)

A
B
AB
AB
AB
AB
Pulsos
(encoder incremental)

Figura 3.3 - Formas de onda de um sistema resolvedor sem interpolador eletrnico. A


resoluo obtida quatro vezes maior.

Ainda considerando a Figura 3.3 e no caso de um encoder absoluto, pode-se fazer a seguinte
associao de sinais com bits: AB  00 , AB  01 , AB  10 , AB  11 , obtendo-se dois
novos bits, ou seja, originando quatro novas posies absolutas dentro da posio absoluta
limitada pelo bit menos significativo (LSB). Portanto, a resoluo do encoder se torna quatro
vezes maior, j que o nmero total de bits acrescido de 2. Conseqentemente, os dois novos bits
passam a ser agora os bits menos significativos do encoder.
Para um encoder incremental, a mesma Figura 3.3 mostra que, a partir dos quatro sinais
obtidos via combinao lgica dos sinais A e B, possvel gerar uma seqncia de pulsos com
quatro pulsos por perodo de A (ou B). Sabendo-se que um perodo de A corresponde a um
incremento fsico na posio do disco (limitado por um setor/espaamento), cada um dos quatro
pulsos indica um deslocamento fsico quatro vezes menor. Logo, a resoluo quatro vezes maior.

42

O sinal de contagem (seqncia de pulsos) bem como o sinal de direo podem ser determinados
via software, quando da utilizao de um microcontrolador. Caso este no seja utilizado, a
determinao do sinal de contagem e do sinal de direo feita eletronicamente por circuitos
compostos de multivibradores monoestveis e de portas lgicas. Os multivibradores
monoestveis so disparados pelas bordas de subida dos quatro sinais advindos da combinao de
A e B, e do origem seqncia de pulsos, cujas larguras so menores do que as larguras desses
quatro sinais que efetuaram o disparo. Ver ltimo grfico da Figura 3.3. Isso necessrio para
gerar um pulso a cada transio (mudana de posio) e no um sinal contnuo.
O sistema resolvedor que acabou de ser analisado no faz uso de um circuito interpolador
eletrnico. Desse modo, s possvel quadruplicar a resoluo do encoder. Quando existe a
necessidade de se aumentar ainda mais a resoluo, um circuito interpolador deve ser includo no
sistema. Segundo (WOOLVET, 1977), o circuito interpolador mais simples consiste de uma rede
de resistores conforme apresenta a Figura 3.4, adaptada do mesmo livro. Na figura, o circuito tem
como entradas os dois sinais j conhecidos (sin e cos) e um sinal -sin, que facilmente obtido
atravs da inverso do sinal sin. Nesse exemplo, so mostradas quatro sadas, que possibilitaro
um aumento de oito vezes na resoluo. Generalizando, para N sadas, a resoluo ser
multiplicada por 2N. As sadas, antes de passarem pelos quadradores, tambm so senides
aproximadas, mas diferem em fase de acordo com sua posio na cadeia de resistores. Nesse
ponto, (WOOLVET, 1977) afirma que o desempenho global do sistema poderia ser aperfeioado

-sin
quadrador

cos

quadrador
quadrador

sin

quadrador

Figura 3.4 - Circuito interpolador eletrnico.

43

D
C
B
A

caso fossem utilizadas formas de onda aproximadamente triangulares, o que pode ser feito
modificando-se o arranjo mecnico. Voltando ao exemplo, cada uma das quatro senides da sada
passa por um circuito quadrador, dando origem aos sinais digitais A, B, C e D. Esses sinais
digitais so combinados logicamente dois a dois, com o objetivo de se obter oito sinais digitais
defasados de 1/8 do perodo (45 eltricos). A combinao dos sinais, mais uma vez, pode ser
implementada eletronicamente ou programada em um microcontrolador. A Figura 3.5 mostra um
exemplo dessa combinao de sinais, exibindo as formas de onda. Como esperado, um perodo
dos sinais A, B, C e D corresponde a meio perodo do sinal relacionado ao LSB de um encoder
absoluto. Neste exemplo, a associao de sinais com bits para o encoder absoluto : AB  000 ,
BC  001 , CD  010 , AD  011 , AB  100 , BC  101 , CD  110 , AD  111 ,
obtendo-se agora trs novos bits que, por sua vez, determinam oito novas posies absolutas
dentro da posio absoluta limitada pelo LSB. Assim, a resoluo aumenta oito vezes e os trs
novos bits passam a ser os bits menos significativos.
Considerando um encoder incremental, a Figura 3.5 exibe a seqncia de pulsos obtida a
partir dos oito sinais derivados da combinao de A, B, C e D. A seqncia de pulsos possui oito
pulsos por perodo de A (ou B, C, D), que indicam um deslocamento fsico oito vezes menor do
que o indicado sem o uso do resolvedor eletrnico. Portanto, a resoluo torna-se oito vezes
maior. Assim como no caso do sistema resolvedor sem interpolador, a determinao dessa
seqncia de pulsos (sinal de contagem) e do sinal de direo pode ser feita atravs de software
quando se utiliza um microcontrolador, ou atravs de circuitos eletrnicos constitudos de
multivibradores monoestveis e de portas lgicas quando no se utiliza um microcontrolador. No
caso dos circuitos eletrnicos, seu funcionamento deve ser anlogo ao descrito para o sistema
resolvedor sem interpolador. Os multivibradores monoestveis devem ser disparados pelas bordas
de subida dos oito sinais derivados da combinao de A, B, C e D, dando origem seqncia de
pulsos, cujas larguras devem ser menores do que as larguras desses oito sinais que efetuaram o
disparo. Relembrando, isso garante a existncia de um pulso a cada transio (mudana de
posio) e no simplesmente um sinal contnuo.
O circuito interpolador apresentado um circuito bem simples, porm, hoje j existem
circuitos interpoladores bem mais sofisticados, inclusive na forma de circuitos integrados. A
Figura 3.6 exibe trs exemplos com diferentes fatores de interpolao, como pode ser visto pelas
formas de onda. Maiores detalhes podem ser encontrados no respectivo (DATASHEET - RLS).

44

LSB
(encoder absoluto)

A
B
C
D
AB
BC
CD
AD
AB
BC
CD
AD
Pulsos
(encoder incremental)

Figura 3.5 - Formas de onda de um sistema resolvedor com interpolador eletrnico. A


resoluo obtida neste exemplo oito vezes maior.

45

fotodetector

(a)

fotodetector

(b)

fotodetector

(c)

Figura 3.6 - Exemplos comerciais de circuito interpolador eletrnico. (a) Fatores de


interpolao 1, 2, 5, ou 10. (DATASHEET RLS - INTERPOLADOR RLXA2510, acesso em 2007).
(b) Fatores de interpolao 1, 2, 3, 4, 5, 8, ou 10. (DATASHEET RLS - INTERPOLADOR
RLX40i, acesso em 2007). (c) Fatores de interpolao 5, 10, ou 25. (DATASHEET RLS INTERPOLADOR RLX100, acesso em 2007).

46

Teoricamente, a utilizao de um circuito interpolador eletrnico em um sistema resolvedor


poderia aumentar a resoluo do encoder infinitamente. Na prtica, sabe-se que isso impossvel,
devido s limitaes de hardware ou de software.

3.2 Resolvedores pticos


Um resolvedor ptico um sistema que possibilita o aumento da resoluo de um encoder
(incremental ou absoluto, linear ou rotativo) a partir da utilizao de vrios sinais senoidais
igualmente defasados, provenientes do posicionamento de vrios dispositivos de leitura. O
posicionamento desses vrios dispositivos de leitura tem a mesma funo do circuito interpolador
em um resolvedor eletrnico, que a gerao de senides defasadas adequadamente. Cada sinal
senoidal passa por um circuito quadrador, tornando-se um sinal digital. Do mesmo modo que em
um resolvedor eletrnico, a combinao lgica entre esses sinais digitais possibilita o aumento da
resoluo do encoder. Num encoder incremental, aumenta-se o nmero de pulsos gerados durante
um incremento fsico na posio, e num encoder absoluto, aumenta-se o nmero de bits menos
significativos, levando ao aumento do nmero total de bits.
Assim como j foi discutido, para a obteno de um sinal aproximadamente senoidal,
preciso que o elemento mvel do encoder seja do tipo incremental. Elemento mvel que aqui,
para efeito de anlise, um disco. Em um encoder absoluto, surge a necessidade da incluso de
uma trilha radial perifrica, cujo espaamento dos setores deve ser metade do espaamento dos
setores da trilha mais externa (relativa ao bit menos significativo).
Os N dispositivos de leitura so posicionados na trilha radial para se obter N sinais
senoidais igualmente defasados, como esquematizado na Figura 3.7 para N = 4, discos
esquerda, e para N = 5, discos direita. No item (a), tem-se um exemplo de um disco de encoder
ptico incremental, onde uma mscara com N grades utilizada para originar a defasagem dos
sinais senoidais. No item (b), pode ser visto um exemplo de um disco de encoder ptico absoluto
de 7 bits, onde foi includa uma trilha radial na periferia. Tambm utilizada uma mscara com
N grades para originar a defasagem dos sinais. Em (c), observa-se a sobreposio de dois discos
incrementais, cuja diferena no nmero de pares 1. Aqui, as defasagens eltricas esto
relacionadas com as defasagens angulares. Portanto, os N dispositivos de leitura so posicionados
a 180/N graus angulares um do outro, dando origem aos N sinais senoidais igualmente defasados.

47

sin()

sin()

sin(+45)

sin(+36)

sin(+90)

sin(+72)

sin(+135)

sin(+108)
sin(+144)

(a)
sin()

sin()

sin(+45)

sin(+36)

sin(+90)
6
5
4
3
2
1
0

sin(+72)
6
5
4
3
2
1
0

sin(+135)

sin(+108)
sin(+144)

(b)

sin()
sin()

sin(+36)

sin(+45)

sin(+72)

sin(+90)

sin(+108)

sin(+135)

sin(+144)

(c)

Figura 3.7 - Obteno de N sinais senoidais igualmente defasados, N = 4 (esq) e N = 5 (dir).


(a) Disco incremental com mscara. (b) Disco absoluto com trilha perifrica e mscara.
(c) Sobreposio de dois discos incrementais com diferena de 1 no nmero de pares.

48

Neste caso, as grades so utilizadas para facilitar a captura da luminosidade, alm de estarem
alinhadas com os setores de um dos discos.
Para um nmero N de dispositivos de leitura, a resoluo do encoder multiplicada por 2N.
No exemplo onde o nmero de dispositivos de leitura N = 4, obtm-se quatro sinais senoidais
igualmente defasados de 45, que propiciaro um aumento de 8 vezes na resoluo. Cada um
desses quatro sinais senoidais passa por um circuito quadrador, originando os mesmos quatro
sinais digitais (A, B, C e D) que provm das quatro sadas do circuito interpolador eletrnico
mostrado na Figura 3.4. O condicionamento seguinte dos sinais, tanto para um encoder absoluto
quanto para um encoder incremental, realizado da mesma maneira como foi apresentado para o
resolvedor eletrnico, e est sintetizado na Figura 3.5.
Quando se buscam grandes aumentos na resoluo, um sistema resolvedor eletrnico
mais recomendado do que um sistema resolvedor ptico, pois este ltimo comea a ficar mais
complexo fsica e geometricamente, medida que cresce o nmero de dispositivos de leitura.

49

4. Tcnicas de Fabricao de Discos e Rguas de Encoders pticos


Este captulo apresenta duas tcnicas de fabricao de elementos mveis de encoders
pticos. A primeira tcnica a ser apresentada a tcnica utilizada industrialmente. Nela, ser
discutida a preparao inicial do elemento, comparando materiais e suas propriedades. Tambm
sero descritas todas as etapas do processo de lift-off para gravao dos setores/trilhas em cromo
sobre o elemento mvel. A outra tcnica apresentada neste captulo emprega materiais de baixo
custo e dedicada construo de um disco de encoder ptico para fins didticos.

4.1 Tcnica Industrial Utilizando o Processo de Lift-off


Em sua maioria, discos e rguas de encoders pticos (incrementais ou absolutos)
disponveis comercialmente so feitos de vidro transparente. Os setores/trilhas opacas so
gravadas sobre a superfcie do vidro, atravs da deposio de uma pelcula de cromo. Essa
gravao realizada pelo processo de lift-off, o qual tambm utilizado na preparao de
mscaras usadas na fabricao de circuitos impressos por fotolitografia. A Figura 4.1, retirada de
(CATLOGO HEIDENHAIN, acesso em 2007), mostra exemplos de discos de encoders pticos
incrementais em (a), e absolutos em (b).

(a)

(b)

Figura 4.1 - Exemplos de discos de encoders pticos. (a) Incrementais.


(CATLOGO HEIDENHAIN, acesso em 2007).

50

(b) Absolutos.

Na seqncia, ser descrito o processo de fabricao de um disco de encoder ptico, j que


o processo o mesmo para a fabricao de uma rgua. O que podem variar so detalhes
relacionados diferena de formatos entre os elementos.

4.1.1 Preparao Inicial do Disco


O vidro transparente utilizado para fabricar o disco pode ter diferentes composies e
propriedades, de acordo com o tipo de vidro escolhido. Em (ELLIOTT, 1985), pode-se encontrar
uma comparao entre os principais tipos de vidro. A Tabela 4.1, adaptada do mesmo livro,
resume as diferenas na composio qumica e nas propriedades fsicas. Nota-se que todos os
tipos so compostos majoritariamente por dixido de silcio (SiO2), sendo o quartzo praticamente
SiO2 puro. Tambm nota-se que o quartzo o vidro que possui a menor expanso trmica, tanto
que classificado como um material de expanso trmica ultra baixa. O vidro LE-30 (silicato de
boro) tem uma expanso trmica superior ao quartzo, mas relativamente baixa, sendo
classificado, portanto, como vidro de baixa expanso. A Figura 4.2 compara a expanso em
micrmetros com a variao da temperatura para trs tipos de vidro, e para discos de ensaio de
vidro com quatro tamanhos diferentes: 6, 5, 4 e 3 polegadas (in). O vidro soda-lime o que
apresenta a maior expanso com a temperatura, mas tambm o de menor custo. O vidro de
silicato de boro tem preos no muito superiores aos do soda-lime e apresenta baixa expanso
com a variao da temperatura, como j foi dito. Por possuir pouco ou quase nenhum sdio na

Tabela 4.1 - Caractersticas dos principais tipos de vidro. (ELLIOTT, 1985).


Tipo de Vidro
Caracterstica
Composio Qumica, %
SiO2
B2O3
Al2O3
Na2O
K2O
CaO, MgO
Outros
Propriedades Fsicas
Expanso Trmica (10-7)
Temperatura de Transformao, C
ndice de Refrao, ND
Mdulo de Young, kg/mm2
Resistividade Eltrica, .cm
Gravidade Especfica

SLW
(soda lime)

SL
(white crown)

LE-30
(baixa expanso)

QZ
(quartzo )

73
1
15
1
10
-

70
8
9
12
1

60
5
15
20
-

100
-

94
542
1.52
7200
12
10
2.50

93
533
1.52
7340
15
10
2.56

37
686
1.53
7540
15
10
2.58

5
1120
1.46
7410
18
10
2.20

51

Expanso, m

Diferena de temperatura, C

Figura 4.2 - Expanso em funo do tipo de vidro, tamanho e temperatura. (ELLIOTT, 1985).

composio, o quartzo o vidro que menos se expande com o aumento da temperatura, porm,
o que possui o maior custo. A Figura 4.3, tambm adaptada de (ELLIOTT, 1985), apresenta a
relao entre a porcentagem de transmisso e o comprimento de onda para os diferentes tipos de
vidro. Todos eles tm transmisso superior a 90% para comprimentos de onda a partir do
espectro visvel (aprox. 4000 = 400nm). O quartzo, desejvel por razes de estabilidade
trmica, mantm transmisso de aproximadamente 90% para comprimentos de onda na direo
do ultravioleta intenso (menores comprimentos de onda). Essa caracterstica faz com que o
quartzo seja muito utilizado em aplicaes de imagem com ultravioleta intenso, como em
mscaras de alguns tipos de fotolitografia. Nesses casos, o quartzo garante ainda um aumento da
vida til da mscara. O quartzo tambm o mais resistente s solues utilizadas para a limpeza
do vidro. Diante das comparaes, possvel entender porqu o quartzo o vidro mais indicado
para aplicaes que envolvem grande preciso, como no caso de discos de encoders pticos, e

Transmisso, %

que sofrem processos fsico-qumicos durante o processo de fabricao.

Comprimento de onda,

Figura 4.3 - Transmisso em funo do comprimento de onda para diferentes tipos de vidro.
(ELLIOTT, 1985).

52

De acordo com (ELLIOTT, 1985), pode-se resumir em nove etapas o processo para
obteno de um disco de vidro a ser transformado num disco de encoder:

1. Misturar e fundir a matria prima (SiO2, B2O3, Na2O, CaO, ...)


2. Dar forma de chapas/lminas de vidro
3. Cortar em forma de disco
4. Aplainar
5. Polir
6. Limpar
7. Inspecionar a superfcie
8. Verificar a planicidade
9. Disco de vidro preparado

O processo pode variar de acordo com o fabricante, com operaes de inspeo e limpeza
podendo ser efetuadas em pontos diferentes. Cada etapa caracterizada por um equipamento
especial e cada fabricante desenvolve sua prpria tcnica para otimizar o processo.

4.1.2 Processo de Lift-off


O processo de lift-off um processo utilizado para a deposio de uma pelcula (desenho
padronizado) de metal sobre um substrato. No caso de um disco de encoder, o metal o cromo e
o substrato o disco de vidro. Tal processo possui vantagens sobre processos corrosivos fsicos
e/ou qumicos, como a vantagem de no necessitar da corroso do metal depositado e a de evitar
a corroso indesejada (under-etching).
Baseado em (MADOU, 1997), o primeiro passo do processo de lift-off na fabricao de um
disco de encoder a aplicao de uma camada fina de resina sobre a superfcie do disco de vidro,
geralmente quartzo, o qual foi previamente preparado e limpo. A resina pode ser fotosensvel,
isto , sensvel radiao UV, ou pode ser sensvel a um feixe de eltrons (e-beam), dependendo
da forma de radiao a ser utilizada para gravar o padro do desenho. A resina composta por
um polmero orgnico (resina base) e por um solvente, podendo ainda conter um sensibilizador.
O polmero muda a estrutura quando exposto radiao, o sensibilizador controla as reaes

53

qumicas na fase polimrica, e o solvente permite espalhar o polmero sobre a superfcie do


substrato. Continuando o processo, a soluo viscosa de resina colocada no centro do disco e o
mesmo posto a girar a altas taxas de rotao. A fora centrfuga espalha uma fina camada de
resina uniformemente sobre o disco. A espessura da camada controlada e depende da
velocidade de rotao, da concentrao da soluo e da viscosidade intrnseca. Aps a rotao, a
camada de resina ainda contm vestgios do solvente, o qual eliminado atravs do aquecimento
adequado do conjunto disco-resina. Esse aquecimento, por sinal, melhora a adeso entre eles.
importante dizer que as resinas so classificadas em dois tipos, a chamada resina positiva
e a chamada resina negativa. Se a resina positiva, a reao qumica durante a exposio
radiao enfraquece as cadeias de polmeros, aumentado sua solubilidade em solues com
substncias reveladoras. Se a resina negativa, a reao fortalece as cadeias de polmeros,
tornando a rea exposta radiao menos solvel em solues reveladoras.
O padro desejado a ser gravado no disco do encoder com a pelcula de cromo (ex. padro
incremental com marcao de zero, padro absoluto em cdigo Gray) deve ser o mesmo padro a
ser gravado na resina. A gravao do padro na resina feita, considerando o tipo de resina,
atravs da exposio radiao (radiao UV ou feixe de eltrons) das reas da resina que
determinaro o padro desejado. No caso da utilizao de uma fonte de radiao UV, essas reas
podem ser selecionadas por uma mscara contendo o padro desejado. A mscara semelhante
empregada no processo de fotolitografia para fabricao de circuitos integrados, e tambm
composta de quartzo com regies opacas de metal depositado na superfcie. Neste caso, todas as
reas expostas da fotoresina recebem radiao ao mesmo tempo, como pode ser observado no
item (a) da Figura 4.4. Agora, no caso da utilizao de um feixe de eltrons para gravao do
padro na resina, as reas a serem expostas so selecionadas pelo direcionamento do feixe de
eltrons. O equipamento que gera e controla o feixe de eltrons recebe o desenho do padro
desejado atravs de um sistema CAD. O feixe ento direcionado de modo a contornar o
desenho do padro, gravando-o sobre a resina e-beam. Assim, as reas selecionadas so expostas
ao feixe de eltrons em instantes diferentes durante o percurso do feixe, como representado pelos
tempos t1, t2 e t3 no item (b) da Figura 4.4.
Neste ponto do processo de lift-off, tem-se um disco com o padro desejado gravado na
resina na forma de reas latentes. Essas reas so reveladas por meio da imerso do disco em
uma soluo reveladora, ou borrifando essa soluo sobre a face do disco que contm a resina.

54

Aplicao da resina
Fotoresina

Resina e-beam

Vidro

Vidro

Gravao do padro na resina


Radiao UV

Feixe de eltrons (e-beam)


t1

t2

t3

Mscara

Revelao do padro
Fotoresina
negativa

Fotoresina
positiva

Resina e-beam
negativa

Resina e-beam
positiva

(a)

(b)

Figura 4.4 - Etapas iniciais do processo de lift-off. (a) Gravao do padro na resina com
radiao UV selecionada por uma mscara. (b) Gravao do padro na resina com
direcionamento do feixe de eltrons (e-beam).

Cada resina tem sua respectiva soluo reveladora, a qual tem a propriedade de dissolver as reas
que foram expostas radiao, no caso de uma resina positiva, e de dissolver as reas no
expostas, no caso de uma resina negativa. Ver Figura 4.4.
Aps a exposio e a revelao, o perfil obtido distinto para resinas positivas e para
resinas negativas. Elas apresentam comportamento diferente tanto na disperso da radiao em
seu interior, quanto na interao com a soluo reveladora. Os perfis em resinas positivas podem
ser controlados atravs da dose de exposio radiao e do tempo de revelao, como pode ser
visto no item (a) da Figura 4.5, adaptada de (MADOU, 1997). Altas doses de exposio e rpida

55

Dose de
exposio

Tempo de contato
com o revelador

Dose de
exposio

Alta

Baixo

Alta

Mdia

Mdio

Mdia

Baixa

Alto

Baixa

(b)
(b)

(a)

Figura 4.5 - Perfis aps a exposio radiao e revelao. (a) Resina positiva. (b) Resina
negativa.
revelao em resinas positivas so ideais para um bom processo de lift-off, pois originam um
perfil com paredes inclinadas no sentido de cobrir as arestas em contato com o substrato. Isso
evitar a deposio de metal sobre as paredes da resina, possibilitando o contato seguinte das
paredes da resina com o solvente removedor. Resinas negativas no apresentam o mesmo
controle sobre os perfis, acarretando apenas em pequenas variaes nas dimenses, quando da
mudana das condies de exposio e revelao. Observar item (b) da Figura 4.5.
Diante do apresentado, os processos de lift-off utilizam resinas positivas para gerar um
perfil de paredes inclinadas conforme descrito. Existem algumas tcnicas para tornar os outros
perfis mais adequados ao processo de lift-off, como, por exemplo, a apresentada por (PATEL et
al, acesso em 2007). A tcnica consiste em aplicar sobre a superfcie da resina, antes da
revelao, uma substncia que diminui a taxa de dissoluo da resina na soluo reveladora. Tal
substncia causar a diminuio na dissoluo somente da camada superior da resina, ou seja, a
poro da resina que entrou em contato com a substncia. No caso apresentado, a substncia o
clorobenzeno e um exemplo do perfil obtido reproduzido na Figura 4.6. Nela possvel
observar as rebarbas que permaneceram aps a revelao e que cobrem as paredes da resina.

Figura 4.6 - Perfil obtido com a aplicao de clorobenzeno sobre uma resina positiva antes da
revelao. (PATEL et al, acesso em 2007).

56

Voltando a abordar especificamente as resinas, um tipo de resina positiva muito conhecida


e utilizada a PMMA (poly-[methyl-metacrylate]). A resina PMMA sensvel radiao UV
intensa e sensvel ao feixe de eltrons. Tambm sensvel a outras formas de radiao, como
feixe de ons e raios-X. Tem como propriedades a boa transparncia, resistncia ao UV, boa
resistncia abrasiva, dureza, rigidez, baixa absoro de gua e baixa emisso de fumaa. Um
outro exemplo de resina positiva a PBS (poly-[butene-1-sulfone]). Maiores detalhes sobre
resinas podem ser encontrados em (MADOU, 1997) e em (ELLIOTT, 1985).
Neste ponto do processo de lift-off, aps a etapa de revelao, o disco do encoder apresenta
o padro desejado desenhado por meio de reas cobertas por resina e de reas removidas
(dissolvidas) de resina. As reas da superfcie do vidro que no devero receber uma pelcula de
cromo so as reas que esto cobertas pela resina, ou seja, o cromo ser depositado sobre a
resina, durante a deposio. As reas da superfcie do vidro que devero receber uma pelcula de
cromo so as reas reveladas, isto , aquelas que tiveram a camada de resina dissolvida. A etapa
seguinte do processo de lift-off para fabricao de um disco de encoder consiste, portanto, na
deposio de uma pelcula de cromo.
Segundo (ELLIOTT, 1985), existem diversos mtodos utilizados para depositar uma
pelcula de metal sobre um substrato de vidro. Eles so divididos em mtodos a vcuo (baixa
presso) e mtodos que no utilizam vcuo. Os principais mtodos de deposio a vcuo so os
mtodos de pulverizao (sputtering) e evaporao, muito comuns para depositar cromo. Dentre
os mtodos que no so a vcuo, destaca-se a deposio qumica a vapor (CVD). No caso de um
disco de encoder em um processo de lift-off, a deposio de uma pelcula de cromo realizada a
vcuo por pulverizao ou por evaporao. Os equipamentos para deposio a vcuo podem
apresentar diferentes caractersticas, porm, um equipamento bsico deve conter: uma rea onde
o vcuo possa ser gerado; software e hardware para controle de parmetros (ex. nvel de vcuo,
espessura da camada depositada); uma bomba de vcuo; e hardware para deposio de material.
A seguir, sero descritos os processos a vcuo de pulverizao e evaporao, comeando pelo
primeiro.
A pulverizao baseada no princpio da descarga eltrica entre dois eletrodos. O processo
ocorre a baixas presses, permitindo a expulso de tomos do metal no catodo em direo ao
anodo. Quando a cmara de vcuo termina de ser evacuada a um nvel apropriado, ons de um gs
inerte so introduzidos na cmara. Estes so rapidamente ionizados quando da aplicao de um

57

campo eltrico. Os tomos ionizados de alta energia incidem sobre a meta, que um pedao de
metal (cromo) presente no catodo. A energia incidente deve ser suficiente para romper as ligaes
entre os tomos de cromo, expelindo-os na direo do anodo. Este fenmeno lembra o que
acontece quando se atira uma pedra com fora em uma poa dgua. Assim, o cromo
pulverizado sobre o anodo, onde est localizado o substrato que recebe a deposio. O substrato,
no caso o disco com o padro desenhado em resina, deve ser mantido aquecido moderadamente
durante a pulverizao, tomando-se o cuidado de no atingir uma temperatura que comprometa as
propriedades da resina. A pulverizao proporciona uma boa adeso do cromo sobre o vidro, j
que os tomos de cromo o atingem com muita energia. Segundo (ELLIOTT, 1985), essa adeso
cerca de dez vezes maior do que a do processo de evaporao. Outras vantagens a considerar so
as altas taxas de deposio e a alta homogeneidade da deposio.
O processo de evaporao tambm acontece a presses muito baixas, neste caso, facilitando
a evaporao do metal (cromo) ao reduzir a temperatura necessria para tal. Existem diversos
mecanismos para se conseguir a evaporao do cromo, como, por exemplo, a utilizao de um fio
de cromo sobre um filamento, cuja passagem de corrente eltrica fornece calor para a fuso e a
evaporao deste fio de cromo. O vapor de cromo ento depositado sobre o disco com o padro
desenhado em resina. Como mencionado anteriormente, a adeso do cromo sobre o vidro num
processo de evaporao menor do que num processo de pulverizao, j que na evaporao os
tomos de cromo atingem o substrato com baixa energia relativamente. Para melhorar a adeso,
costuma-se aquecer o substrato mais do que num processo de pulverizao. Desse modo, no caso
do disco, aumenta-se a energia na superfcie do vidro, fortalecendo as ligaes cromo-vidro.
Tambm necessrio garantir que o aquecimento do disco no danifique a resina. O processo de
evaporao considerado um processo a quente e o processo de pulverizao pode ser
considerado um processo a frio. A Figura 4.7, presente em (PATEL et al, acesso em 2007), ilustra
o resultado da deposio de uma pelcula de metal sobre um substrato, por evaporao do metal.

Figura 4.7 - Resultado obtido com a deposio de uma pelcula de metal sobre um substrato, via
processo de evaporao do metal. (PATEL et al, acesso em 2007).

58

Na figura, possvel observar que as rebarbas impediram a deposio de metal sobre as


paredes da resina. A Figura 4.8 esquematiza a deposio, dentro do processo de lift-off, para o
caso de uma resina positiva com perfis inclinados e sem a presena de rebarbas.
A ltima etapa do processo de lift-off para fabricao de um disco de encoder a remoo
da resina que ainda permanece sobre o disco. Isso feito atravs da imerso do mesmo em uma
soluo contendo um solvente removedor apropriado para a resina utilizada. A acetona um tipo
de solvente barato e que remove um grande nmero de resinas. A remoo se inicia pelas paredes
da resina, as quais no foram cobertas pela pelcula de cromo e que, portanto, podem entrar em
contato com o solvente. Aps a total remoo da resina, tem-se um disco de vidro com o padro
desejado gravado em sua superfcie na forma de uma pelcula de cromo. O processo finalizado
com o uso de solues para limpeza e com a posterior secagem do disco. Ao trmino do processo
de lift-off, o disco est pronto para ser montado junto com os outros componentes de um encoder
ptico.
Revelao do padro
Resina positiva
Vidro

Deposio do cromo
Cromo

Remoo da resina

Figura 4.8 - Etapas finais do processo de lift-off.

59

4.2 Tcnica para Fins Didticos Utilizando Materiais de Baixo Custo


Uma maneira de compreender melhor o funcionamento de um encoder ptico atravs da
construo e utilizao de um modelo didtico deste encoder. Nesse sentido, a construo de seu
componente principal (elemento mvel) uma tarefa a ser realizada. Mantendo o enfoque em um
encoder rotativo, as etapas seguintes descrevem uma tcnica simples e barata de se obter um
disco de encoder ptico para fins didticos.
A primeira etapa a criao do desenho do padro a ser representado no disco, isto ,
desenhar os setores/trilhas que formam um padro incremental ou um padro absoluto. Um
computador pessoal munido de algum software grfico auxilia bastante na criao de padres
precisos e alinhados, alm de oferecer certa flexibilidade na modificao de caractersticas desses
padres (ex. nmero de setores em disco incremental). Um exemplo deste tipo de auxlio o
programa, desenvolvido em MATLAB, presente no Anexo III. Tal programa gera um disco
incremental com o nmero de pares de setores translcido-opaco definido na varivel Nlinhas. As
linhas aparecem na cor preta e os espaamentos na cor branca, como ilustrado na Figura 4.9 com
Nlinhas = 36.
1%

1%

1%

1% 1% 1%
1% 1%
1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%

1%
1%

1%
1%

1%
1%

1%
1%

1%

1%

1%

1%

1%

1% 1%
1%
1% 1% 1%
Figura 4.9 - Exemplo de disco incremental
obtido
com
programa em MATLAB, Nlinhas = 36.

60

A segunda etapa consiste em reproduzir o desenho do padro em uma folha de papel


branco. Isso facilmente conseguido atravs da impresso do desenho por uma impressora
comum. Um detalhe importante a ser observado o dimetro do padro impresso, que deve ser
compatvel com modelo didtico a ser construdo. Um padro impresso com 12 cm de dimetro
ideal quando se utilizam CDs transparentes para montar o disco. Esses CDs sero discutidos
mais adiante.
Na terceira etapa, deseja-se obter um padro com setores opacos e espaamentos
translcidos. Para conseguir isso, possvel xerocopiar o padro impresso em papel sobre uma
transparncia. Assim, o padro fica desenhado sobre a transparncia, onde as reas que eram da
cor preta passam a ser opacas e as reas que eram brancas tornam-se translcidas. A
transparncia recortada no formato do disco e feito um furo central, que no caso do uso de
CDs tem dimetro de 1,5 cm.
A ltima etapa a colocao da transparncia recortada em um sistema rgido, o qual
possibilitar o movimento de rotao. Esse sistema rgido pode ser um nico disco translcido,
fino e rgido, onde a transparncia colada sobre ele. Para uma maior flexibilidade, mais
conveniente posicionar a transparncia entre dois discos translcidos, finos e rgidos, que podem
ser unidos pelo furo central, evitando o uso de cola. Em ambos os casos, h uma dificuldade na
obteno de discos com as caractersticas mencionadas, logo o uso de CDs transparentes
justificado. Esses CDs so facilmente obtidos, estando presentes em todos os tubos de CDs
virgens disponveis comercialmente. A Figura 4.10 ilustra um resumo de todas as etapas
descritas.

Criao do
padro com
auxlio de um PC

Impresso do
padro em
papel branco

Xerocpia do padro
sobre uma transparncia
e recorte adequado

Fixao da transparncia
recortada utilizando CDs
transparentes

Figura 4.10 - Exemplo de tcnica para construo de um disco de encoder ptico para fins
didticos empregando materiais de baixo custo.

61

5. Erros e Testes de Encoders pticos


Este captulo traz estudos sobre erros e testes de encoders pticos, enfocando os
incrementais rotativos. Comea com a discusso de termos e erros associados a esse tipo de
encoder e sua montagem. Mostra o efeito de alguns fatores na amplitude do sinal de sada e
termina descrevendo uma tcnica para a realizao de testes de preciso.

5.1 Erros Associados a Encoders pticos Incrementais Rotativos


Antes de se iniciar a abordagem sobre os erros associados a encoders pticos incrementais
rotativos, convm diferenciar os termos resoluo, preciso e repetibilidade. Como (GORDON,
acesso em 2007) afirma, esses trs termos muitas vezes so confundidos, chegando at mesmo a
serem utilizados como sinnimos. Ele faz as seguintes definies:
A resoluo uma medida de quantos pulsos por unidade de distncia o encoder gera, ou,
inversamente, o tamanho do passo medido. Em encoders rotativos, a resoluo expressa em
unidades de ngulo (graus-minutos-segundos, graus decimais, grados, ou radianos) ou em
nmero de pulsos por revoluo (PPR, ou pulsos/rev). Geralmente, quando um nmero binrio de
pulsos por revoluo desejado, o termo bit usado para indicar a resoluo da maior potncia
de 2; por exemplo, um encoder de 16 bits gera 216 = 65.536 pulsos/rev. A resoluo o
parmetro mais bsico de um encoder; impossvel especificar um encoder sem definir sua
resoluo.
A preciso uma medida de onde o encoder diz que ele est versus onde ele realmente
est, ou de qual a contagem comparada com o que ela deveria ser. quase sempre expressa em
unidades de ngulo, embora alguns componentes de erro podem, s vezes, serem expressos em
graus eltricos, sendo necessrio converter para unidades angulares antes de som-los com outras
fontes. O uso do termo erro quase sempre uma indicao de que a preciso do encoder est
sendo discutida. Ambos a preciso e o erro expressam a diferena entre a posio indicada e a
posio real, mas com conotao ligeiramente diferente: a preciso quo perto a leitura indicada
est da posio real, enquanto que o erro quo longe a leitura indicada est da posio real.
Assim, uma preciso maior melhor, mas um erro maior no.

62

Enquanto a resoluo do encoder permanentemente fixa desde a fabricao do disco, os


erros do encoder podem variar em funo de fatores ambientais, como a temperatura, carga no
eixo, e condies de servio. Isso no significa que o nmero de pulsos por revoluo alterado.
Isso ocorreria somente como resultado de um dano severo ou contaminao de seus
componentes, tais como o disco ou o rolamento. Resoluo e preciso no esto diretamente
relacionados. Em encoders de alta performance, o erro pode chegar a muitos pulsos, ou pode ser
uma pequena frao de um nico pulso, dependendo das necessidades da aplicao.
A repetibilidade uma medida de qual a leitura neste instante, comparada com o que ela
era da ltima vez, para o movimento na mesma direo. Dependendo da aplicao, pode ser
importante distinguir entre repetibilidade de longo perodo e de curto perodo. Ela expressa em
unidades de ngulo, assim como a preciso. necessrio entender a aplicao para saber o qu
especificar. Caso se deseje controlar a trajetria de uma aeronave, por exemplo, a preciso ser
crtica, mas caso se deseje ensinar a um rob tarefas repetitivas, a repetibilidade pode ser mais
importante do que a preciso.
De acordo com (ELLIN, acesso em 2007), para a sada de um sistema com encoder ptico
incremental rotativo, como ilustrado na Figura 5.1, refletir o movimento real do componente, so
necessrios os seguintes pr-requisitos:

1) Cada parte do sistema deve girar em seu rolamento sem deslocamento radial do eixo de
rotao, isto , sem movimentao lateral;
2) O sistema de eixo conectando o componente de interesse ao encoder deveria ser rgido
toro;
3) O acoplamento deveria garantir que o movimento angular do encoder girando em seu
rolamento fosse o mesmo que o do componente de interesse girando em seu prprio sistema de
rolamento, isto , uma velocidade de junta constante e precisa exigida;
4) O espaamento dos setores/linhas ao longo do disco do encoder deveria ser uniforme e o
dispositivo de leitura deveria interpolar entre eles de modo linear;
5) O disco (escala) do encoder deveria ser verdadeiramente circular com o eixo de rotao
passando perpendicularmente atravs de seu centro;
6) O dispositivo de leitura deveria ler a escala sem paralaxe ou outro erro geomtrico e ser
rigidamente montado na estrutura no rotativa do encoder.

63

Dispositivo
de leitura

Componente
de interesse

Rolamento
do encoder

Rolamento do
componente
Acoplamento

Disco do
encoder

Eixo do
encoder

Rolamento do
componente

Eixo do
componente

Figura 5.1 - Sistema genrico com encoder. (ELLIN, acesso em 2007).

Se algum dos pr-requisitos listados no for cumprido, haver diferenas entre a posio
angular do componente de interesse e aquela indicada pelo encoder. Por meio da investigao de
cada uma dessas potenciais fontes de erro, possvel determinar suas contribuies individuais e,
conseqentemente, obter o erro total associado ao sistema. Ainda em (ELLIN, acesso em 2007),
pode-se encontrar anlises nesse sentido. Parte delas sero levantadas a seguir.
Efeito de desvios em rolamentos:
O termo desvio descreve uma variedade de atributos que resultam num deslocamento radial
(ou translao lateral) do eixo de rotao do encoder e/ou do componente, provocados em sua
maioria por deficincias nos rolamentos. Inclui jogo e harmnicas (ex. imperfeies das
esferas/roletes), mas no excentricidade. A magnitude do deslocamento radial de um eixo girando
em rolamentos de esferas/roletes afetado pelo projeto e ajuste desse sistema de rolamentos, mas
improvvel que seja menor do que 1 m. Como o sistema do encoder pode ler a posio de
sua escala rotativa com pelo menos um dcimo desse valor, pode ser visto que os erros causados
por desvios em rolamentos podem se sobrepor queles causados pelo restante de um sistema bem
projetado. A relao entre o deslocamento radial, a repetibilidade e a posio angular depender:
- das dimenses relativas do curso interno e externo do rolamento (onde se movimentam as
esferas/roletes);
- do nmero e dimetro das esferas/roletes;
- do ajuste do sistema de rolamentos.
Para sistemas de alta preciso, prefervel o uso de rolamentos a ar. Os deslocamentos
radiais podem ser reduzidos a sub-microns pela correta seleo da rigidez radial do rolamento.

64

Efeito de erros de acoplamento:


A Figura 5.1 mostra um sistema com um encoder rotativo com seu prprio rolamento
conectado ao componente de interesse, atravs de um acoplamento. Isso pode ser uma vantagem,
pois somente os desvios no rolamento do encoder iro afetar a preciso da medio angular.
Entretanto, essa vantagem deve ser considerada com cuidado, j que desvios nos rolamentos
principais iro afetar a preciso de posicionamento, se o sistema projetado para retornar as
coordenadas polares de um ponto no componente de interesse.
O acoplamento por si s pode ter um impacto significativo na preciso do sistema,
apresentando problemas como:
- Folgas: qualquer folga ir introduzir diferenas na posio angular indicada, considerando
a direo de rotao, e tem o impacto mais significativo na repetibilidade do sistema.
- Rigidez torsional: o acoplamento pode no ser to rgido quanto o eixo que ele conecta,
podendo, ento, ser afetado pela vibrao/ressonncia do sistema. Erros dinmicos acabam sendo
induzidos, resultando em problemas de performance.
- Erros angulares: a maioria dos acoplamentos pode, sob certas condies de alinhamento,
introduzir erros angulares entre o eixo motor e o eixo movido.
Efeito da distoro e excentricidade do disco/escala:
Caso seja necessrio se obter uma medio angular precisa, uma escala com graduao
linear deve ser posicionada a uma distncia adequada do eixo de rotao. Variaes no raio,
como a causada pela excentricidade de uma escala perfeitamente circular, podem gerar erros que
variam uma vez por revoluo. Estes se combinam com os outros erros que variam duas ou mais
vezes por revoluo, os quais so resultado da distoro da escala.

ngulo de
fase 1

Azimute zero
nominal

Centro de
rotao
r0
Excentricidade a1
Centro da escala

Figura 5.2 - Excentricidade. (ELLIN, acesso em 2007).

65

Considerando uma escala perfeitamente circular de raio r0, ao invs de mont-la para que
gire sobre sua linha de centro nominal, ela montada para girar sobre um outro ponto a uma
distncia a1 da nominal e a um ngulo de fase 1, conforme esquematizado na Figura 5.2,
tambm traduzida de (ELLIN, acesso em 2007). A um ngulo azimute arbitrrio 1, a distncia do
centro de rotao periferia da escala R0 ser dada por
R0 = r0 a1 cos( 1 ) .

(5.1)

O raio verdadeiro ir, portanto, variar de maneira senoidal uma vez por revoluo, com
uma amplitude igual excentricidade. Para adicionar os efeitos da distoro de escala, a forma
global do disco pode ser considerada como a soma de uma srie de ondas senoidais de diferentes
freqncias n, fases n e amplitudes an, tal que o raio da escala a um ngulo azimute dado por
R0 = r0 a1 cos( 1 ) a2 cos(2 2 ) a3 cos(3 3 ) ... a n cos(n n ) .

(5.2)

Pode ser mostrado que o mximo erro circunferencial En induzido por uma distoro de
amplitude an variando de maneira senoidal, com ciclo de n vezes por revoluo dado por

En =

an
.
n

(5.3)

Como uma verificao simples, uma excentricidade (isto n = 1) de 1 m induzir um erro


linear senoidal na circunferncia de 1 m.
Assim, pode ser notado que distores de ordens maiores na escala tero um efeito
progressivamente cada vez menor na preciso da escala. Nota-se tambm que as menores
harmnicas tero impacto significativo. Felizmente, erros induzidos por excentricidade e
distoro so controlados por meio de tcnicas de compensao, sendo a mais eficaz a utilizao
de mltiplos dispositivos de leitura.
Efeito da inclinao do disco/escala:
Esta a condio onde a escala do encoder est montada concentricamente com o
componente de interesse, mas tem seu eixo geomtrico inclinado em relao ao eixo de rotao.

66

Disco/escala
do encoder

ngulo de
inclinao

Figura 5.3 - Inclinao do disco/escala. (ELLIN, acesso em 2007).

A Figura 5.3, novamente traduzida de (ELLIN, acesso em 2007), ilustra essa condio.
Vista de lado, a cada rotao, seria possvel observar o movimento senoidal axial na periferia da
escala do encoder. A inclinao promove trs mecanismos de erro distintos. O primeiro est
associado distncia e ao ngulo relativo entre a periferia da escala e o dispositivo de leitura fixo
axialmente. O segundo est associado forma elptica que a escala assume quando vista de
frente, levando a erros que variam duas vezes por revoluo. O terceiro mecanismo s
pertinente quando a escala fabricada com graduaes axiais marginalmente oblquas (fora de
esquadro). Todos estes efeitos da inclinao tambm podem ser superados por meio de tcnicas
de compensao, como o uso de dois ou mais dispositivos de leitura diametralmente opostos.
Efeito de erros induzidos por dispositivos de leitura:
At agora, procurou-se concentrar na escala do encoder e em seus mecanismos de erro, mas
a escala somente parte do encoder. O dispositivo de leitura tambm contribui para o erro total.
Os erros induzidos por dispositivos de leitura mais significativos so:
- Erro de sub-diviso: surge da no linearidade na interpolao, a qual requerida nos casos
em que se deseja aumentar a resoluo do encoder. O erro de sub-diviso afetado pelo
alinhamento, ajuste e limpeza da escala, por isso importante manter o encoder bem abrigado e o
dispositivo de leitura bem alinhado.
- Paralaxe: a distncia entre a escala e o dispositivo de leitura pode mudar devido, por
exemplo, excentricidade do disco ou variao da temperatura. Logo, erros sero induzidos,
exceto se o dispositivo de leitura estiver corretamente alinhado com a linha de centro da escala
circular.
- Estabilidade da montagem: este pode parecer bvio, mas a montagem rgida e segura do
dispositivo de leitura e da marca de referncia vital para medies angulares repetidas e
precisas.

67

5.2 Testes de Encoders pticos Incrementais Rotativos


Em (MATSUZOE et al, 2001), encontra-se uma anlise que verifica a influncia de trs
fatores na amplitude do sinal gerado em encoders pticos incrementais rotativos. Os fatores so:

1) a distncia entre o fotodetector (dispositivo de leitura) e o disco graduado (escala);


2) a razo entre a largura da rea ativa do fotodetector e o espaamento das graduaes do
disco;
3) a concentricidade entre o fotodetector e o disco graduado.

Variando certos parmetros (relacionados aos trs fatores), a tcnica e o sistema utilizados
geram resultados analticos, os quais so comparados com os resultados obtidos em um encoder
real com parmetros idnticos. Confirmando-se que os resultados analticos so muito prximos
dos resultados reais, possvel testar um encoder em relao a um parmetro definido, j que sua
resposta deve seguir a resposta analtica. Em outras palavras, o sinal senoidal gerado pelo
fotodetector do encoder deve ser comparado com o sinal previsto analiticamente.
Primeiramente, (MATSUZOE et al, 2001) apresenta o princpio de funcionamento do
encoder ptico incremental rotativo, representado na Figura 5.4. A luz, a partir do LED, atravessa
o disco pelo espaamento entre as reas opacas, isto , pelas reas translcidas, e detectada pela
rea ativa do fotodetector.
reas
opacas
Graduaes

LED

Fotodetector
Eixo de rotao
Disco
graduado
L: comprimento

Figura 5.4 - Princpio de um encoder ptico incremental rotativo. (MATSUZOE et al, 2001).

68

reas opacas

Comprimento
da onda

(a) Coberta por reas opacas

(b) Semicoberta por reas opacas

(c)

(c)

(b)

Amplitude

Sinal de sada

Fotodetector
rea ativa

(b)

(a)

(a)
Offset
ngulo de rotao do disco

(c) Detecta a luz completamente

Figura 5.5 - Relao fotodetector-graduaes e amplitude do sinal de sada do fotodetector.


(MATSUZOE et al, 2001).

A relao entre a rotao do disco graduado e a rea ativa do fotodetector mostrada na


Figura 5.5. Ao girar o disco, pode-se ver que a amplitude do sinal de sada do fotodetector varia
de um mnimo (a) at um mximo (c), tomando a forma de uma onda triangular. Esta forma de
onda triangular terica, j que o sinal de sada real do fotodetector fica sujeito a distores e
atenuaes de amplitude causadas pelos trs fatores mencionados anteriormente.
O sistema implementado em (MATSUZOE et al, 2001) para detectar a intensidade de luz
que atravessa o disco graduado, esquematizado na Figura 5.6. O sistema composto por um
LED, um disco graduado, uma lente, uma cmera CCD, um processador de imagem e um
computador pessoal. A luz proveniente do LED atravessa o disco graduado pelas reas
translcidas e detectada pela cmera CCD atravs da lente.

Lente objetiva
Unidade de
processamento
de imagem

Cmera
CCD
LED

PC

Posio de formao de
imagem da lente objetiva
Disco graduado
L: comprimento

Figura 5.6 - Sistema implementado para a realizao da anlise. (MATSUZOE et al, 2001).

69

g(X0,Y0)

g(a,b)

Modelo do fotodetector

Direo radial

g(c,d)

x
Direo de rotao

Figura 5.7 - Imagem da intensidade de luz a uma posio L = 0,1 mm. (MATSUZOE et al, 2001).

A Figura 5.7 apresenta a imagem obtida pelo sistema. A imagem indica a intensidade de luz
em uma posio onde L = 0,1 mm. As reas escuras so aquelas cobertas pelas reas opacas do
disco, enquanto que as reas claras so aquelas iluminadas. O modelo do fotodetector representa
a rea ativa do fotodetector que est sendo iluminada. Ignorando o efeito da comunicao cruzada
entre cada rea ativa do fotodetector e possveis efeitos de suas reas no ativas, o sinal de sada
do fotodetector ser proporcional s reas ativas iluminadas. Em outras palavras, o sinal de sada
do fotodetector computado pela integral do modelo do fotodetector na imagem, ou seja,
In = g ( x, y ) .

(5.4)

Aqui, g(x,y) a imagem presente na Figura 5.7 e In o valor da integral calculada pelas
coordenadas de g(a,b) e g(c,d). Assim, quando o disco graduado gira, o modelo do fotodetector
se move na direo da seta maior, mostrada na Figura 5.7, baseado no movimento relativo entre o
disco e o fotodetector. O sinal de sada do fotodetector determinado repetindo este clculo para
cada movimento de giro do disco, mais especificamente, toda vez que o modelo do fotodetector
se mover 1 pixel na direo indicada pela seta. A Figura 5.8 mostra o resultado analtico obtido
empregando esta tcnica. O eixo vertical indica a amplitude normalizada, e o eixo horizontal
indica o movimento do modelo do fotodetector em pixels. O resultado analtico um sinal de
sada senoidal (no triangular), incluindo o efeito da difrao e disperso da luz em direo
oblqua, porque a imagem baseada na intensidade de luz a uma posio onde L = 0,1 mm.

70

Amplitude normalizada
Movimento do modelo do fotodetector (pixels)

Figura 5.8 - Resultado analtico do sinal de sada do modelo do fotodetector. (MATSUZOE et


al, 2001).
Com a tcnica e o sistema apresentados, (MATSUZOE et al, 2001) passa a discutir a
influncia no sinal de sada dos trs fatores levantados no incio, comeando pela distncia entre
o fotodetector e o disco graduado. Alguns de seus resultados sero expostos a seguir.
Influncia da distncia entre o fotodetector e o disco graduado:
Esta distncia o comprimento L indicado nas Figuras 5.4 e 5.6. Foram obtidas imagens
com L = 0,0 mm, L = 0,1 mm, L = 0,2 mm e L = 0,3 mm, as quais geraram o resultado analtico
do sinal de sada. Tais imagens e o resultado analtico podem ser observados na Figura 5.9 (a) e
(b), respectivamente. Quando L = 0,0 mm, as cristas e vales do sinal de sada so mais agudos do
que quando L = 0,3 mm. Isso se deve menor influncia da difrao e da direo oblqua da luz
vinda do LED, quando L fica menor. O eixo vertical da Figura 5.9 (b) foi normalizado pela
amplitude do caso onde L = 0,0 mm. A amplitude cai com o aumento de L, pois o fotodetector

Amplitude normalizada

(modelo) fica cada vez mais longe da fonte de luz, no caso o LED, que permanece fixo.

L = 0,0 mm

L = 0,1 mm

L = 0,2 mm

L = 0,3 mm
Movimento do modelo do fotodetector (pixels)

(a)

(b)

Figura 5.9 - Influncia da distncia entre o fotodetector e o disco graduado. (a) Imagens obtidas.
(b) Resultado analtico do sinal de sada. (MATSUZOE et al, 2001).

71

Amplitude normalizada

Movimento relativo entre o fotodetector e o disco (mm)

Figura 5.10 - Influncia da distncia entre o fotodetector e o disco graduado. Resultado das
medies do sinal de sada do fotodetector em um encoder real. (MATSUZOE et al, 2001).
Para comparar com o resultado analtico, foram realizadas medies da amplitude do sinal
de sada do fotodetector de um encoder real, para os mesmos Ls. O resultado destas medies,
obtidas por (MATSUZOE et al, 2001), mostrado na Figura 5.10. O eixo vertical tambm est
normalizado para o caso onde L = 0,0 mm. Pela simples comparao das Figuras 5.9 (b) e 5.10,
se v que os resultados analticos so muito prximos dos resultados reais medidos.
Influncia da razo entre a largura da rea ativa do fotodetector e o espaamento das
graduaes do disco:
Esta razo referida como duty, por (MATSUZOE et al, 2001). Neste caso, foram obtidas
imagens com duty de 100, 70 e 40%, ambas para o mesmo valor de L = 0,2 mm. A partir dessas
imagens tambm foi gerado o resultado analtico do sinal de sada. A Figura 5.11 exibe essas
imagens e o resultado analtico. O eixo vertical da Figura 5.11 (b) est normalizado para um duty

Amplitude normalizada

Modelo do
fotodetector

Movimento do modelo do fotodetector (pixels)

(b)

(a)

Figura 5.11 - Influncia da razo entre a largura da rea ativa do fotodetector e o espaamento
das graduaes do disco. (a) Imagens obtidas. (b) Resultado analtico do sinal de sada.
(MATSUZOE et al, 2001).

72

Amplitude normalizada

Movimento relativo entre o fotodetector e o disco (mm)

Figura 5.12 - Influncia da razo entre a largura da rea ativa do fotodetector e o espaamento
das graduaes do disco. Resultado das medies do sinal de sada do fotodetector em um
encoder real. (MATSUZOE et al, 2001).

de 100% com L = 0,0 mm. A influncia da difrao e da direo oblqua da luz vinda do LED
diminuda, quando a largura da rea ativa menor do que o espaamento das graduaes do
disco. Por exemplo, com base na Figura 5.11 (b), a amplitude do sinal de sada aumenta de 66%
(83% - 17% = 66%) para 89% (94% - 5% = 89%), com a reduo do duty de 100 para 40%.
Novamente, para comparar com o resultado analtico, (MATSUZOE et al, 2001) realizou
medies em fotodetectores de encoders reais, preparados com duty de 100 e 70%. O duty de
40% no foi medido/implementado por questes de custo. A Figura 5.12 mostra o resultado
destas medies. O eixo vertical est normalizado para um duty de 100% com L = 0,0 mm. A
comparao das Figuras 5.11 (b) e 5.12, nos casos onde o duty 100 e 70%, mais uma vez
confirmam que os resultados analticos so muito prximos dos resultados reais medidos.
Influncia da concentricidade entre o fotodetector e o disco graduado:
A posio correta do fotodetector aquela na qual a linha de centro de cada rea ativa,
quando estendida na direo do centro do encoder (SP), o intercepta. Alm disso, deve interceptar
o centro de rotao do disco graduado (SS), isto , SP e SS devem ser coincidentes, como
ilustrado na Figura 5.13 (a). Se a posio relativa de SP e SS for levemente alterada em x e em y,
o fotodetector e o disco graduado inclinam-se um em relao ao outro, e o disco graduado fica
impossibilitado de cobrir completamente a rea ativa, como mostra a Figura 5.13 (b). Nela,
calculado por tan-1(x/R), com R >> y sendo o raio do disco graduado.
O resultado analtico foi obtido atravs de imagens onde = 1 e = 2,4, conseguidos com
o desvio entre SP e SS de x = 0.2 mm e x = 0.5 mm, respectivamente. Em ambos os casos, o raio
do disco tinha 12 mm. Um exemplo de imagem captada e o resultado analtico obtido podem ser

73

Linha de centro
da rea ativa

Centro de rotao do disco (SS)

Centro do fotodetector (SP)


(a) SS e SP coincidentes

(b) SS e SP no coincidentes

Figura 5.13 - Posio relativa entre o fotodetector e o disco graduado. (MATSUZOE et al,
2001).

vistos na Figura 5.14. O eixo vertical est normalizado pela amplitude relacionada a = 0.
Segundo (MATSUZOE et al, 2001), a atenuao de amplitude, resultante da variao da
concentricidade, muito menor do que a atenuao resultante da variao dos dois fatores
anteriormente analisados. Isto pode ser visto pelos resultados analticos, j que os resultados reais

Modelo do
fotodetector

Amplitude normalizada

para a influncia do fator concentricidade no foram levantados.

Movimento do modelo do fotodetector (pixels)

(b)

(a)

Figura 5.14 - Influncia da concentricidade entre o fotodetector e o disco graduado.


(a) Exemplo de imagem captada. (b) Resultado analtico do sinal de sada. (MATSUZOE et al,
2001).

74

Falando agora especificamente sobre o teste de preciso de um encoder ptico incremental


rotativo, (GORDON, acesso em 2007) menciona que uma maneira de medir sua preciso
girando o encoder a uma velocidade muito bem controlada, e medindo o intervalo de tempo entre
as sucessivas transies do sinal de sada. Diz que a eletrnica moderna permite que esse
intervalo de tempo seja medido corretamente, mas que impossvel separar variaes na
velocidade de erros na posio do encoder, principalmente em encoders de alta resoluo. O
aperfeioado controle de velocidade, presente nos dias atuais, permite que esta tcnica seja
utilizada em encoders de baixa e moderada resoluo, porm os de alta resoluo necessitam de
uma tcnica mais direta para medir os erros de posio.
Ainda em (GORDON, acesso em 2007), apresentado um equipamento denominado
METRA Master Encoder for Testing Rotary Accuracy. O dispositivo central do METRA um
encoder ptico com 20 polegadas de dimetro, montado sobre um eixo com rolamentos a ar. Uma
tcnica de mltiplos dispositivos de leitura elimina, virtualmente, todos os erros. O METRA tem
resoluo de 221 pulsos/rev, ou seja, 2.097.152 pulsos/rev. Para medir a preciso, o encoder a ser
testado acoplado ao METRA com muita perfeio. Ao serem girados juntos, a informao da
posio do METRA usada para interrogar o encoder sob teste, a uma taxa de 2.097.152 vezes
por revoluo. Desta maneira, esse teste verifica a localizao de cada estado da sada do encoder
sob teste, e tambm no depende de suposies estatsticas baseadas num conjunto incompleto de
dados.
O princpio do METRA pode ser empregado para testar a preciso de um encoder de menor
resoluo via utilizao de um encoder de maior resoluo (encoder de referncia), bastando
acoplar os dois para que girem solidariamente e analisando suas sadas. Por exemplo,
considerando a Figura 5.15, se a cada pulso do encoder de menor resoluo (A, B, C, ...)
corresponder sempre 8 pulsos do encoder de referncia, pode-se dizer que a preciso do encoder
de menor resoluo mantida dentro de um ngulo equivalente a um pulso do encoder de
referncia. Mas, pode-se observar que ao pulso B correspondem, erroneamente, 9 pulsos do
encoder de referncia. Assim sendo, neste trecho, a posio real de um componente acoplado ao
encoder de menor resoluo ligeiramente diferente da indicada por este encoder. Em outras
palavras, sua preciso menor neste trecho.

75

Encoder
de menor
resoluo
Encoder
de maior
resoluo
(referncia)

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8

Figura 5.15 - Teste de preciso de um encoder de menor resoluo utilizando um encoder de


referncia.

76

6. Materiais e Mtodos
Neste captulo, sero apresentados os detalhes para a construo de um kit de encoder
didtico. O mesmo ser composto por um encoder ptico incremental rotativo baseado no efeito
moir e por um sistema informtico que efetua a aquisio das posies do encoder em um dado
movimento, com a determinao da respectiva velocidade. Tal sistema informtico, desenvolvido
em MATLAB, ainda permitir a realizao de um teste para verificar a preciso do encoder
didtico com ajuda de um encoder comercial de maior resoluo (encoder de referncia).

6.1 Projeto e Montagem da Mecnica do Kit de Encoder


Conforme apresentado na seo 2.4.2 (Encoder ptico Incremental), existem diversas
maneiras de se utilizar o efeito moir num encoder incremental para a obteno de dois sinais
defasados de 90 eltricos. O mtodo escolhido para ser utilizado no encoder didtico foi aquele
que gera o efeito moir a partir da sobreposio de dois discos, um esttico e um mvel. Alm
disso, a diferena entre o nmero de pares de setores translcido-opaco de um disco para o outro
deve ser igual a 1, levando formao de um batimento. Essa escolha foi feita considerando a
facilidade de se conseguir a defasagem de 90 eltricos por meio do posicionamento de
dispositivos de leitura a 90 angulares entre si. Tambm foi considerada a menor complexidade
de seu sistema ptico, o que permitiu a utilizao de materiais de baixo custo.
Baseando-se no mtodo escolhido e sem considerar o uso de resolvedores, a resoluo do
encoder definida pelo nmero de pares de setores translcido-opaco do disco mvel. Optou-se
por um disco mvel com 32 pares de setores translcido-opaco. Isto se justifica, primeiramente,
pelo fato de terem sido utilizados CDs transparentes para confeco dos discos, o que
determinou a largura dos setores translcidos e opacos na periferia do disco. Essa largura deveria
ser compatvel com o tamanho dos dispositivos de leitura, garantindo a deteco do sinal
luminoso e a gerao de um sinal eltrico com amplitude suficiente. Para tal foram utilizados
LEDs infravermelho (emissor) e fotodiodos (receptor) de 5mm. A opo de um disco mvel com
32 pares de setores translcido-opaco tambm justificada pelo fato de que ser utilizado um

77

= 1 LED infravermelho + 1 fotodiodo

90

(a)

(b)

(c)

Figura 6.1 - Mtodo escolhido para gerao do efeito moir e obteno de dois sinais defasados
de 90 eltricos. (a) Disco mvel com 32 pares de setores translcido-opaco. (b) Disco esttico
com 33 pares de setores translcido-opaco. (c) Sobreposio dos discos.

resolvedor eletrnico (via software) para aumento em 4 vezes da resoluo. Deste modo, a
resoluo final ser de 128 pulsos por revoluo, que um valor na base 2 como na maioria dos
encoders. Tambm pode ser levantado como justificativa o fato de que o teste de preciso a ser
realizado sobre o encoder didtico feito com a ajuda de um encoder de referncia com 1024
PPR, valor exatamente 8 vezes maior do que 32*4 = 128 PPR.
A Figura 6.1 sintetiza o mtodo escolhido para gerao do efeito moir e para a obteno
de dois sinais defasados eletricamente de 90.
Tendo em mente a utilizao de materiais de baixo custo e a utilizao dos equipamentos
disponveis no laboratrio de mecatrnica, o kit de encoder foi mecanicamente projetado e
construdo com os seguintes componentes:
- 1 base metlica, Figura 6.2, com eixo central acoplado a um motor CC e a um encoder de
referncia com 1024 PPR. Mdulo presente no laboratrio;
- 1 eixo de plstico, Figura 6.3, obtido a partir do eixo presente em tubos de CDs virgens;
- 1 suporte confeccionado em papelo, Figura 6.4, para fixar os fotodiodos (receptores);
- 1 suporte confeccionado em papelo, Figura 6.5, para fixar os LEDs infravermelho
(emissores);
- 3 CDs de plstico transparente, Figura 6.6, presentes em tubos de CDs virgens;

78

- 1 padro de disco incremental em transparncia, Figura 6.7, com 33 pares de setores


translcido-opaco. Obtido segundo o mtodo apresentado na seo 4.2 (Tcnica para Fins
Didticos Utilizando Materiais de Baixo Custo);
- 1 padro de disco incremental em transparncia, Figura 6.8, com 32 pares de setores
translcido-opaco. Obtido segundo o mtodo apresentado na seo 4.2 (Tcnica para Fins
Didticos Utilizando Materiais de Baixo Custo);
- 2 suportes metlicos, Figura 6.9, para fixao na base e fixao/ajuste das cantoneiras;
- 4 cantoneiras metlicas com rasgos, Figura 6.10, para fixao dos suportes em papelo e
do disco esttico;
- 4 cantoneiras metlicas com furos, Figura 6.11, para fixao dos suportes em papelo e do
disco esttico;
- 2 fotodiodos de 5mm (corpo branco), 2 LEDs infravermelho de 5mm (corpo azul), 2
anis oring de 15mm, 4 pares de arruelas pequenas, 8 parafusos com porca M3, Figura 6.12;
- Fios para conexo, estanho para soldagem, fita isolante e espaguetes para isolao
eltrica. Todos aplicados aos terminais dos LEDs e fotodiodos.

Figura 6.2 - Croqui da base metlica.

Figura 6.3 - Croqui do eixo de plstico.

79

Figura 6.4 - Croqui do suporte de papelo para fixar os fotodiodos.

Figura 6.5 - Croqui do suporte de papelo para fixar os LEDs infravermelho.

Figura 6.6 - Croqui dos CDs de plstico transparente. Dext = 120mm. D int = 15mm.

Figura 6.7 - Croqui do disco incremental em transparncia com 33 pares de setores.

80

Figura 6.8 - Croqui do disco incremental em transparncia com 32 pares de setores.

Figura 6.9 - Croqui dos suportes metlicos.

Figura 6.10 - Croqui das cantoneiras metlicas com rasgos.

Figura 6.11 - Croqui das cantoneiras metlicas com furos.

81

Figura 6.12 - Croqui de um conjunto de componentes.

Antes de apresentar como foi feita a montagem do encoder didtico a partir de seus
componentes, convm mostrar as etapas de sub-montagem nas quais os fotodiodos e os LEDs
infravermelho foram fixados em seus respectivos suportes.
Os dois fotodiodos tiveram seus terminais dobrados e encaixados no rasgo presente no
suporte, como ilustrado na Figura 6.13. Eles foram posicionados aproximadamente a 90
angulares um do outro, dados pela distncia de 9 setores translcidos no disco esttico, ver Figura
6.1 (b). Voltando Figura 6.13, os terminais dos fotodiodos foram soldados a fios de conexo na
parte inferior do suporte. Os terminais catodo (K), identificados pelo chanfro no corpo dos
componentes, foram soldados aos fios de cor branco-marrom num fotodiodo e branco-verde no
outro. Os terminais anodo (A) foram soldados, respectivamente para cada fotodiodo, aos fios de
cor marrom e verde.

Figura 6.13 - Croqui da sub-montagem dos fotodiodos no suporte.

82

Figura 6.14 - Croqui da sub-montagem dos LEDs infravermelho no suporte.

A Figura 6.14 mostra que os dois LEDs infravermelho tambm tiveram seus terminais
dobrados e encaixados no rasgo presente no suporte. Eles foram posicionados aproximadamente a
90 angulares um do outro, buscando o alinhamento com os fotodiodos fixados no outro suporte.
Mais uma vez os terminais foram soldados a fios de conexo na parte inferior do suporte. Os
terminais catodo (K), identificados pelo chanfro no corpo dos componentes, foram soldados aos
fios de cor branco-laranja num LED e branco-azul no outro. Os terminais anodo (A) tambm
foram soldados, respectivamente para cada LED, aos fios de cor laranja e azul.
A montagem do encoder didtico foi realizada seguindo as etapas apresentadas pelos
croquis da Figura 6.15. Tais croquis foram elaborados no AutoCAD 2006, assim como todos os
croquis anteriores. Uma breve descrio sobre cada etapa dada a seguir:

1 - Retirar os 8 parafusos da base metlica (4 das extremidades e 4 do eixo central). Figura


6.15 (a);

2 - Fixar o eixo de plstico no eixo central da base metlica por meio dos 4 parafusos
retirados anteriormente e com o uso dos 4 pares de arruelas. Fixar os dois suportes metlicos, um
em cada lado da base, por meio dos outros 4 parafusos retirados na etapa 1. Em cada suporte
metlico, fixar uma cantoneira metlica que possui furos usando 2 parafusos e suas porcas.
Figura 6.15 (b);

83

(a)

(b)

(c)

(d)

(e)

(f)

Figura 6.15 - Croquis das etapas de montagem do encoder didtico.

84

3 - Posicionar o suporte com os LEDs infravermelho sobre as cantoneiras. Em cada lado,


encaixar uma cantoneira que possui rasgos sobre a cantoneira que j est presa, de modo que o
suporte de papelo fique entre elas. Fazer o alinhamento e apertar os parafusos/porcas. Inserir um
anel oring no eixo de plstico, servindo de apoio para a fixao do disco mvel. A posio do
anel deve ser ajustada para que no haja contato entre o disco mvel e o corpo dos LEDs
infravermelho. Figura 6.15 (c);

4 - Posicionar sobre o anel oring, nesta seqncia, um CD transparente, o padro de disco


incremental em transparncia de 32 pares de setores translcido-opaco e outro CD transparente.
Inserir outro anel oring no eixo de plstico, comprimindo e alinhando o conjunto que agora
forma o disco mvel. Figura 6.15 (d);

5 - Colocar sobre o disco mvel, nesta seqncia, um CD transparente, o padro de disco


incremental em transparncia de 33 pares de setores translcido-opaco e o suporte com os
fotodiodos. Em cada suporte metlico, fixar uma cantoneira metlica que possui furos usando 2
parafusos e suas porcas. Em cada cantoneira recm fixada, encaixar (por baixo) uma cantoneira
que possui rasgos, de forma que o CD, a transparncia e o suporte de papelo fiquem
comprimidos entre os dois tipos de cantoneira. Antes de dar o aperto final nos parafusos/porcas,
deve-se ajustar este conjunto (disco esttico e suporte com fotodiodos) para que no fique em
contato com o disco mvel, mas tambm no muito afastado, j que a luz emitida pelos LEDs
infravermelho deve ser captada pelos fotodiodos. Ainda antes de apertar os parafusos/porcas,
deve-se alinhar cada fotodiodo com um setor translcido do disco esttico. A distncia entre os
dois fotodiodos dada por 9 setores translcidos do disco esttico, determinando os 90
angulares. Figura 6.15 (e);

6 - Fazer ajustes finais e alinhamento preciso dos pares emissor-receptor. Os fios de


conexo saem pela parte traseira do encoder. Figura 6.15 (f).

85

6.2 Projeto e Montagem da Eletrnica do Kit de Encoder


Continuando com o mtodo escolhido, que gera o efeito moir a partir da sobreposio de
dois discos, um esttico e um mvel, cuja diferena no nmero de pares de setores translcidoopaco igual a 1, foi necessrio transformar o sinal luminoso dos dispositivos de leitura em sinal
eltrico. O primeiro passo foi a criao do circuito para ligao dos fotodiodos e dos LEDs
infravermelho.
Considerando que a tenso de alimentao era de 5 VCC, que a queda de tenso sobre os
LEDs infravermelho era de 2 V, e que sua corrente no pudesse ultrapassar 20 mA, o resistor a
ser ligado em srie com cada LED infravermelho foi dimensionado utilizando a seguinte
equao:

R=

VCC VLED 5 2
3
=
=
= 150 .
ILED
0,02 0,02

(6.1)

Foi escolhido um resistor comercial de 180 , determinando uma corrente de:

ILED =

VCC VLED 5 2
3
=
= 16,7 mA .
=
R
180 180

(6.2)

O resistor a ser colocado em srie com cada fotodiodo teve seu valor estabelecido
experimentalmente, atravs da montagem do circuito mostrado na Figura 6.16. Observar que o
LED infravermelho polarizado diretamente, enquanto que o fotodiodo polarizado
inversamente. A cada valor de resistncia testada, comeando com as maiores, foi feita a
aproximao do LED infravermelho em relao ao fotodiodo a uma distncia de 10mm, distncia
esta similar distncia prevista na montagem do encoder. Alm disso, foi medida a tenso no
ponto C procurando-se obter um valor o mais prximo possvel de 5 V. O resistor de 1 k
atendeu bem as exigncias, gerando uma tenso aproximada de 4,3 V no ponto C.

86

Figura 6.16 - Circuito para ligao de um par emissor-receptor (LED infravermelho-fotodiodo).

O passo seguinte foi transformar o sinal analgico em digital, ou seja, transformar o sinal
de tenso no ponto C, que varia de um mnimo (luz bloqueada) a um mximo (luz incidente) e
volta a um mnimo, em uma onda quadrada. Para isso foi utilizado um circuito quadrador, como
apresentado na seo 2.4.2 (Encoder ptico Incremental). O circuito quadrador escolhido foi o
schmitt trigger, cujas caractersticas so trazidas na Figura 6.17, modificada de (SCHMITT
TRIGGER, acesso em 2007). O valor dos resistores segue um compromisso e seu
dimensionamento exato somente via clculo no era garantia de funcionamento na prtica. O
ponto de partida adotado foi a escolha de R3 como o resistor de maior valor, minimizando a
diferena entre v2 e v2. O valor escolhido para R3 foi de 10 k. Adotando Vref = Vcc = 5 V,
ligando o ponto C do circuito anterior a Vin , foram realizados alguns ensaios com diferentes
valores de R1 e R2, ambos menores que 10 k.

Figura 6.17 - Circuito quadrador. (SCHMITT TRIGGER, acesso em 2007).

87

Os ensaios envolveram um circuito para cada par emissor-receptor, j posicionados 90


angulares um do outro conforme montagem da seo anterior. Um cenrio que se adequou bem
necessidade de um nvel de tenso TTL alto em Vout, quando da transio para nvel alto (luz
incidente), foi obtido com R1 = 560 e R2 = 1 k. Com esses resistores, as tenses foram as
seguintes: Vout = GND (nvel baixo), Vout = 3,5 V (nvel alto, interpretado como 5 V TTL), v2 =
1,9 V (calculado) e v2 = 1,6 V (calculado). Esse cenrio tambm garantiu a defasagem de 90
eltricos entre os sinais digitais de cada para emissor-receptor, quando da rotao do eixo do
encoder. A Figura 6.18 ilustra esses sinais.
O circuito completo para ligao e condicionamento dos sinais dos fotodiodos e dos
LEDs infravermelho mostrado na Figura 6.19. Ele foi montado com os seguintes componentes:
- 2 fotodiodos de 5mm e 2 LEDs infravermelho de 5mm, j posicionados mecanicamente no
encoder didtico e com fios soldados a seus terminais;
- 2 resistores de 180 , 2 resistores de 560 , 2 resistores de 10 k e 4 resistores de 1 k;
- 1 circuito integrado LM324 com quatro amplificadores operacionais;
- 1 protoboard, fios e grampos metlicos para conexes.

Vin A
Vin B
Vout A
Vout B

Figura 6.18 - Defasagem de 90 eltricos entre os sinais dos pares emissor-receptor.

Figura 6.19 - Circuito para ligao e condicionamento dos sinais dos fotodiodos e dos LEDs
infravermelho, incluindo a pinagem do CI LM324.

88

DB9 Fmea

Encoder de
Referncia

DB9 Macho

A_RES

B
5 VCC

B_RES
5 VCC

Protoboard

GND

GND

Figura 6.20 - Ligao do encoder de referncia.

O kit tambm conta com um encoder de referncia (1024 PPR) acoplado ao mesmo eixo do
encoder didtico. O encoder de referncia faz parte do mdulo utilizado como base para o
encoder didtico e sua ligao at a protoboard foi realizada com fios e um conector DB9. Essa
ligao esquematizada na Figura 6.20, onde A_RES significa o canal A do encoder de
referncia (canal A de maior RESoluo) e B_RES o canal B do encoder de referncia.
A alimentao do encoder didtico e do encoder de referncia, Figura 6.19 e 6.20, bem
como o envio de seus respectivos sinais A e B ao microcontrolador, foram feitas atravs de um
conector de expanso. A Figura 6.21 traz um esquema do conector de expanso, que ser
conectado placa de desenvolvimento mdulo II.

Conector de
Expanso

18

17

18
5 Vcc

17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
GND 3.3V RD7 RC5 RD6 RC4 RD5 RC3 RD4 RC2 RD3 RB0 RD2 RA2 RD1 RE2 RD0

5 Vcc

GND

CANAL
B

CANAL
A

A_RES

Mdulo II

B_RES

Protoboard

Figura 6.21 - Conector de expanso ligando a protoboard ao mdulo II.

89

Como dito anteriormente, o tratamento dos sinais provenientes do encoder didtico e do


encoder de referncia foi feito num microcontrolador, no caso, um PIC16F877A da Microchip.
Este microcontrolador est presente na placa de desenvolvimento mdulo II, disponvel no
laboratrio de mecatrnica. Os recursos do mdulo II utilizados no kit de encoder foram:
- PIC16F877A, onde foi gravado o software embarcado que trata os sinais do kit de encoder e os
sinais vindos da interface em MATLAB (porta serial do PC);
- 4 Displays de 7 segmentos, onde indicada a posio atual (em pulsos) do encoder didtico;
- 2 LEDs, onde indicado o estado atual do encoder didtico, isto , o nvel lgico momentneo
do canal A e do canal B;
- Conector de expanso contendo 15 I/Os (Figura 6.21), que serve de ligao entre os pinos do
microcontrolador presente no mdulo II e a protoboard, onde esto concentrados os sinais dos
encoders;
- Comunicao serial RS232, utilizada para enviar e receber dados entre o microcontrolador e o
PC que est rodando a interface em MATLAB de aquisio de posio ou teste de preciso;
- Entrada de gravao in-circuit, para conexo com a placa ICD2 da LabTools. O ICD2 uma
interface de gravao de programas no microcontrolador via porta USB do PC;
Algumas informaes de hardware do mdulo II (MANUAL MOSAICO, 2007) so
apresentadas a seguir:
- O microcontrolador PIC16F877A est configurado para trabalhar numa freqncia de clock de
4 MHz;
- Os quatro displays de 7 segmentos possuem os respectivos segmentos conectados entre si, ou
seja, de maneira a se fazer uma varredura de displays. A conexo com o microcontrolador segue
a Tabela 6.1. As vias de seleo de cada um dos displays seguem a Tabela 6.2.

Tabela 6.1 - Correspondncia entre os segmentos dos displays e os terminais do PIC.


PIC
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7

Segmento
A
B
C
D
E
F
G
DP

90

Tabela 6.2 - Correspondncia entre as vias de seleo dos displays e os terminais do PIC.
PIC
RB7
RB6
RB5
RB4

Display
DS1 (milhar)
DS2 (centena)
DS3 (dezena)
DS4 (unidade)

- Os dois LEDs utilizados esto ligados, respectivamente, nos terminais RB2 e RB3 do
microcontrolador;
- A placa de desenvolvimento mdulo II possui driver interno para adequar os nveis de tenso do
microcontrolador (TTL) aos padres da RS232 (+12V e 12V). A comunicao feita com 2
vias, a via de TX est ligada ao terminal RC6 e a via de RX est ligada ao terminal RC7 do
microcontrolador.
De acordo com a Figura 6.21, o conector de expanso permitiu realizar as seguintes
ligaes entre os canais dos encoders e os terminais do microcontrolador:
- Encoder didtico: Canal A (AA, no soft. emb.) => RC4
- Encoder de referncia: Canal A (A_RES) => RA2

Canal B (BB, no soft. emb.) => RC5

Canal B (B_RES) => RE2

6.3 Desenvolvimento do Software Embarcado


O software embarcado no microcontrolador foi desenvolvido em linguagem C, no ambiente
de programao IAR Embedded Workbench. O cdigo completo se encontra no Anexo IV. O
desenvolvimento partiu do pressuposto de que a resoluo do encoder didtico deveria ser
aumentada em 4 vezes, ou seja, passaria de 32 PPR para 128 PPR. O mtodo utilizado para isso
foi discutido na seo 3.1 (Resolvedores Eletrnicos), cuja representao foi mostrada na Figura
3.3, reproduzida aqui na Figura 6.22. O sistema resolvedor foi implementado via software,
tratando cada combinao dos canais A e B do encoder didtico como um estado. Assim, AB
corresponde ao estado 0, AB ao estado 1, AB ao estado 2 e AB ao estado 3. O software est
sempre fazendo a leitura dos canais A e B, determinando assim seu estado atual. Tambm est
sempre comparando o estado atual com o estado anterior para que, numa eventual mudana,
consiga identificar se necessita incrementar ou decrementar a posio. Desse modo, possvel
estabelecer o sentido de rotao do encoder didtico. A Figura 6.23 ilustra o modelo de estados
discutido at agora atravs de um diagrama SDL.

91

Figura 6.22 - Formas de onda de um sistema resolvedor sem interpolador eletrnico. A


resoluo obtida quatro vezes maior.

ESTADO 3 (AB = 11)

ESTADO 1 (AB = 01)

Leitura canais A e B

AB

canais

11

10

Considera
manuteno
do estado
(CLK := 0)

canais

01

01

00
Considera
mudana
errada de
estado
(CLK := 0,
ERR++)

Considera
diminuio
de posio
(U_D := 0,
CLK := 1)

Considera
aumento
de posio
(U_D := 1,
CLK := 1)

Considera
manuteno
do estado
(CLK := 0)

Considera
mudana
errada de
estado
(CLK := 0,
ERR++)

Considera
manuteno
do estado
(CLK := 0)

11

Considera
diminuio
de posio
(U_D := 0,
CLK := 1)

ESTADO 0 (AB = 00)

Leitura canais A e B

Leitura canais A e B

AB

canais

Considera
aumento
de posio
(U_D := 1,
CLK := 1)

Considera
aumento
de posio
(U_D := 1,
CLK := 1)

ESTADO 2

ESTADO 2 (AB = 10)

10

11

00

10

ESTADO 0

AB

Leitura canais A e B

AB

canais

01
Considera
mudana
errada de
estado
(CLK := 0,
ERR++)

01

00

Considera
diminuio
de posio
(U_D := 0,
CLK := 1)

Considera
diminuio
de posio
(U_D := 0,
CLK := 1)

10
Considera
aumento
de posio
(U_D := 1,
CLK := 1)

ESTADO 1

11
Considera
mudana
errada de
estado
(CLK := 0,
ERR++)

ESTADO 3

Figura 6.23 Diagrama SDL para o encoder didtico.

92

00
Considera
manuteno
do estado
(CLK := 0)

incio

zera sistema;
zera posio absoluta/acumulada;
zera posio atual;
l estado inicial do encoder;

verifica pedido do usurio vindo da interface;


armazena estado;
l novo estado atual;
mostra estado atual via LEDs;
trata mudanas de estado de acordo com a
Figura 6.23;

seno (CLK=0)

se houve mudana de estado (CLK=1)

se for a 1 mudana de estado


(primeiro CLK)

seno

seno (U_D=0)

ento

transmite posio 000 para a interface;

ento

se posio aumenta (U_D=1)

decrementa posio absoluta/acumulada;


checa sentido;
se positivo, decrementa posio atual;
se negativo, incrementa posio atual;

ento

incrementa posio absoluta/acumulada;


checa sentido;
se positivo, incrementa posio atual;
se negativo, decrementa posio atual;

seno

se estiver em modo teste

ento

transmite valor da contagem de pulsos do


encoder de referncia no intervalo;
zera esta contagem;

seno

se qde pulsos/CLKs for igual a qde


desejada de pulsos por valor enviado

ento

transmite posio atual para a interface;

seno

se estiver em modo teste

ento

transmite valor da contagem de pulsos do


encoder de referncia no intervalo;
zera esta contagem;

mostra posio atual nos displays de 7 segmentos, ou mostra run caso no tenha havido a 1 mudana de estado;

seno

se estiver em modo teste

ento

armazena estado do canal A do encoder de referncia;


l novo estado atual do canal A do encoder de referncia;
trata mudanas de estado do canal A do encoder de
referncia => borda descida => CLK=1 => sem resolvedor;

seno (CLK=0)

se houve mudana de est do canal A do


encoder de referncia (CLK=1)

ento

incrementa contagem de pulsos do encoder


de referncia no intervalo;

Figura 6.24 - Fluxograma simplificado de funcionamento do software embarcado.

93

A Figura 6.24 apresenta um fluxograma simplificado que resume o funcionamento do


software embarcado. O fluxograma baseado no cdigo completo que se encontra no Anexo IV.
Como dito, o programa est sempre lendo os canais A e B do encoder didtico e
identificando se houve ou no mudanas de estado. O estado atual indicado atravs dos dois
LED`s mais direita presentes no mdulo II. A cada mudana de estado do encoder didtico, o
programa identifica tambm o sentido de giro (aumentando ou diminuindo a posio) e mostra a
posio atual atravs dos quatro displays de 7 segmentos do mdulo II. O acendimento dos
displays foi feito por meio de sua multiplexao no tempo. O display mais esquerda mostra o
sinal de menos, caso a posio atual seja negativa, ou no mostra nada, caso a posio seja
positiva. Os outros trs displays mostram a posio atual, em pulsos (mudanas de estado),
partindo de 000. Lembrando que a posio 000 s mostrada a partir da deteco da primeira
mudana de estado do encoder didtico. Antes disso exibida a mensagem run.
O programa tambm est sempre verificando os pedidos do usurio, que so caracteres
recebidos no PIC pela porta serial e que so enviados a partir da interface do usurio em
MATLAB. Alguns caracteres foram escolhidos para representar cada pedido que feito na
interface. Assim, um caractere transmitido da interface para o programa com o intuito de
configurar um ou mais parmetros do programa. A funo que verifica os pedidos do usurio
mostrada a seguir:
void verif_pedido(void)
{
CHAR_RX = recebe();
switch(CHAR_RX)
{
case ('Z'): zera(); break;
case ('E'): info_err(); break;
case ('T'): zera(); EH_TESTE = 1;
case ('F'): EH_TESTE = 0; break;
case ('1'): PULS_POR_VAL_ENV = 1;
case ('2'): PULS_POR_VAL_ENV = 2;
case ('4'): PULS_POR_VAL_ENV = 4;
default: break;
}
}

le_est_atual_RES(); break;
break;
break;
break;

O caractere Z zera os parmetros do sistema. O caractere E faz com que seja enviado
pela porta serial, do PIC para a interface em MATLAB, o valor aproximado de mudanas erradas
de estado. O caractere T configura para modo de teste de preciso. O caractere F finaliza o
modo teste de preciso.

94

Os caracteres 1, 2 e 4 configuram a varivel que define quantos pulsos (mudanas de estado)


devem ocorrer para que um valor de posio atual seja enviado do PIC para a interface em
MATLAB. Quando configurada em 1, a cada pulso do encoder didtico enviada sua posio
atual para a interface em MATLAB. Esse envio da posio atual feito transmitindo-se, nesta
ordem, o caractere ASCII - se for negativa, o caractere ASCII da posio em centenas, o
caractere ASCII da posio em dezenas, o caractere ASCII da posio em unidades e o caractere
ASCII TAB como caractere terminador. A interface ser configurada para interpretar o
caractere TAB como terminador de forma que os caracteres enviados anteriormente sejam
convertidos em um nico valor numrico de posio. Quando em modo teste de preciso, alm do
programa transmitir a posio atual do encoder didtico, ele transmite o valor da contagem de
pulsos do canal A do encoder de referncia no intervalo entre duas transmisses de posio do
encoder didtico. Por exemplo, se o programa estiver configurado para transmitir a posio a
cada pulso do encoder didtico, em modo teste ser transmitido tambm o valor da contagem de
pulsos do canal A do encoder de referncia que ocorreram no intervalo entre dois pulsos
consecutivos do encoder didtico. Este o mtodo para teste de preciso que foi apresentado no
final da seo 5.2 (Testes de Encoders pticos Incrementais Rotativos). Nele, utilizado um
encoder de maior resoluo (referncia) para testar a preciso de um encoder de menor resoluo.
O mtodo consiste em verificar se a cada pulso do encoder de menor resoluo (intervalo entre
dois pulsos consecutivos) corresponde uma quantidade de pulsos constante do encoder de
referncia. A Figura 6.25 reproduz a Figura 5.15 como um exemplo do mtodo utilizado. No
exemplo, o trecho/pulso B do encoder de menor resoluo apresenta menor preciso, j que
corresponde a uma quantidade de pulsos do encoder de referncia diferente de oito.

Encoder
de menor
resoluo
Encoder de
maior
resoluo
(referncia)

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8

Figura 6.25 - Teste de preciso de um encoder de menor resoluo utilizando um encoder de


referncia.

95

No caso do encoder didtico construdo, sua resoluo final com resolvedor foi de 128
PPR. O encoder de referncia utilizado para realizar o teste de preciso possui 1024 PPR e, como
no teve sua resoluo aumentada via resolvedor, no foi necessrio utilizar o canal B. A
contagem de pulsos foi realizada somente com a leitura do canal A.
Como j adiantado, o programa tambm transmite, quando solicitado via interface em
MATLAB (caractere E), o valor aproximado de mudanas erradas de estado do encoder
didtico. Tais mudanas esto destacadas em vermelho na Figura 6.23 e normalmente no
acontecem, a menos que o encoder didtico seja girado com extrema velocidade, superando o
tempo de processamento do sistema (limitado pela transmisso serial). Foi elaborado um cdigo
para a transmisso do valor aproximado destes erros, sendo a seqncia 1 2 3 TAB
interpretada na interface como a no existncia de mudanas erradas de estado.
A inicializao do processador/microcontrolador foi realizada seguindo as informaes
presentes no datasheet do PIC16F877A (DATASHEET MICROCHIP, acesso em 2007). Convm
enfatizar a configurao da transmisso/recepo serial, j que este recurso foi bastante explorado
no projeto. O modo de transmisso utilizado foi o assncrono no formato de um start bit, oito bits
de dados e um stop bit. A taxa de transmisso/recepo foi configurada em 9600 bps, a mesma a
ser configurada na interface em MATLAB. Os registradores configurados foram o TXSTA, o
RCSTA e SPBRG, conforme mostra a Figura 6.26, modificada de (DATASHEET MICROCHIP,
acesso em 2007).
Configurao dos bits para o TXSTA:

Bit 7 => CSRC => 0 => tanto faz em modo assncrono


Bit 6 => TX9 => 0 => seleo de transmisso com oito bits de dados
Bit 5 => TXEN => 1 => habilitao de transmisso
Bit 4 => SYNC => 0 => modo assncrono
Bit 3 => Sem funo => 0
Bit 2 => BRGH => 1 => seleo de baud rate de alta velocidade (high speed)
Bit 1 => TRMT => 1 => status do shift register no esvaziamento
Bit 0 => TX9D => 0 => seria o nono bit de dado, mas est configurado para 8 bits
Logo, TXSTA = 0b.0010.0110 = 0x26.

96

Figura 6.26 - Registradores de configurao da transmisso/recepo serial. (DATASHEET


MICROCHIP, acesso em 2007).
Configurao dos bits para o RCSTA:

Bit 7 => SPEN => 1 => habilita porta serial


Bit 6 => RX9 => 0 => seleo de recepo de oito bits de dados
Bit 5 => SREN => 0 => tanto faz em modo assncrono
Bit 4 => CREN => 1 => habilita recepo contnua
Bit 3 => ADDEN => 0 => tanto faz em modo assncrono com 8 bits de dados
Bit 2 => FERR => 0 => no considera erros de quadros (framing error)
Bit 1 => OERR => 0 => no considera erros de sobreposio de dados (overrun error)
Bit 0 => RX9D => 0 => seria o nono bit de dado recebido, mas est configurado para 8 bits
Logo, RCSTA = 0b.1001.0000 = 0x90.

Configurao do registrador SPBRG:

Sabendo-se que o microcontrolador est preparado para trabalhar numa freqncia de clock
de 4 MHz, que o bit BRGH foi configurado em 1 (altas velocidades) e que a taxa desejada de
9600 bps, pelas indicaes da Figura 6.26, o valor decimal de SPBRG deve ser igual a 25.
Logo, SPBRG = 25 = 0x19.

97

6.4 Desenvolvimento da Interface com o Usurio


A interface com o usurio foi desenvolvida em MATLAB, utilizando um recurso no muito
conhecido denominado GUIDE. O GUIDE (Graphical User Interface Development Environment
- Ambiente de Desenvolvimento de Interface Grfica do Usurio) contm um conjunto de
ferramentas para criao de interfaces grficas do usurio (GUIs), sendo muito semelhante aos
ambientes visuais de programao como o Visual Basic e o Visual C++. Tais ferramentas
simplificam o processo de desenvolver e construir GUIs. Utilizando o GUIDE do MATLAB
possvel:
- Fazer o layout da GUI: Atravs do GUIDE Layout Editor, possvel fazer o layout
facilmente clicando e arrastando componentes GUI como painis, botes, textos e menus para a
rea de layout. O resultado salvo com a extenso .fig.
- Programar a GUI: O GUIDE gera automaticamente um arquivo M do MATLAB que
controla como a GUI opera. O arquivo M inicializa a GUI e contm o cdigo de funcionamento
para todas as chamadas (comandos que so executados quando o usurio clica num componente
da GUI). Utilizando o M-file Editor (editor de arquivos M) do MATLAB, possvel adicionar
cdigos nas chamadas a fim de obter as funes desejadas.
A interface com o usurio foi desenvolvida para permitir a aquisio das posies do
encoder didtico em um dado movimento e para permitir a realizao de um teste de preciso
deste encoder com ajuda de um encoder de referncia. Em ambos os casos o usurio verificaria os
resultados dos ensaios/experimentos na forma grfica, com opo de exportar os dados tabelados,
no caso, para o Excel.
Utilizando o GUIDE Layout Editor, foram criadas trs telas que compem a interface do
usurio. As mesmas podem ser vistas na Figura 6.27 (a) (c) (e) em fase de construo, e em (b)
(d) (f) em exemplos de como so utilizadas pelo usurio. Estas trs telas tm os
respectivos layouts salvos nos arquivos encoderGUI128.fig, encoderAQUIS128.fig e
encoderTESTE128.fig,

os

quais

originaram

os

arquivos

encoderGUI128.m,

encoderAQUIS128.m e encoderTESTE128.m. Os cdigos dos arquivos M se encontram,


respectivamente, nos Anexos V, VI e VII deste trabalho.

98

(a)

(b)

(c)

(d)

(e)

(f)

Figura 6.27 - Desenvolvimento da interface com o usurio - GUI. (a)(c)(e) Fase de construo.
(b)(d)(f) Exemplos de utilizao.

99

As telas associadas aos arquivos encoderAQUIS128 e encoderTESTE128, Figura 6.27


(d) e (f), servem para a visualizao e gravao dos dados obtidos. A tela principal, Figura 6.27
(b), a tela que surge com a execuo do arquivo encoderGUI128.m no prompt do MATLAB.
a partir dela que o usurio obtm os dados vindos do kit de encoder. Ela dividida em duas
partes: aquisio, do lado esquerdo, e teste de preciso, do lado direito. Em ambas o usurio pode
selecionar a quantidade de pulsos por leitura {1, 2, 4} e a quantidade de leituras desejadas {16,
32, 64, 128}. O valor definido na quantidade de pulsos por leitura o valor que ir configurar, via
porta serial, a varivel no microcontrolador PIC que define quantos pulsos (mudanas de estado)
devem ocorrer no encoder didtico para que um valor de posio atual seja enviado do PIC para a
interface em MATLAB. O valor definido na quantidade de leituras desejadas configura no
prprio cdigo em MATLAB quantos valores de posio atual, vindos pela serial, devem ser
lidos num determinado ensaio/experimento com o encoder didtico.
Feita a seleo da quantidade de pulsos por leitura e da quantidade de leituras desejadas,
calculado e mostrado o movimento total, em graus, necessrio para movimentar o encoder
didtico at que a quantidade de leituras desejadas seja atingida, ou seja, em quantos graus o
encoder didtico deve ser girado para completar determinado ensaio. Aqui foi considerada a
resoluo de 128 PPR, levando a 2,8125 por pulso.
Ainda na tela principal, Figura 6.27 (b), o usurio pode agora clicar no boto FAZER
AQUISIO ou no boto FAZER TESTE.
Caso escolha FAZER AQUISIO, ser executada uma seqncia de comandos,
resumidos a seguir e que se encontram no arquivo encoderGUI128.m (Anexo V):

Inicializa porta serial, tratada como um objeto em MATLAB


s=serial('COM1');
fclose(s);
s.BaudRate=9600;
s.DataBits=8;
s.Terminator=9;
s.Timeout=600;
fopen(s)

%9600 bps
%8 bits DEFAULT
%0x09 = caracter TAB
%600 segundos

Envia, pela serial, a quantidade de pulsos por leitura selecionada (por exemplo 1)
fprintf(s,'1')

Envia, pela serial, pedido de zeramento do sistema do encoder didtico


fprintf(s,'Z')

100

Enquanto o nmero de leituras de posio for menor que o nmero de leituras desejadas
L a posio atual via serial
POS=fscanf(s,'%d')

L a hora atual do PC e cria vetor com tempos


Cria vetor de posio atual

Envia, pela serial, pedido questionando sobre mudanas erradas de estado


fprintf(s,'E')

L, pela serial, o cdigo que indica mudanas erradas de estado


EST_ERR=fscanf(s,'%d')

Libera porta serial


fclose(s)
delete(s)
clear s

Formata o vetor de tempo


Determina o vetor de velocidades
Torna as variveis globais para poderem ser utilizadas por outros arquivos M
Chama a tela de resultados da aquisio, arquivos encoderAQUIS128, Figura 6.27 (d).

Caso o usurio tenha escolhido FAZER TESTE, tambm ser executada uma seqncia
de comandos, resumidos a seguir e que se encontram no arquivo encoderGUI128.m (Anexo V):

Inicializa porta serial, tratada como um objeto em MATLAB


s=serial('COM1');
fclose(s);
s.BaudRate=9600;
s.DataBits=8;
s.Terminator=9;
s.Timeout=600;
fopen(s)

%9600 bps
%8 bits DEFAULT
%0x09 = caracter TAB
%600 segundos

Envia, pela serial, a quantidade de pulsos por leitura selecionada (por exemplo 1)
fprintf(s,'1')

Envia, pela serial, pedido de modo teste do encoder didtico


fprintf(s,'T')

101

Enquanto o nmero de leituras de posio for menor que o nmero de leituras desejadas
L, via serial, a posio atual e a contagem de pulsos do encoder de referncia no intervalo
POS=fscanf(s,'%d')
QDE_PULSOS_INTERV=fscanf(s,'%d')

L a hora atual do PC e cria vetor com tempos


Cria vetor de posio atual e vetor de contagem de pulsos do encoder de referncia

Envia, pela serial, pedido para finalizar modo teste


fprintf(s,'F')

Envia, pela serial, pedido questionando sobre mudanas erradas de estado


fprintf(s,'E')

L, pela serial, o cdigo que indica mudanas erradas de estado


EST_ERR=fscanf(s,'%d')

Libera porta serial


fclose(s)
delete(s)
clear s

Torna as variveis globais para poderem ser utilizadas por outros arquivos M
Chama a tela de resultados do teste de preciso, arquivos encoderTESTE128, Figura 6.27 (f).

Em ambas as opes, FAZER AQUISIO ou FAZER TESTE, aps clicar no boto,


o usurio deve observar os displays de 7 segmentos do mdulo II, que devem mostrar a
mensagem run. O ensaio deve ser iniciado e, aps a leitura da quantidade desejada de leituras, a
interface abrir automaticamente a tela contendo os resultados, sejam eles de aquisio ou de
teste de preciso.
Falando sobre a tela de resultados da aquisio, Figura 6.27 (d), ela mostra dois grficos
com a opo de seleo da informao a ser plotada {Posio x Nmero da leitura, Velocidade x
Nmero da leitura, Posio x Tempo, Velocidade x Tempo}. A posio mostrada em pulsos, a
velocidade em pulsos/seg, e o tempo em segundos. A mesma tela indica a quantidade de
mudanas erradas de estado do encoder didtico que podem ter ocorrido durante o ensaio.
Normalmente esse valor sempre zero. Ela tambm permite exportar os resultados para um

102

arquivo em Excel, clicando no boto EXPORTAR P/ EXCEL. Aqui foi utilizado o comando
xlswrite do MATLAB. Os resultados so gravados no arquivo encoder_aquisicao.xls, que
criado para armazenar os dados. O cdigo do arquivo M associado com a tela de resultados da
aquisio est presente no Anexo VI.
Agora falando sobre a tela de resultados do teste de preciso, Figura 6.27 (f), ela tambm
mostra dois grficos com a opo de seleo da informao a ser plotada {Posio x Nmero da
leitura, Qde de pulsos no intervalo x Nmero da leitura}. A posio mostrada em pulsos e a
quantidade de pulsos no intervalo mostrada em pulsos do encoder de referncia. A mesma tela
indica a quantidade de mudanas erradas de estado do encoder didtico que podem ter ocorrido
durante o ensaio. Ela tambm permite exportar os resultados para um arquivo em Excel, clicando
no

boto

EXPORTAR

P/

EXCEL.

Os

resultados

so

gravados

no

arquivo

encoder_testeprecisao.xls, que criado para armazenar os dados. O cdigo do arquivo M


associado com a tela de resultados do teste de preciso est presente no Anexo VII.

103

6.5 Manual de Experimentos


O kit de encoder didtico permite realizar dois tipos de ensaio: aquisio da posio, com a
determinao da velocidade; e teste de preciso, com ajuda de um encoder comercial de maior
resoluo (encoder de referncia). A realizao destes ensaios se inicia com os procedimentos a
seguir, que so comuns para os dois tipos de ensaio.

1 - Conectar um cabo serial entre o mdulo II e o PC a ser utilizado como interface.


2 - Conectar um cabo USB entre a placa de gravao ICD2 e o PC, e conectar a placa ICD2 ao
mdulo II.

3 - Conectar o cabo de alimentao do mdulo II e ligar a fonte em uma tomada 110V.


4 - Ligar o mdulo II.
5 - Atravs do PC, gravar o programa do encoder no PIC utilizando o software MPLAB IDE. O
programa est contido nos arquivos encoder.c e encoder.h.

6 - Desligar o mdulo II.


7 - Desconectar o cabo que ligava a placa ICD2 ao mdulo II.
8 - Conectar a protoboard do kit de encoder ao mdulo II, atravs do conector de expanso. Uma
extremidade de conector j esta conectada protoboard. A outra extremidade deve ser conectada
ao mdulo II, encaixando o conector de forma que a faixa vermelha do cabo fique direita.

9 - Conectar a protoboard do kit de encoder ao encoder de referncia (1024 PPR), atravs do


conector DB9 presente em ambos.

10 - Ligar o mdulo II novamente.


11 - No PC, abrir o MATLAB e selecionar o diretrio onde esto salvos os arquivos
encoderGUI128.m, encoderGUI128.fig, encoderAQUIS128.m, encoderAQUIS128.fig,
encoderTESTE128.m e encoderTESTE128.fig.

12 - Executar o arquivo encoderGUI128.m, entrando com encoderGUI128 no prompt de


comando.

13 - Maximizar a janela, que dever aparecer como na Figura 6.28.

104

Figura 6.28 - Tela principal da interface com o usurio do kit de encoder didtico.

As prximas duas sees apresentam em detalhes cada um dos tipos possveis de ensaio.

6.5.1 Aquisio da Posio e Determinao da Velocidade


Neste tipo de ensaio, possvel verificar o funcionamento do encoder didtico de 128 PPR
atravs de seu movimento. Durante o movimento, a cada pulso (mudana de estado) do encoder
didtico, sua posio atual incrementada ou decrementada de acordo com o sentido de rotao.
A posio atual comea em 000 e indicada pelos 4 displays de 7 segmentos do mdulo II. Os 2
LEDs mais direita presentes no mdulo II indicam o estado atual do encoder didtico, ou seja,
os nveis lgicos momentneos de seus canais A e B. Ainda durante o movimento do encoder
didtico, a interface em MATLAB recebe as leituras de posio atual no tempo, gerando um
histrico de posio e velocidade do encoder didtico para o movimento em questo.
Este tipo de ensaio realizado continuando o procedimento apresentado anteriormente.

105

14 - Do lado esquerdo da tela da Figura 6.28, selecionar a quantidade de pulsos por leitura entre
1, 2 e 4. Este valor configura o kit de encoder para enviar uma leitura de posio atual a cada N
pulsos do encoder didtico, sendo N o valor selecionado.

15 - Logo abaixo, selecionar a quantidade de leituras desejadas entre 16, 32, 64 e 128. Este valor
estabelece a quantidade de leituras que o MATLAB ir receber antes de apresentar os resultados,
ou seja, a quantidade de leituras de posio atual que devero ser feitas durante o movimento do
encoder, caracterizando o ensaio.

16 - Logo abaixo, observar o valor do movimento total em graus. Este valor leva em conta os
dois valores escolhidos nos passos 14 e 15, e indica em quantos graus se deve girar fisicamente o
encoder didtico para a concluso do ensaio.

17 - Logo abaixo, clicar no boto FAZER AQUISIO. Observar a mensagem run nos
displays de 7 segmentos. Girar o encoder para qualquer um dos lados. Observar que a primeira
posio atual a ser mostrada nos displays 000. Continuar movimentando at completar o
movimento total em graus indicado no passo 16. Caso desejado, alternar o sentido de giro durante
o ensaio. Ao trmino do movimento total, o MATLAB abre automaticamente uma janela com os
resultados da aquisio. A qualquer instante, se ocorrer algum erro no MATLAB, deve-se fechlo e retomar os passos do procedimento a partir do passo 11.

18 - Conferir os resultados do ensaio. A tela de resultados da aquisio traz dois grficos com
opo de seleo da informao a ser plotada {Posio x Nmero da leitura, Velocidade x
Nmero da leitura, Posio x Tempo, Velocidade x Tempo}. A posio mostrada em pulsos, a
velocidade em pulsos/seg, e o tempo em segundos. A mesma tela indica a quantidade de
mudanas erradas de estado do encoder didtico que podem ter ocorrido durante o ensaio.
Normalmente esse valor sempre zero. Ela tambm permite exportar os resultados para um
arquivo em Excel, clicando no boto EXPORTAR P/ EXCEL. Os resultados so gravados no
arquivo encoder_aquisicao.xls, que criado no diretrio corrente para armazenar os dados.
Para retornar tela principal, clicar em FECHAR AQUISIO.

106

6.5.2 Teste de Preciso Utilizando um Encoder de Referncia


Neste tipo de ensaio, possvel verificar a preciso do encoder didtico (128 PPR) atravs
de seu movimento conjunto com o encoder de referncia (1024 PPR). Durante o movimento, a
cada pulso do encoder didtico, sua posio atual incrementada ou decrementada de acordo
com o sentido de rotao. A posio atual comea em 000 e indicada pelos 4 displays de 7
segmentos do mdulo II. Os 2 LEDs mais direita presentes no mdulo II indicam o estado
atual do encoder didtico, ou seja, os nveis lgicos momentneos de seus canais A e B. Ainda
durante o movimento do encoder didtico, a interface em MATLAB recebe as leituras de suas
posies atuais. Como o encoder de referncia tambm se move junto, a interface em MATLAB
tambm recebe leituras deste encoder simultaneamente. Neste caso, as leituras representam
quantos pulsos do encoder de referncia ocorreram no intervalo entre duas leituras do encoder
didtico. Assim, o ensaio gera um histrico de posio do encoder didtico e um histrico
mostrando a quantidade de pulsos do encoder de referncia que ocorreram em cada intervalo.
Neste ltimo histrico, se a quantidade de pulsos do encoder de referncia for igual em todos os
intervalos, pode-se dizer que o encoder didtico apresenta preciso dentro de um ngulo
equivalente a um pulso do encoder de referncia. Se houver variao na quantidade de pulsos do
encoder de referncia nos intervalos, a preciso do encoder didtico estar dentro do ngulo
equivalente a essa variao em pulsos do encoder de referncia.
Este tipo de ensaio tambm realizado continuando o procedimento apresentado no incio.

14 - Do lado direito da tela da Figura 6.28, selecionar a quantidade de pulsos por leitura entre 1, 2
e 4. Este valor configura o kit de encoder para enviar uma leitura de posio atual a cada N
pulsos do encoder didtico, sendo N o valor selecionado. Junto com cada leitura, tambm
enviada a quantidade de pulsos do encoder de referncia que ocorreram desde a leitura
imediatamente anterior.

15 - Logo abaixo, selecionar a quantidade de leituras desejadas entre 16, 32, 64 e 128. Este valor
estabelece a quantidade de leituras que o MATLAB ir receber antes de apresentar os resultados,
ou seja, a quantidade de leituras de posio atual que devero ser feitas durante o movimento do
encoder, caracterizando o ensaio.

107

16 - Logo abaixo, observar o valor do movimento total em graus. Este valor leva em conta os
dois valores escolhidos nos passos 14 e 15, e indica em quantos graus se deve girar fisicamente o
encoder didtico para a concluso do ensaio.

17 - Logo abaixo, clicar no boto FAZER TESTE. Observar a mensagem run nos displays de
7 segmentos. Girar o encoder lentamente para qualquer um dos lados e manter o mesmo sentido
durante todo o ensaio. Observar que a primeira posio atual a ser mostrada nos displays 000.
Continuar movimentando at completar o movimento total em graus indicado no passo 16. Ao
trmino do movimento total, o MATLAB abre automaticamente uma janela com os resultados do
teste de preciso. A qualquer instante, se ocorrer algum erro no MATLAB, deve-se fech-lo e
retomar os passos do procedimento a partir do passo 11.

18 - Conferir os resultados do ensaio. A tela de resultados do teste de preciso traz dois grficos
com opo de seleo da informao a ser plotada {Posio x Nmero da leitura, Qde de pulsos
no intervalo x Nmero da leitura}. A posio mostrada em pulsos e a quantidade de pulsos no
intervalo mostrada em pulsos do encoder de referncia [pulsos>RES]. A preciso do encoder
didtico verificada atravs do grfico de Qde de pulsos no intervalo x Nmero da leitura.
Quanto mais constante o grfico, maior a preciso, isto , o encoder est realmente mais
prximo de onde ele diz que est. Caso tenha sido selecionada, no passo 14, uma quantidade de
pulsos por leitura igual a 1, o mesmo grfico deve ser aproximadamente constante e centrado no
valor 8. Isso porque cada leitura feita corresponde a um nico pulso do encoder didtico (128
PPR) e porque, no intervalo entre dois pulsos seus, ocorrem 8 pulsos do encoder de referncia
(1024 PPR), j que este possui resoluo 8 vezes maior. Por conseqncia, caso a quantidade de
pulsos por leitura tenha sido selecionada em 2 ou 4, o grfico deve ser centrado, respectivamente,
em 16 ou 32 pulsos do encoder de referncia [pulsos>RES].
A mesma tela indica ainda a quantidade de mudanas erradas de estado do encoder didtico
que podem ter ocorrido durante o ensaio. Normalmente esse valor sempre zero. Ela tambm
permite exportar os resultados para um arquivo em Excel, clicando no boto EXPORTAR P/
EXCEL. Os resultados so gravados no arquivo encoder_testeprecisao.xls, que criado no
diretrio corrente para armazenar os dados. Para retornar tela principal, clicar em FECHAR
TESTE.

108

7. Resultados e Discusso
Este captulo apresenta os resultados da construo do kit de encoder didtico, bem como
os resultados de experimentos realizados com ele. Tambm traz algumas discusses acerca dos
resultados obtidos.

7.1 Construo do Kit de Encoder


O resultado obtido com o projeto e montagem da mecnica do kit (Seo 6.1) mostrado
na Figura 7.1. Nela, pode-se visualizar o encoder didtico que foi construdo e montado sobre a
base metlica do mdulo que contm um motor CC e o encoder de referncia. interessante
notar a utilizao de materiais de baixo custo, como CDs, transparncias e suportes em papelo,
que viabilizaram a execuo do projeto. O objetivo principal foi atingido, que era permitir a
captao de dois sinais defasados eletricamente em 90 com o movimento do encoder em torno
de seu eixo. Uma ressalva pode ser feita em relao ao procedimento de montagem mecnica e
ajustes. O procedimento aparenta ser trabalhoso e manual, o que pode ser justificado, em parte,
pela utilizao de materiais de baixo custo, mas no oferece grandes dificuldades se realizado
com ateno.

Figura 7.1 - Mecnica do kit de encoder didtico construdo.

109

Figura 7.2 - Eletrnica do kit de encoder didtico construdo.

O resultado obtido com o projeto e montagem da eletrnica do kit (Seo 6.2) e com o
desenvolvimento do software embarcado (Seo 6.3) ilustrado pela Figura 7.2. Nela, possvel
observar a protoboard, onde foi montado o circuito de condicionamento dos sinais vindos dos
LEDs infravermelho e dos fotodiodos presentes no encoder didtico. Pode-se ver a ligao do
encoder de referncia protoboard atravs de um conector DB9. Tambm possvel enxergar o
conector de expanso ligando a protoboard ao mdulo II. No mdulo II, est o PIC 16F877A,
onde foi gravado o software embarcado. Nota-se os quatro displays de 7 segmentos, onde
mostrada a posio atual do encoder didtico. Em baixo dos displays, esto os dois LEDs que
indicam o estado atual, e, por fim, nota-se o cabo serial, que conectado ao PC responsvel pela
interface com o usurio. Os objetivos desta etapa foram atingidos, j que toda a eletrnica
envolvida permitiu o funcionamento do kit de encoder. Por se tratar de um projeto didtico, pdese utilizar os recursos e facilidades do mdulo II. Alm do mais, o kit tambm ficou bem flexvel
quanto a mudanas, possibilitando a incluso de novos circuitos para outras aplicaes.
Uma limitao em relao ao software embarcado desenvolvido est ligada ao tempo de
transmisso de dados pela porta serial. Durante o movimento do encoder didtico, o
microcontrolador est constantemente enviando dados, via serial, para o PC que est rodando a
interface com o usurio. Esta transmisso (9600bps) lenta quando comparada com os tempos de
processamento do microcontrolador. Assim, a velocidade de giro do encoder no pode ser muito
elevada, pois poderiam haver, fisicamente, mudanas de estado do encoder, que no seriam

110

detectadas pelo microcontrolador, enquanto ainda est havendo a transmisso de dados anteriores
pela serial. Uma aplicao que no necessitasse da constante transmisso da posio do encoder
via serial no sofreria este tipo de limitao. Convm citar tambm que, dependendo da posio
de parada do encoder didtico (na transio dos sinais), pode haver a transio de estados
alternadamente entre dois estados adjacentes, causando a transmisso alternada de duas posies
adjacentes para interface. Isto s ocorre porque foi definido que uma mudana de estado no
encoder didtico o gatilho para a transmisso da posio, via serial, interface.
A Figura 7.3 traz o resultado obtido aps o desenvolvimento da interface com o usurio
(Seo 6.4) utilizando o recurso GUIDE do MATLAB. Nela, possvel visualizar um PC
executando, em MATLAB, a interface grfica do usurio (GUI) do kit de encoder. Aqui, o
objetivo tambm foi atingido, que era construir uma interface intuitiva e de fcil usabilidade,
permitindo ao usurio a realizao de ensaios e a verificao dos resultados. O fato de a interface
ter sido desenvolvida no MATLAB exigiu que a mesma fosse executada dentro dele, o que torna
o processamento um pouco mais demorado, j que o MATLAB um software pesado e com
uma infinidade de ferramentas. Este fato no influenciou na leitura dos resultados, apenas na sua
apresentao. Uma outra questo a ser levantada em relao ao desenvolvimento de uma
interface em MATLAB est ligada quantidade de arquivos. Para cada tela da interface so
necessrios dois arquivos, um arquivo .m e um arquivo .fig. Uma interface com muitas telas
e/ou recursos implicaria em um nmero exagerado de arquivos, o que no foi o caso da interface
desenvolvida para o kit de encoder. Uma soluo poderia ser o desenvolvimento da interface em
um ambiente de programao que gerasse um nico arquivo executvel (.exe), porm o mesmo
seria fechado ao usurio. Em outras palavras, uma interface em MATLAB pode ser alterada e
editada mais facilmente, j que seu desenvolvimento e execuo ocorrem no mesmo ambiente.

Figura 7.3 - GUI do kit de encoder didtico construdo.


111

7.2 Experimentos de Aquisio da Posio


Seguindo os procedimentos apresentados na seo 6.5 (Manual de Experimentos) e 6.5.1
(Aquisio da Posio e Determinao da Velocidade), foram realizados alguns ensaios com o kit
de encoder didtico.
I - Movimento do encoder no mesmo sentido e com velocidade aproximadamente constante.
Qde de pulsos por leitura: 1
Qde de leituras desejadas: 128
Movimento total: 360
Os resultados obtidos so apresentados nos itens (a) e (b) da Figura 7.4. Em (a), no grfico
de cima, pode-se ver os valores de posio do encoder lidos contra o nmero da leitura. Como a
quantidade de pulsos por leitura foi selecionada em 1 e cada pulso est relacionado com uma
posio, a inclinao da reta vale 1, ou seja, o valor do eixo Y igual ao valor do eixo X. A reta
parte de zero porque a posio inicial sempre nula. A reta estritamente crescente e positiva,
pois, durante o ensaio, o encoder foi girado no mesmo sentido (positivo). Foram obtidas 128
leituras (eixo X), conforme seleo inicial da quantidade de leituras desejadas.

(a)

(b)

Figura 7.4 - Resultados do ensaio I. (a) Posio. (b) Velocidade.

112

Ainda na Figura 7.4 (a), agora no grfico de baixo, possvel observar os valores de
posio lidos contra o tempo. Este grfico possui forma linear devido ao movimento do encoder
ter sido feito com velocidade quase constante. O ensaio durou cerca de 3,5 segundos e a
inclinao da reta pode ser estimada facilmente em aproximadamente 40 pulsos por segundo.
Este valor corresponde velocidade de giro do encoder, que foi determinada a cada duas leituras
e pode ser vista na Figura 7.4 (b). As oscilaes ocorrem devido aos pequenos intervalos de
tempo que so usados na determinao da velocidade instantnea. No canto inferior direito da
tela, foi indicado que no houve mudanas erradas de estado do encoder didtico.

II - Movimento do encoder no mesmo sentido e com velocidade crescente.


Qde de pulsos por leitura: 2
Qde de leituras desejadas: 64
Movimento total: 360
Os resultados obtidos so apresentados nos itens (a) e (b) da Figura 7.5. Em (a), no grfico
de cima, pode-se ver os valores de posio do encoder lidos contra o nmero da leitura. Como a
quantidade de pulsos por leitura foi selecionada em 2 e cada pulso est relacionado com uma
posio, a inclinao da reta vale 2, ou seja, o valor do eixo Y duas vezes o valor do eixo X. A
reta estritamente crescente e positiva, pois, durante o ensaio, o encoder foi girado no mesmo
sentido (positivo). Foram obtidas 64 leituras (eixo X), conforme seleo inicial.

(a)

(b)

Figura 7.5 - Resultados do ensaio II. (a) Posio. (b) Velocidade.

113

Na mesma Figura 7.5 (a), agora no grfico de baixo, pode-se visualizar os valores de
posio lidos contra o tempo. Este grfico possui forma exponencial devido ao movimento do
encoder ter sido feito com velocidade baixa no incio e acelerado depois, onde permaneceu em
velocidade constante. O ensaio durou pouco mais de 3 segundos e a velocidade de giro do
encoder, que foi determinada a cada duas leituras, pode ser vista na Figura 7.5 (b). Nela, nota-se
que a velocidade partiu de zero, cresceu, e permaneceu constante prxima a 80 pulsos por
segundo. No canto inferior direito da tela, tambm foi indicado que no houve mudanas erradas
de estado.

III - Movimento do encoder com inverso de sentido e com velocidade aproximadamente


constante.
Qde de pulsos por leitura: 1
Qde de leituras desejadas: 128
Movimento total: 360
Os resultados obtidos so apresentados nos itens (a) e (b) da Figura 7.6. Em (a), no grfico
de cima, pode-se ver os valores de posio do encoder lidos contra o nmero da leitura. O grfico
uma reta que cresce positivamente at a posio 74 e depois decresce. Isso ocorreu porque,
durante o ensaio, o encoder foi girado no sentido positivo at a posio 74, quando ento passou a
ser girado no sentido contrrio. Foram obtidas 128 leituras (eixo X), conforme seleo inicial.

(a)

(b)

Figura 7.6 - Resultados do ensaio III. (a) Posio. (b) Velocidade.

114

Ainda na Figura 7.6 (a), agora no grfico de baixo, possvel observar os valores de
posio lidos contra o tempo. Este grfico possui forma linear devido ao movimento do encoder
ter sido feito com velocidade quase constante. O ensaio durou cerca de 3,5 segundos e as
inclinaes da reta podem ser estimadas entre 30 e 40 pulsos por segundo. Estes valores
correspondem velocidade de giro do encoder, que foi determinada a cada duas leituras e pode
ser vista na Figura 7.6 (b). Nela, nota-se que a velocidade partiu de zero, cresceu, permaneceu
entre 30 e 40 pulsos por segundo, passou por zero no instante da inverso de sentido, cresceu
negativamente, e permaneceu entre 30 e 40 pulsos por segundo (sentido contrrio). No canto
inferior direito da tela, tambm foi indicado que no houve mudanas erradas de estado.

7.3 Experimentos de Teste de Preciso


Seguindo os procedimentos apresentados na seo 6.5 (Manual de Experimentos) e 6.5.2
(Teste de Preciso Utilizando um Encoder de Referncia), foram realizados alguns ensaios com o
kit de encoder didtico.
IV - Movimento do encoder no mesmo sentido e com baixa velocidade
Qde de pulsos por leitura: 1
Qde de leituras desejadas: 16
Movimento total: 45

(b)

(a)

Figura 7.7 - Resultados do ensaio IV. (a) Grficos. (b) Dados exportados para o excel.

115

Os resultados obtidos so apresentados nos itens (a) e (b) da Figura 7.7. Em (a), no grfico
de cima, pode-se ver os valores de posio do encoder didtico lidos contra o nmero da leitura.
Como a quantidade de pulsos por leitura foi selecionada em 1 e cada pulso est relacionado com
uma posio, a inclinao da reta vale 1, ou seja, o valor do eixo Y igual ao valor do eixo X. A
reta parte de zero porque a posio inicial sempre nula. A reta estritamente crescente e
positiva, pois, durante o ensaio, o encoder foi girado no mesmo sentido (positivo). Foram obtidas
16 leituras (eixo X), conforme seleo inicial da quantidade de leituras desejadas,
correspondendo a um movimento de 45, tanto do encoder didtico (128 PPR), quanto do encoder
de referncia (1024 PPR).
Continuando na Figura 7.7 (a), agora no grfico de baixo, pode-se observar a quantidade de
pulsos do encoder de referncia [pulsos>RES] que ocorreram entre cada leitura de posio do
encoder didtico (intervalo entre duas leituras consecutivas). Como esperado, o grfico se
apresentou aproximadamente constante e centrado em 8, j que a quantidade de pulsos por leitura
foi selecionada em 1 e a resoluo do encoder de referncia 8 vezes maior do que a resoluo
do encoder didtico. A quantidade de pulsos no intervalo relacionada leitura 0 deve ser
ignorada, j que no existe ainda nenhuma leitura de posio feita, logo no possvel
caracterizar um intervalo. Sendo assim, e com ajuda dos dados exportados para Excel, Figura 7.7
(b), a mdia dos valores da quantidade de pulsos no intervalo ficou em 7,9 [pulsos>RES], muito
prximo do valor 8 esperado. Analisando melhor os dados, pode-se verificar que, no trecho de
45 ensaiado, a quantidade de pulsos no intervalo esteve entre 4 e 12 [pulsos>RES], portanto 8
4 [pulsos>RES]. Sabendo que 1 [pulso>RES] corresponde a 0,3516 (360 / 1024PPR), pode-se
tirar que a resoluo do encoder didtico 8 * 0,3516 = 2,8125 como esperado (360 / 128PPR
= 2,8125), e que sua preciso de, no mnimo, 4 * 0,3516 1,4. No canto inferior direito
da tela, tambm foi indicado que no houve mudanas erradas de estado.

V - Movimento do encoder no mesmo sentido (negativo) e com baixa velocidade


Qde de pulsos por leitura: 1
Qde de leituras desejadas: 128
Movimento total: 360
O resultado obtido mostrado na Figura 7.8.

116

Figura 7.8 - Resultados do ensaio V.

O grfico de cima da Figura 7.8 decrescente, mostrando que o encoder didtico foi girado
no sentido negativo. Considerando o grfico de baixo, a anlise dos resultados neste caso
anloga ao ensaio anterior. A nica diferena que o nmero de leituras realizadas foi de 128,
correspondendo a uma revoluo completa do encoder.

VI - Movimento do encoder no mesmo sentido e com baixa velocidade


Qde de pulsos por leitura: 2
Qde de leituras desejadas: 64
Movimento total: 360
O resultado obtido neste ensaio mostrado na Figura 7.9. Como a quantidade de pulsos por
leitura foi selecionada em 2, o intervalo entre duas leituras consecutivas conteve 2 pulsos do
encoder didtico. Como teoricamente cada pulso do encoder didtico est relacionado com 8
pulsos do encoder de referncia, os intervalos deveriam apresentar 16 [pulsos>RES]. O grfico de
baixo da Figura 7.9 mostra que as quantidades de pulsos>RES nos intervalos ficaram centrados
em 16, como esperado.

117

Figura 7.9 - Resultados do ensaio VI.


VII - Movimento do encoder no mesmo sentido e com baixa velocidade
Qde de pulsos por leitura: 4
Qde de leituras desejadas: 32
Movimento total: 360
O resultado obtido neste ensaio mostrado na Figura 7.10. Novamente, como a quantidade
de pulsos por leitura foi selecionada em 4, o intervalo entre duas leituras consecutivas conteve 4
pulsos do encoder didtico. Como teoricamente cada pulso do encoder didtico est relacionado
com 8 pulsos do encoder de referncia, os intervalos deveriam apresentar 32 [pulsos>RES]. O
grfico de baixo da Figura 7.10 mostra que as quantidades de pulsos>RES nos intervalos
ficaram centrados em 32, como esperado.

Figura 7.10 - Resultados do ensaio VII.

118

8. Concluses e Sugestes para Prximos Trabalhos


Foi realizado um estudo inicial sobre encoders pticos baseados no efeito moir,
apresentando os princpios de funcionamento, discutindo sistemas para aumentar a resoluo
(sistemas resolvedores), mostrando as tcnicas de fabricao de discos e abordando questes
relacionadas a erros e testes de encoders.
Em seguida, foi desenvolvido um kit de encoder composto por um encoder didtico de
baixo custo (128 PPR), um encoder de referncia (1024 PPR), uma interface eletrnica com
microcontrolador e uma interface grfica do usurio em MATLAB. O encoder didtico, de custo
estimado em 30 reais, foi desenvolvido utilizando o efeito moir para gerar a defasagem de 90
eltricos entre seus canais A e B. Para isso, foram utilizados dois discos, um mvel com 32 pares
de setores translcido-opaco e outro esttico com 33 pares. A diferena de 1 par de setores
translcido-opaco permitiu a obteno da defasagem de 90 eltricos por meio do posicionamento
de dispositivos de leitura a 90 angulares. A resoluo do encoder obtida fisicamente (32 PPR) foi
ampliada (128 PPR) com a utilizao de um resolvedor eletrnico via software, implementado
em um microcontrolador. O microcontrolador tambm foi utilizado para a transmisso de dados,
via serial, a um PC executando a interface grfica do usurio (GUI). A GUI criada em MATLAB
permitiu caracterizar o funcionamento do encoder didtico atravs de dois tipos de experimentos:
aquisio da posio e teste de preciso.
Nos experimentos de aquisio da posio, o encoder didtico foi movimentado nos dois
sentidos e com velocidades diferentes, fazendo com que os dados de posio fossem lidos e
armazenados em MATLAB, onde foram determinadas as velocidades. Cada experimento teve os
resultados apresentados na forma grfica, refletindo, coerentemente, o movimento fsico imposto
ao encoder didtico.
Nos experimentos de teste de preciso, o encoder didtico foi movimentado juntamente
com um encoder de referncia. Alm das leituras da posio do encoder didtico, o MATLAB
recebeu as quantidades de pulsos do encoder de referncia que ocorreram entre cada duas leituras
do encoder didtico. Os resultados dos experimentos tambm foram apresentados graficamente,
onde foi possvel inferir a respeito da preciso do encoder didtico, que ficou em 1,4 , metade
de sua resoluo (360 / 128PPR = 2,8).

119

Considerando trabalhos futuros, poderiam ser construdos outros tipos de encoders


didticos com a utilizao do efeito moir em suas diferentes variaes, seja utilizando mscaras
ou modificando a disposio fsica de fotosensores para se obter sinais defasados em 90 eltricos
sem a necessidade de um disco extra. Poderiam ser introduzidos mais fotosensores, por exemplo,
para utilizar o efeito mdio do sinal e minimizar a influncia de erros mecnicos; e para servir
como leitor da posio zero, com a alterao do padro incremental do reticulado para isso.
Poderiam ser construdos encoders pticos lineares, novamente com suas diferentes variaes.
Outra sugesto seria a construo de um encoder ptico absoluto, cujo padro do disco bem
interessante, embora no utilize o efeito moir. Neste caso, seria possvel o estudo do cdigo de
Gray.
Tambm poderiam ser construdos encoders com diferentes resolues, atravs do aumento
ou diminuio do nmero de setores dos discos. Aumentos na resoluo poderiam ser obtidos
tambm com a implementao e utilizao de resolvedores eletrnicos (rede de resistores e CIs
comerciais) e de resolvedores pticos (dispositivos de leitura em diferentes angulaes).
Pode ser considerada como uma sugesto de melhoria a confeco de um circuito impresso
em substituio protoboard e ao mdulo II utilizados na interface eletrnica do projeto. O uso
de lgica programvel tambm poderia ser explorada no futuro.
Uma outra sugesto para trabalhos futuros seria a utilizao do encoder didtico em uma
aplicao, onde seria possvel realizar o controle digital do motor CC a ele acoplado. Tambm
seria interessante realizar a superviso/monitoramento da posio em tempo real, ou seja,
utilizando ferramentas como o LabView ou o prprio simulink do MATLAB.

120

Referncias Bibliogrficas
Amidror, Isaac. The Theory of the Moir Phenomenon. Boston: Kluwer Academic Publishers,
2000, 474p.

Catlogo

Heidenhain.

Rotary

Encoders

Catalog.

Disponvel

em:

<http://

www.heidenhain.com/?/c:2243;177,Documentation+Portal:846/c:2238;177,Services+and+
Documentation:2243/c:846;177,Brochures%2FCD-ROM%2FDVD:813.html> => 349_529
_26_15078.pdf. Acesso em: 13 mar. 2007.

Catlogo Renishaw. Non-contact Encoder Systems Brochure. Disponvel em: <http://www.


renishaw.com/UserFiles/acrobat/UKEnglish/L-9517-0165.pdf>. Acesso em: 13 mar. 2007.

Catlogo Turck. Linear and Rotary Position Products. Disponvel em: <http://www.turckusa.com/Literature/B1025_Linear_Rotary_Position.pdf>. Acesso em: 13 mar. 2007.

Creath, K., Wyant, J. C. Moir and Fringe Projection Techniques. In: Malacara, D. Optical Shop
Testing. 2.ed. New York: John Wiley & Sons, Inc., 1992, pp.653-675.

Datasheet Microchip. PIC16F87XA. Disponvel em: <http://ww1.microchip.com/downloads/en/


DeviceDoc/39582b.pdf>. Acesso em: 10 abril 2007.

Datasheet RLS - Interpolador RLXA2510. Interpolation factors 1, 2, 5, or 10. Disponvel em:


<http://www.rls.si/default.asp?prod=interpolators/RLXA2510dr.pdf>. Acesso em: 13 mar.
2007.

Datasheet RLS - Interpolador RLX40i. Interpolation factors 1, 2, 3, 4, 5, 8, or 10. Disponvel em:


<http://www.rls.si/default.asp?prod=interpolators/RLX40iD01.pdf>. Acesso em: 13 mar.
2007.

121

Datasheet RLS - Interpolador RLX100. Interpolation factors 5, 10, or 25. Disponvel em:
<http://www.rls.si/default.asp?prod=interpolators/RLX100.pdf>. Acesso em: 13 mar. 2007.

De Sa, A. Principles of Electronic Instrumentation. 2.ed. London: Edward Arnold, 1990, pp.197198.

Ellin, A. The Accuracy of Angle Encoders. Disponvel em: <http://www.renishaw.com/


UserFiles/acrobat/UKEnglish/EPD-TI-0001.pdf>. Acesso em: 13 mar. 2007.

Elliott, David J. Integrated Circuit Mask Technology. New York: McGraw-Hill, Inc., 1985, 287p.

Gordon, Gerald S. Lets Talk Accuracy. Disponvel em: <http://www.gpi-encoders.com/


Lets_Talk_Accuracy.pdf>. Acesso em: 13 mar. 2007.

Hecht, E. ptica. 2.ed. Lisboa: Fundao Calouste Gulbenkian, 2002, pp.338-343.

Hoeschele, David F. Analog-to-Digital/Digital-to-Analog Conversion Techniques. New York:


John Wiley & Sons, Inc., 1968, pp.326-354.

Madou, Marc J. Fundamentals of Microfabrication. Boca Raton: CRC Press, 1997, pp.1-44.

Manual Mosaico. Guia do usurio - placa de desenvolvimento - mdulo II. 2007, 23p.

Matsuzoe, Y., Tsuji, N. Breadboard system and techniques to optimize the optical system of an
encoder. Optical Engineering, v.40, (2), pp.283-288, 2001.

Palls-Areny, R., Webster, J. G. Sensors and Signal Conditioning. New York: John Wiley &
Sons, Inc., 1991, pp.1-4, 300-309.

Patel, B., Sutton, A., George, L. Liftoff Process Using Positive Photoresist. Disponvel em:
<http://cmos.mirc.gatech.edu/group/projects/liftoff.pdf>. Acesso em: 08 maio 2007.

122

Post, D., Han, B., Ifju, P. High Sensitivity Moir Experimental Analysis for Mechanics and
Materials. New York: Springer-Verlag, Inc., 1994, 444p.

Schmitt Trigger. The Schmitt Trigger. Disponvel em: <http://hyperphysics.phy-astr.gsu.edu/


hbase/electronic/schmitt.html >. Acesso em: 10 abril 2007.

Woolvet, G. A. Transducers in Digital Systems. London: Peter Peregrinus Ltd., 1977, 193p.

123

Anexo I
% Programa que ilustra o fenomeno do batimento utilizando duas ondas
clear all; close all; clc;
%t=0:0.001:1; % cria um vetor de tempo (desconsiderado)
t=0;

% define um instante de tempo qualquer

x=0:0.001:1;

% cria um vetor de posicao

%x=0;

% define uma posicao qualquer (desconsiderado)

A=1;

% define a amplitude das ondas

k1=2*pi*24; % frequencia espacial da onda 1 (2*pi*f)


k2=2*pi*20; % frequencia espacial da onda 2 (2*pi*f)
w1=1;

% frequencia temporal da onda 1 (2*pi*f)

w2=1;

% frequencia temporal da onda 2 (2*pi*f)

y1=A*cos(k1*x-w1*t); % equacao da onda 1


y2=A*cos(k2*x-w2*t); % equacao da onda 2
y=y1+y2;

% equacao resultante da sobreposicao

figure(1)

% gera o grafico da onda 1

plot(x,y1,'b')
legend('y1')
axis([0 1 -4 4])

figure(2)

% gera o grafico da onda 2

plot(x,y2,'k')
legend('y2')
axis([0 1 -4 4])

figure(3)

% gera o grafico da onda resultante

plot(x,y,'r')
legend('y=y1+y2')
axis([0 1 -4 4])

figure(4)

% gera o grafico das ondas juntas

plot(x,y1,'b',x,y2,'k',x,y,'r')
legend('y1','y2','y=y1+y2')
axis([0 1 -4 4])

124

Anexo II
% Programa que ilustra o fenomeno do batimento utilizando duas grades de linhas retas
clear all; close all; clc;
n1=352;

% define o numero de linhas da grade 1

n2=350;

% define o numero de linhas da grade 2

x1=linspace(0,1, n1); % cria n1 pontos (linearmente espaados) entre 0 e 1


x2=linspace(0,1, n2); % cria n2 pontos (linearmente espaados) entre 0 e 1

for i=1:n1 % cria n1 linhas retas verticais de amplitude 1


X1(i)=1;
end
for i=1:n2 % cria n2 linhas retas verticais de amplitude 1
X2(i)=1;
end

figure(1)

% gera o grafico da sobreposicao das grades

[AX,H1,H2]=plotyy(x1,X1,x2,X2,'stem','stem')
set(H1,'Color','k','Marker','none')
set(H2,'Color','k','Marker','none')
set(AX(1),'yColor','k')
set(AX(2),'yColor','k')

Anexo III
% Programa que auxilia na criao de uma grade circular de linhas radiais
clear all; close all; clc;
Nlinhas=100;
% define o numero de linhas radiais da grade
Ntotal=2*Nlinhas;
% define o numero de linhas+espaamentos
for i=1:Ntotal
x(i)=1;
end
f=figure(1);
h=pie(x);
set(f,'Color','w')

% define a distribuicao de linhas/espaamentos

% cria a grade circular de linhas radiais


% formata as propriedades de cor

for i=1:4:(2*Ntotal)
% formata as propriedades de cor
set(h(i),'FaceColor','k')
set(h(i+1),'Color','w')
end
for i=3:4:(2*Ntotal)
% formata as propriedades de cor
set(h(i),'FaceColor','w')
set(h(i+1),'Color','w')
end
zoom(1.5)
% aumenta a figura da grade

125

Anexo IV
/*
Universidade Estadual de Campinas
Faculdade de Engenharia Mecnica
Curso de Engenharia de Controle e Automao
TG II - Encoder ptico
2o Semestre de 2007
Professor Orientador: Luiz Otvio Saraiva Ferreira
Aluno: Victor Adriano Turchetti RA: 025366
Arquivo: Encoder.h
Autor: Victor A. Turchetti
Data: 14/11/2007
Verso: 1.0
*/

//*****************************************************************************
/* Funo que transmite caractere pela serial */
/* O argumento de entrada o caractere a ser transmitido */
/* No tem argumento de saida */
//----------------------------------------------------------------------------void transmite(char DADO_TX)
{
while (TXFLAG == 0)
{
};
TXREG = DADO_TX;
}
//*****************************************************************************
/* Funo que recebe caractere pela serial */
/* No tem argumento de entrada, e o argumento de saida caractere ASCII */
/* recebido ou o nmero 0 em caso de nenhum caractere recebido */
//----------------------------------------------------------------------------char recebe(void)
{
if (RXFLAG == 0)
{ return 0;
}
else
{ return RCREG;
}
}
//*****************************************************************************
/* Funo que l estado atual do encoder */
//----------------------------------------------------------------------------void le_est_atual(void)
{
if(AA)
{ if(BB)
{ EST_ATUAL = 3; // Estado atual = 3 => AA=1 e BB=1
}
else
{ EST_ATUAL = 2; // Estado atual = 2 => AA=1 e BB=0
}
}
else
{ if(BB)
{ EST_ATUAL = 1; // Estado atual = 1 => AA=0 e BB=1
}
else
{ EST_ATUAL = 0; // Estado atual = 0 => AA=0 e BB=0
}
}
}
//*****************************************************************************
/* Funo que l estado do canal A do encoder de referncia, quando em modo teste */
//----------------------------------------------------------------------------void le_est_atual_RES(void)
{
if(A_RES)
{ EST_ATUAL_RES = 1; // Canal A em nvel alto, A_RES=1
}
else
{ EST_ATUAL_RES = 0; // Canal A em nvel baixo, A_RES=0
}
}
//*****************************************************************************
/* Funo que incrementa a posio do encoder em mdulo */
//----------------------------------------------------------------------------void incrementa(void)
{
POS_UNID = POS_UNID + 1;
if(POS_UNID == 10)
{ POS_UNID = 0;
POS_DEZ = POS_DEZ + 1;
if(POS_DEZ == 10)
{ POS_DEZ = 0; POS_CEN = POS_CEN + 1;

126

if(POS_CEN == 10)
{ POS_CEN = 0; POS_ACUM = 0; // Posio zerada ao passar de 999 em mdulo
}
}
}
}
//*****************************************************************************
/* Funo que decrementa a posio do encoder em mdulo */
//----------------------------------------------------------------------------void decrementa(void)
{
POS_UNID = POS_UNID - 1;
if(POS_UNID == 255)
{ POS_UNID = 9;
POS_DEZ = POS_DEZ - 1;
if(POS_DEZ == 255)
{ POS_DEZ = 9; POS_CEN = POS_CEN - 1;
if(POS_CEN == 255)
{ POS_CEN = 9;
}
}
}
}
//*****************************************************************************
/* Funo que "zera" o sistema */
//----------------------------------------------------------------------------void zera(void)
{
POS_ACUM = 0;
POS_CEN = 0;
POS_DEZ = 0;
POS_UNID = 0;
EH_POSITIVO = 1; EH_PRIM_CLK = 1;
QDE_EST_ERR = 0; INTERV_UNID = 0;
INTERV_DEZ = 0;
EH_TESTE = 0;
CONTA_PULSOS = 0;
}
//*****************************************************************************
/* Funo que informa a quantidade aproximada de mudanas de estado erradas do encoder */
//----------------------------------------------------------------------------void info_err(void)
{
if(QDE_EST_ERR != 0)
{ if(QDE_EST_ERR < 5)
{ transmite('5'); transmite('5'); // 55 <=> ocorreram menos de 5 mudanas erradas
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
}
else
{ if(QDE_EST_ERR < 10)
{ transmite('1'); transmite('1'); transmite('1'); // 111 <=> ocorreram menos de 10 mudanas erradas
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
}
else
{ if(QDE_EST_ERR < 20)
{ transmite('2'); transmite('2'); transmite('2'); // 222 <=> ocorreram menos de 20 mudanas erradas
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
}
else
{ transmite('9'); transmite('9'); transmite('9'); // 999 <=> ocorreram 20 ou mais mudanas erradas
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
}
}
}
}
else
{ transmite('1'); transmite('2'); transmite('3'); // 123 <=> NO ocorreram mudanas erradas de estado
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
}
}
//*****************************************************************************
/* Funo que verifica o pedido solicitado pelo usurio via interface em MATLAB */
//----------------------------------------------------------------------------void verif_pedido(void)
{
CHAR_RX = recebe();
switch(CHAR_RX)
{
case ('Z'): zera(); break;
case ('E'): info_err(); break;
case ('T'): zera(); EH_TESTE = 1; le_est_atual_RES(); break; // Inicia modo teste e j deixa zerado
case ('F'): EH_TESTE = 0; break;
// Termina modo teste
case ('1'): PULS_POR_VAL_ENV = 1; break;
case ('2'): PULS_POR_VAL_ENV = 2; break;
case ('4'): PULS_POR_VAL_ENV = 4; break;
default: break;
}
}
//*****************************************************************************
/* Funo que trata as mudanas de estado */
//----------------------------------------------------------------------------void trata_mud_est(void)
{
switch(EST_ATUAL)
{
case (0): switch(EST_ANTES)
{

127

case (2): U_D = 0; CLK = 1; break; // Diminui


case (1): U_D = 1; CLK = 1; break; // Aumenta
case (0): CLK = 0; break;
// Manteve
default: CLK = 0; QDE_EST_ERR = QDE_EST_ERR +

posio (U_D = 0)
posio (U_D = 1)
o estado
1; break;

}
break;
case (1): switch(EST_ANTES)
{
case (3): U_D = 1; CLK = 1; break; // Aumenta
case (0): U_D = 0; CLK = 1; break; // Diminui
case (1): CLK = 0; break;
// Manteve
default: CLK = 0; QDE_EST_ERR = QDE_EST_ERR +
}
break;

posio (U_D = 1)
posio (U_D = 0)
o estado
1; break;

case (2): switch(EST_ANTES)


{
case (0): U_D = 1; CLK = 1; break; // Aumenta
case (3): U_D = 0; CLK = 1; break; // Diminui
case (2): CLK = 0; break;
// Manteve
default: CLK = 0; QDE_EST_ERR = QDE_EST_ERR +
}
break;

posio (U_D = 1)
posio (U_D = 0)
o estado
1; break;

case (3): switch(EST_ANTES)


{
case (1): U_D = 0; CLK = 1; break; // Diminui
case (2): U_D = 1; CLK = 1; break; // Aumenta
case (3): CLK = 0; break;
// Manteve
default: CLK = 0; QDE_EST_ERR = QDE_EST_ERR +
}
break;

posio (U_D = 0)
posio (U_D = 1)
o estado
1; break;

default: break;
}//fim switch
}
//*****************************************************************************
/* Funo que trata as mudanas de estado do canal A do encoder de referncia */
//----------------------------------------------------------------------------void trata_mud_est_RES(void)
{
switch(EST_ATUAL_RES)
{
case (0): switch(EST_ANTES_RES)
{
case (1): CLK = 1; break; // D o clk, borda de descida
default: CLK = 0; break;
}
break;
default: CLK = 0; break;
}//fim switch
}
//*****************************************************************************
/* Funo que trata do acendimento dos displays de 7 segmentos */
//----------------------------------------------------------------------------void trata_display7seg(void)
{
switch(EH_VEZ)
{
case (0): if(EH_POSITIVO == 0)
// Indica que a posio negativa
{ PORTD = TABELA_7SEG[16];
// Prepara sinal de menos '-' no display7seg
}
else
{ PORTD = 0;
// No acender nada no de display7seg
}
RB7 = 1;
// Acende o sinal de menos '-', ou nada, no display7seg
CONTADOR_SINAL = CONTADOR_SINAL + 1;
if(CONTADOR_SINAL >= 3)
{ CONTADOR_SINAL = 0;
EH_VEZ = 1;
// vez de acender a centena
RB7 = 0;
// Apaga o sinal de menos '-', ou nada, no display7seg
}
break;
case (1): if(EH_PRIM_CLK == 1)
{ PORTD = TABELA_7SEG[17];
}
else
{ PORTD = TABELA_7SEG[POS_CEN];
}

// Prepara letra

'r' no display7seg

// Prepara centena no display7seg

RB6 = 1;
// Acende a centena no display7seg
CONTADOR_CEN = CONTADOR_CEN + 1;
if(CONTADOR_CEN >= 3)
{ CONTADOR_CEN = 0;
EH_VEZ = 2;
// vez de acender a dezena
RB6 = 0;
// Apaga a centena no display7seg
}
break;

128

case (2): if(EH_PRIM_CLK == 1)


{ PORTD = TABELA_7SEG[18];
}
else
{ PORTD = TABELA_7SEG[POS_DEZ];
}

// Prepara letra

'u' no display7seg

// Prepara dezena no display7seg

RB5 = 1;
// Acende a dezena no display7seg
CONTADOR_DEZ = CONTADOR_DEZ + 1;
if(CONTADOR_DEZ >= 3)
{ CONTADOR_DEZ = 0;
EH_VEZ = 3;
// vez de acender a unidade
RB5 = 0;
// Apaga a dezena no display7seg
}
break;
case (3): if(EH_PRIM_CLK == 1)
{ PORTD = TABELA_7SEG[19];
// Prepara letra 'n' no display7seg
}
else
{ PORTD = TABELA_7SEG[POS_UNID]; // Prepara unidade no display7seg
}
RB4 = 1;
// Acende a unidade no display7seg
CONTADOR_UNID = CONTADOR_UNID + 1;
if(CONTADOR_UNID >= 3)
{ CONTADOR_UNID = 0;
EH_VEZ = 0;
// vez de acender o sinal de menos
RB4 = 0;
// Apaga a unidade no display7seg
}
break;
default: break;
}//fim switch
}

/*
Universidade Estadual de Campinas
Faculdade de Engenharia Mecnica
Curso de Engenharia de Controle e Automao
TG II - Encoder ptico
2o Semestre de 2007
Professor Orientador: Luiz Otvio Saraiva Ferreira
Aluno: Victor Adriano Turchetti RA: 025366
Arquivo: Encoder.c
Autor: Victor A. Turchetti
Data: 14/11/2007
Verso: 1.0
*/
/*
O encoder didtico ser chamado aqui somente de encoder.
O encoder comercial de 1024 PPR ser chamado aqui de encoder de referncia.
*/
#include <io16f877a.h> // Definio dos registradores do PIC16F877a
#include <stdlib.h>
// Definio das funes padro do ANSI C
#include <inpic.h>
// Definio das funes intrnsecas do compilador
// Atribui nomes aos flags de controle da transmisso/recepo pela porta serial
#define TXFLAG TXIF
// Flag de esvaziamento de TXREG
#define RXFLAG RCIF
// Flag de chegada de byte pela serial
// Definio das entradas mapeadas no conector de expanso do kit MODULO II da MOSAICO
#define AA RC4
// Canal A do encoder, Pino 12 do conector de expanso
#define BB RC5
// Canal B do encoder, Pino 14 do conector de expanso
#define A_RES RA2
#define B_RES RE2

// Canal A do encoder de resoluo maior, Pino 4 do conector de expanso


// Canal B do encoder de resoluo maior, Pino 2 do conector de expanso, NO UTILIZADO

char EST_ANTES, EST_ATUAL;


char U_D, CLK;
char EH_POSITIVO = 1;
unsigned int POS_ACUM = 0;
char POS_CEN = 0;
char POS_DEZ = 0;
char POS_UNID = 0;
char EH_PRIM_CLK = 1;
char CHAR_RX;
char EH_VEZ = 0;
char CONTADOR_SINAL = 0;
char CONTADOR_CEN = 0;
char CONTADOR_DEZ = 0;
char CONTADOR_UNID = 0;
char QDE_EST_ERR = 0;

//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

Variveis de estado
Variveis de controle de contagem
Contagem comea zerada, portanto no tem sinal negativo
Contagem da posio acumulada do encoder em pulsos, 16 bits (0-65.535)
Contagem da posio do encoder em centenas de pulsos
Contagem da posio do encoder em dezenas de pulsos
Contagem da posio do encoder em unidades de pulsos
Varivel utilizada para que aps o 1.o clock a posio assuma zero
Varivel utilizada na recepo serial dos pedidos do usurio
Varivel utilizada para multiplexar o acendimento dos displays7seg
Controla tempo de acendimento do display7seg que representa o "-"
Controla tempo de acendimento do display7seg que representa a centena
Controla tempo de acendimento do display7seg que representa a dezena
Controla tempo de acendimento do display7seg que representa a unidade
Qde de mudanas de estado erradas do encoder

129

char
char
char
char

EH_TESTE = 0;
// Modo teste quando EH_TESTE = 1 a pedido do usurio via serial
EST_ANTES_RES, EST_ATUAL_RES; // Variveis de estado do canal A do encoder de referncia (A_RES)
INTERV_UNID = 0;
// Qde de pulsos gerados pelo encoder de referncia no intervalo
INTERV_DEZ = 0;
// entre dois valores enviados do encoder sob teste

char CONTA_PULSOS = 0;
// Faz o controle de pulsos desejados por valor enviado pela serial
char PULS_POR_VAL_ENV = 1; // Qde de pulsos desejados por valor enviado pela serial. Pode ser escolhido pelo usurio
//*****************************************************************************
/* TABELA PARA OS DISPLAYS DE 7 SEGMENTOS */
//----------------------------------------------------------------------------const char TABELA_7SEG[21]= {
0x3F,
// 0h - 0
0x06,
// 1h - 1
0x5B,
// 2h - 2
0x4F,
// 3h - 3
0x66,
// 4h - 4
0x6D,
// 5h - 5
0x7D,
// 6h - 6
0x07,
// 7h - 7
0x7F,
// 8h - 8
0x6F,
// 9h - 9
0x77,
// Ah - A
0x7C,
// Bh - b
0x39,
// Ch - C
0x5E,
// Dh - d
0x79,
// Eh - E
0x71,
// Fh - F
0x40,
// Sinal de menos '-' // chamada: PORTD = TABELA_7SEG[16]
0x50,
// Letra 'r' // chamada: PORTD = TABELA_7SEG[17]
0x1C,
// Letra 'u' // chamada: PORTD = TABELA_7SEG[18]
0x54
// Letra 'n' // chamada: PORTD = TABELA_7SEG[19]
};
#include "Encoder.h"

// Definio das funes utilizadas no programa

//*****************************************************************************
//
Funo Principal
//----------------------------------------------------------------------------void main(void)
{
// A diretiva da linha abaixo define os bits de configurao do processador. No caso abaixo a depurao
// com o ICD2BR est habilitada. Para desabilit-la, troque DEBUG_ON por DEBUG_OFF.
//__set_configuration_word(CP_OFF&CPD_OFF&DEBUG_ON&LVP_OFF&WRT_ENABLE_OFF&BODEN_OFF&PWRTE_ON&WDT_OFF&XT_OSC);
// A opo WRT_ENABLE_OFF no compatvel com 16F877a
__set_configuration_word(CP_OFF&CPD_OFF&DEBUG_ON&LVP_OFF&BODEN_OFF&PWRTE_ON&WDT_OFF&XT_OSC);
/* INICIALIZAO DO PROCESSADOR - INCIO */
ADCON1 = 0x07; // 0b.0000.0111 ,
PORTC = 0x00; // Zeramento para
TRISC = 0xB0; // 0b.1011.0000 ,
//
//
//
//
//
//
//

sem entradas analgicas


evitar rudos
RC0 = sada digital
RC1 = sada digital
RC2 = sada digital
RC3 = sada digital
RC4 = entrada digital, canal A do encoder
RC5 = entrada digital, canal B do encoder
RC6 = sada TX da porta serial
RC7 = entrada RX da porta serial

PORTB = 0x00;
TRISB = 0x03;

// Zeramento para
// 0b.0000.0011 ,
//
//
//
//
//
//
//

evitar rudos
RB0 = entrada digital
RB1 = entrada digital
RB2 = sada digital, LED L3
RB3 = sada digital, LED L4
RB4 = sada digital, seleciona
RB5 = sada digital, seleciona
RB6 = sada digital, seleciona
RB7 = sada digital, seleciona

//
//
//
//
//
//

evitar rudos
entradas kit mosaico, e RA2 = entrada digital sinal A_RES
evitar rudos
RD7..RD0 sadas p/ segmentos do display7seg
evitar rudos
RE2 = entrada digital sinal B_RES

PORTA
TRISA
PORTD
TRISD
PORTE
TRISE

=
=
=
=
=
=

0x00;
0xFF;
0x00;
0x00;
0x00;
0x04;

Zeramento para
0b.1111.1111 ,
Zeramento para
0b.0000.0000 ,
Zeramento para
0b.0000.0100 ,

display7seg
display7seg
display7seg
display7seg

unid
dez
cen
sinal

/* Configurao da porta serial */


TXSTA = 0x26; // 0b.0010.0110 = Modo assncrono 8 bits, baud rate high speed (BRGH=1)
SPBRG = 0x19; // 0x19 = 25 em decimal => Taxa 9600 bps p/ Fosc = 4 MHz => tab pg100 pdf
RCSTA = 0x90; // 0b.1001.0000 = Habilita a transmisso/recepo serial
TXIE = 0;
// Desabilita interrupo chamada pela transmisso serial
RCIE = 0;
// Desabilita interrupo chamada pela recepo serial
/* INICIALIZAO DO PROCESSADOR - FIM */

/* PROCESSOS - INCIO */
le_est_atual(); // Faz uma leitura inicial do estado do encoder
while(1)
// Lao principal infinito
{
verif_pedido();

130

EST_ANTES = EST_ATUAL;
le_est_atual();

// Armazena estado imediatamente anterior


// L o novo estado atual

switch(EST_ATUAL)
{
case (0): RB2 =
case (1): RB2 =
case (2): RB2 =
case (3): RB2 =
default: break;
}

// Indica o estado atual via LED's


0;
0;
1;
1;

RB3
RB3
RB3
RB3

=
=
=
=

0;
1;
0;
1;

break;
break;
break;
break;

trata_mud_est();
if(CLK == 1) // Quando preciso incrementar/decrementar
{
if(EH_PRIM_CLK == 1) // Caso for o primeiro clock
{ transmite(POS_CEN + 0x30); transmite(POS_DEZ + 0x30); transmite(POS_UNID + 0x30);
// Transmite o valor 000 em ASCII pela serial
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
if(EH_TESTE == 1) // Caso em modo teste
{ transmite(INTERV_DEZ + 0x30); transmite(INTERV_UNID + 0x30);
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
INTERV_UNID = 0; INTERV_DEZ = 0;
}
EH_PRIM_CLK = 0;
}
else // No o primeiro clock
{
if(U_D == 1) // Quando a posio aumenta
{ POS_ACUM = POS_ACUM + 1;
if(POS_ACUM > 32768) // Checa o sentido
{ EH_POSITIVO = 0;
}
else
{ EH_POSITIVO = 1;
}
if((EH_POSITIVO == 1)&&(POS_ACUM != 0))
{ incrementa();
}
else // nmero negativo
{ decrementa();
}
}
else // U_D == 0, logo quando a posio diminui
{ POS_ACUM = POS_ACUM - 1;
if(POS_ACUM > 32768) // Checa o sentido
{ EH_POSITIVO = 0;
}
else
{ EH_POSITIVO = 1;
}
if(EH_POSITIVO == 1)
{ decrementa();
}
else // nmero negativo
{ incrementa();
}
}//fim else U_D == 0
CONTA_PULSOS = CONTA_PULSOS + 1; // Incrementa controle de pulsos por valor enviado
if(CONTA_PULSOS == PULS_POR_VAL_ENV)
{
if(EH_POSITIVO == 0)
// Indica que a posio negativa
{ transmite('-');
// Transmite o caracter '-' em ASCII pela serial
}
transmite(POS_CEN + 0x30); transmite(POS_DEZ + 0x30); transmite(POS_UNID + 0x30);
// Transmite o valor da posio em ASCII pela serial
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
if(EH_TESTE == 1)
{ transmite(INTERV_DEZ + 0x30); transmite(INTERV_UNID + 0x30);
transmite(0x09);
// Transmite o caracter TAB pela serial (caracter terminador)
INTERV_UNID = 0; INTERV_DEZ = 0;
}
CONTA_PULSOS = 0;
}
}//fim else no o primeiro clock
}//fim if(CLK == 1)
trata_display7seg(); // Sempre executa
if(EH_TESTE == 1)

// S executa se estiver em modo teste

131

{ EST_ANTES_RES = EST_ATUAL_RES;
le_est_atual_RES();
trata_mud_est_RES();
if(CLK == 1)
// O clock agora do encoder de referncia
{
INTERV_UNID = INTERV_UNID + 1;
if(INTERV_UNID == 10)
{ INTERV_UNID = 0;
INTERV_DEZ = INTERV_DEZ + 1;
if(INTERV_DEZ == 10)
{ INTERV_DEZ = 0;
// Supondo no mais que 99 pulsos gerados pelo encoder de referncia
}
// no intervalo entre dois valores enviados do encoder sob teste
}
}
}

}//fim while
/* PROCESSOS - FIM */
}//fim main

Anexo V
%##########################################################################
function varargout = encoderGUI128(varargin)
% ENCODERGUI128 M-file for encoderGUI128.fig
%
ENCODERGUI128, by itself, creates a new ENCODERGUI128 or raises the existing
%
singleton*.
%
%
H = ENCODERGUI128 returns the handle to a new ENCODERGUI128 or the handle to
%
the existing singleton*.
%
%
ENCODERGUI128('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in ENCODERGUI128.M with the given input arguments.
%
%
ENCODERGUI128('Property','Value',...) creates a new ENCODERGUI128 or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before encoderGUI128_OpeningFunction gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to encoderGUI128_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help encoderGUI128
% Last Modified by GUIDE v2.5 28-Set-2007 14:02:04
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @encoderGUI128_OpeningFcn, ...
'gui_OutputFcn', @encoderGUI128_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
%##########################################################################
% --- Executes just before encoderGUI128 is made visible.
function encoderGUI128_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to encoderGUI128 (see VARARGIN)
set(handles.puls_por_leit_AQUIS,'String',1); %configura valores default
set(handles.qde_leit_desej_AQUIS,'String',16);
set(handles.puls_por_leit_TES,'String',1);
set(handles.qde_leit_desej_TES,'String',16);

132

set(handles.TOTGRAUSaquis,'String','45');
set(handles.TOTGRAUStes,'String','45');
% Choose default
handles.output =
% Update handles
guidata(hObject,

command line output for encoderGUI128


hObject;
structure
handles);

%##########################################################################
% --- Outputs from this function are returned to the command line.
function varargout = encoderGUI128_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%##########################################################################
% --- Executes on selection change in popupmenuPPLAQUI.
function popupmenuPPLAQUI_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuPPLAQUI (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuPPLAQUI contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuPPLAQUI
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu qde de pulsos por leitura - aquisiao
case ' 1'
set(handles.puls_por_leit_AQUIS,'String',1);
PPLaquis=1;
case ' 2'
set(handles.puls_por_leit_AQUIS,'String',2);
PPLaquis=2;
case ' 4'
set(handles.puls_por_leit_AQUIS,'String',4);
PPLaquis=4;
otherwise
end
LDaquis=str2double(get(handles.qde_leit_desej_AQUIS,'String'));
TOTGRAUSaq=2.8125*PPLaquis*LDaquis;
%determina o movimento total em graus
strTOTGRAUSaq=num2str(TOTGRAUSaq);
strTOTGRAUSaq=strcat(strTOTGRAUSaq,'');
set(handles.TOTGRAUSaquis,'String',strTOTGRAUSaq);
%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuPPLAQUI_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuPPLAQUI (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on selection change in popupmenuLDAQUI.
function popupmenuLDAQUI_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuLDAQUI (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuLDAQUI contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuLDAQUI
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu qde de leituras desejadas - aquisiao
case ' 16'
set(handles.qde_leit_desej_AQUIS,'String',16);
LDaquis=16;
case ' 32'
set(handles.qde_leit_desej_AQUIS,'String',32);
LDaquis=32;
case ' 64'
set(handles.qde_leit_desej_AQUIS,'String',64);
LDaquis=64;
case ' 128'
set(handles.qde_leit_desej_AQUIS,'String',128);
LDaquis=128;
otherwise
end
PPLaquis=str2double(get(handles.puls_por_leit_AQUIS,'String'));
TOTGRAUSaq=2.8125*PPLaquis*LDaquis;
%determina o movimento total em graus
strTOTGRAUSaq=num2str(TOTGRAUSaq);
strTOTGRAUSaq=strcat(strTOTGRAUSaq,'');
set(handles.TOTGRAUSaquis,'String',strTOTGRAUSaq);

133

%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuLDAQUI_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuLDAQUI (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on button press in pushbuttonAQUIS.
function pushbuttonAQUIS_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonAQUIS (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
%***** INICIALIZA PORTA SERIAL *****
s=serial('COM1');
fclose(s);
s.BaudRate=9600;
%9600 bps
s.DataBits=8;
%8 bits DEFAULT
s.Terminator=9;
%0x09 = caracter TAB
s.Timeout=600;
%600 segundos
fopen(s)
PPL_AQUIS=get(handles.puls_por_leit_AQUIS,'String');
switch PPL_AQUIS
case '1'
fprintf(s,'1'); %envia pela serial pedido do usurio(pulsos por leitura)
case '2'
fprintf(s,'2'); %envia pela serial pedido do usurio(pulsos por leitura)
case '4'
fprintf(s,'4'); %envia pela serial pedido do usurio(pulsos por leitura)
otherwise
end
LD_AQUIS=get(handles.qde_leit_desej_AQUIS,'String');
switch LD_AQUIS
case '16'
qde_leit_desej=16;
case '32'
qde_leit_desej=32;
case '64'
qde_leit_desej=64;
case '128'
qde_leit_desej=128;
otherwise
end
fprintf(s,'Z');
n=0;

%zeramento do encoder didtico ao iniciar, envia pela serial

%***** LAO DE LEITURA DA PORTA SERIAL *****


while (n<qde_leit_desej+1) %([leituras]) (n<VALOR), VALOR-1==multiplo do passo
POS=fscanf(s,'%d') %leitura da posiao atual do encoder didtico pela serial
H(n+1)=rem(now,1); %vetor hora atual em nmero serial
grafPOS(n+1)=POS; %vetor de posioes atuais
n=n+1;
end %fim while

%***** LIBERA PORTA SERIAL *****


fclose(s)
delete(s)
clear s
%***** INICIALIZA PORTA SERIAL *****
s=serial('COM1');
fclose(s);
s.BaudRate=9600;
%9600 bps
s.DataBits=8;
%8 bits DEFAULT
s.Terminator=9;
%0x09 = caracter TAB
s.Timeout=10;
%10 segundos
fopen(s)
fprintf(s,'E'); %questiona sobre mudanas erradas de estado
EST_ERR=fscanf(s,'%d') %leitura do cdigo que indica qde mud est erradas
%***** LIBERA PORTA SERIAL *****
fclose(s)
delete(s)
clear s
%***** FORMATA O VETOR DE TEMPO *****
t_ref=datevec(H(1));
t(1)=0;

134

N(1)=0;
for i=2:1:n
t(i)=etime(datevec(H(i)),t_ref);
N(i)=i-1;
end
%***** FORMATA O VETOR DE VELOCIDADE *****
grafVEL=0;
passo=2; %define a cada qtos pontos de posiao se baseia o calculo da velocidade
for k=1:passo:(n-passo)
VEL=(grafPOS(k+passo)-grafPOS(k))/(t(k+passo)-t(k)); %pulsos/seg
grafVEL=[grafVEL VEL];
end
for k=0:1:length(grafVEL)-1
nVEL(k+1)=k*passo;
tVEL(k+1)=t(k*passo+1);
end
%***** VARIVEIS GLOBAIS *****
global nG;
nG=n;
global NG;
NG=N;
global grafPOSG;
grafPOSG=grafPOS;
global tG;
tG=t;
global nVELG;
nVELG=nVEL;
global grafVELG;
grafVELG=grafVEL;
global tVELG;
tVELG=tVEL;
global EST_ERRG;
EST_ERRG=EST_ERR;
XX=encoderAQUIS128; %chama a figura de resultados da aquisio
%##########################################################################
% --- Executes on selection change in popupmenuPPLTES.
function popupmenuPPLTES_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuPPLTES (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuPPLTES contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuPPLTES
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu qde de pulsos por leitura - teste
case ' 1'
set(handles.puls_por_leit_TES,'String',1);
PPLtes=1;
case ' 2'
set(handles.puls_por_leit_TES,'String',2);
PPLtes=2;
case ' 4'
set(handles.puls_por_leit_TES,'String',4);
PPLtes=4;
otherwise
end
LDtes=str2double(get(handles.qde_leit_desej_TES,'String'));
TOTGRAUStes=2.8125*PPLtes*LDtes;
%determina o movimento total em graus
strTOTGRAUStes=num2str(TOTGRAUStes);
strTOTGRAUStes=strcat(strTOTGRAUStes,'');
set(handles.TOTGRAUStes,'String',strTOTGRAUStes);
%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuPPLTES_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuPPLTES (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on selection change in popupmenuLDTES.
function popupmenuLDTES_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuLDTES (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuLDTES contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuLDTES
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu qde de leituras desejadas - teste
case ' 16'

135

set(handles.qde_leit_desej_TES,'String',16);
LDtes=16;
case ' 32'
set(handles.qde_leit_desej_TES,'String',32);
LDtes=32;
case ' 64'
set(handles.qde_leit_desej_TES,'String',64);
LDtes=64;
case ' 128'
set(handles.qde_leit_desej_TES,'String',128);
LDtes=128;
otherwise
end
PPLtes=str2double(get(handles.puls_por_leit_TES,'String'));
TOTGRAUStes=2.8125*PPLtes*LDtes;
%determina o movimento total em graus
strTOTGRAUStes=num2str(TOTGRAUStes);
strTOTGRAUStes=strcat(strTOTGRAUStes,'');
set(handles.TOTGRAUStes,'String',strTOTGRAUStes);
%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuLDTES_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuLDTES (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on button press in pushbuttonTESTE.
function pushbuttonTESTE_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonTESTE (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
%***** INICIALIZA PORTA SERIAL *****
s=serial('COM1');
fclose(s);
s.BaudRate=9600;
%9600 bps
s.DataBits=8;
%8 bits DEFAULT
s.Terminator=9;
%0x09 = caracter TAB
s.Timeout=600;
%600 segundos
fopen(s)
PPL_TES=get(handles.puls_por_leit_TES,'String');
global PPL_TESG;
switch PPL_TES
case '1'
fprintf(s,'1'); %envia pela serial pedido do usurio(pulsos por leitura)
PPL_TESG=1;
case '2'
fprintf(s,'2'); %envia pela serial pedido do usurio(pulsos por leitura)
PPL_TESG=2;
case '4'
fprintf(s,'4'); %envia pela serial pedido do usurio(pulsos por leitura)
PPL_TESG=4;
otherwise
end
LD_TES=get(handles.qde_leit_desej_TES,'String');
switch LD_TES
case '16'
qde_leit_desej=16;
case '32'
qde_leit_desej=32;
case '64'
qde_leit_desej=64;
case '128'
qde_leit_desej=128;
otherwise
end
fprintf(s,'T'); %ajusta para modo teste, zerando inclusive, envia pela serial
n=0;
%***** LAO DE LEITURA DA PORTA SERIAL *****
while (n<qde_leit_desej+1) %([leituras])
POS=fscanf(s,'%d') %leitura da posiao atual do encoder didtico pela serial
QDE_PULSOS_INTERV=fscanf(s,'%d') %leitura da contagem de pulsos do canal
%%A do encoder de referncia no intervalo entre duas transmisses de
%%posio do encoder didtico
grafPOS(n+1)=POS; %vetor de posioes atuais
grafPULS(n+1)=QDE_PULSOS_INTERV; %vetor de contagem de pulsos no intervalo
n=n+1;
end %fim while

136

fprintf(s,'F'); %finaliza modo teste, envia pela serial


%***** LIBERA PORTA SERIAL *****
fclose(s)
delete(s)
clear s
%***** INICIALIZA PORTA SERIAL *****
s=serial('COM1');
fclose(s);
s.BaudRate=9600;
%9600 bps
s.DataBits=8;
%8 bits DEFAULT
s.Terminator=9;
%0x09 = caracter TAB
s.Timeout=10;
%10 segundos
fopen(s)
fprintf(s,'E'); %questiona sobre mudanas erradas de estado
EST_ERR=fscanf(s,'%d') %leitura do cdigo que indica qde mud est erradas

%***** LIBERA PORTA SERIAL *****


fclose(s)
delete(s)
clear s
%***** CRIA O EIXO DE LEITURAS *****
N(1)=0;
for i=2:1:n
N(i)=i-1;
end
%***** VARIVEIS GLOBAIS *****
global nG;
nG=n;
global NG;
NG=N;
global grafPOSG;
grafPOSG=grafPOS;
global grafPULSG;
grafPULSG=grafPULS;
global EST_ERRG;
EST_ERRG=EST_ERR;
YY=encoderTESTE128; %chama a figura de resultados do teste de preciso
%##########################################################################
% --- Executes on button press in pushbuttonSAIR.
function pushbuttonSAIR_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonSAIR (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
delete(handles.figuraPRINC);

Anexo VI
%##########################################################################
function varargout = encoderAQUIS128(varargin)
% ENCODERAQUIS128 M-file for encoderAQUIS128.fig
%
ENCODERAQUIS128, by itself, creates a new ENCODERAQUIS128 or raises the existing
%
singleton*.
%
%
H = ENCODERAQUIS128 returns the handle to a new ENCODERAQUIS128 or the handle to
%
the existing singleton*.
%
%
ENCODERAQUIS128('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in ENCODERAQUIS128.M with the given input arguments.
%
%
ENCODERAQUIS128('Property','Value',...) creates a new ENCODERAQUIS128 or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before encoderAQUIS128_OpeningFunction gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to encoderAQUIS128_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help encoderAQUIS128
% Last Modified by GUIDE v2.5 28-Set-2007 16:50:41
% Begin initialization code - DO NOT
gui_Singleton = 1;
gui_State = struct('gui_Name',
'gui_Singleton',
'gui_OpeningFcn',

EDIT
mfilename, ...
gui_Singleton, ...
@encoderAQUIS128_OpeningFcn, ...

137

'gui_OutputFcn', @encoderAQUIS128_OutputFcn, ...


'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
%##########################################################################
% --- Executes just before encoderAQUIS128 is made visible.
function encoderAQUIS128_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to encoderAQUIS128 (see VARARGIN)
global nG NG grafPOSG tG EST_ERRG;
axes(handles.GRAF1); %plota, inicialmente, posio x nmero da leitura
plot(NG,grafPOSG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Posio [pulsos]')
grid
axes(handles.GRAF2); %plota, inicialmente, posio x tempo
plot(tG,grafPOSG,'.-b')
xlim([0 tG(nG)])
ylim('auto')
xlabel('Tempo [s]')
ylabel('Posio [pulsos]')
grid
switch EST_ERRG %interpretao e indicao do valor aproximado de mud err de estado
case 123
set(handles.ESTERR_AQUIS,'String','= 0');
case 55
set(handles.ESTERR_AQUIS,'String','< 5');
case 111
set(handles.ESTERR_AQUIS,'String','< 10');
case 222
set(handles.ESTERR_AQUIS,'String','< 20');
otherwise
set(handles.ESTERR_AQUIS,'String','> 20');
end
% Choose default command line output for encoderAQUIS128
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
%##########################################################################
% --- Outputs from this function are returned to the command line.
function varargout = encoderAQUIS128_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%##########################################################################
% --- Executes on selection change in popupmenuGRAF1.
function popupmenuGRAF1_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuGRAF1 contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuGRAF1
global nG NG grafPOSG tG nVELG grafVELG tVELG;
axes(handles.GRAF1);
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu e plota no grfico 1
case ' Posicao x Numero da leitura'
plot(NG,grafPOSG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Posio [pulsos]')
grid
case ' Velocidade x Numero da leitura'
plot(nVELG,grafVELG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])

138

ylim('auto')
xlabel('Nmero da leitura')
ylabel('Velocidade [pulsos/seg]')
grid
case ' Posicao x Tempo'
plot(tG,grafPOSG,'.-b')
xlim([0 tG(nG)])
ylim('auto')
xlabel('Tempo [s]')
ylabel('Posio [pulsos]')
grid
case ' Velocidade x Tempo'
plot(tVELG,grafVELG,'.-b')
xlim([0 tG(nG)])
ylim('auto')
xlabel('Tempo [s]')
ylabel('Velocidade [pulsos/seg]')
grid
otherwise
end
%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuGRAF1_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on button press in pushbuttonfechaAQUIS.
function pushbuttonfechaAQUIS_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonfechaAQUIS (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
delete(handles.figuraAQUIS);
%##########################################################################
% --- Executes on selection change in popupmenuGRAF2.
function popupmenuGRAF2_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuGRAF2 contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuGRAF2
global nG NG grafPOSG tG nVELG grafVELG tVELG;
axes(handles.GRAF2);
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu e plota no grfico 2
case ' Posicao x Tempo'
plot(tG,grafPOSG,'.-b')
xlim([0 tG(nG)])
ylim('auto')
xlabel('Tempo [s]')
ylabel('Posio [pulsos]')
grid
case ' Velocidade x Tempo'
plot(tVELG,grafVELG,'.-b')
xlim([0 tG(nG)])
ylim('auto')
xlabel('Tempo [s]')
ylabel('Velocidade [pulsos/seg]')
grid
case ' Posicao x Numero da leitura'
plot(NG,grafPOSG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Posio [pulsos]')
grid
case ' Velocidade x Numero da leitura'
plot(nVELG,grafVELG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Velocidade [pulsos/seg]')
grid
otherwise
end
%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuGRAF2_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB

139

% handles

empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.


%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on button press in pushbuttonEXPORT.
function pushbuttonEXPORT_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonEXPORT (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
global NG tG grafPOSG nVELG tVELG grafVELG;
nome={'LEITURA'};
%exporta dados para arquivo em excel
xlswrite('encoder_aquisicao.xls',nome,'Plan1','A2');
xlswrite('encoder_aquisicao.xls',NG','Plan1','A4');
nome={'TEMPO [s]'};
xlswrite('encoder_aquisicao.xls',nome,'Plan1','C2');
xlswrite('encoder_aquisicao.xls',tG','Plan1','C4');
nome={'POS [pulsos]'};
xlswrite('encoder_aquisicao.xls',nome,'Plan1','E2');
xlswrite('encoder_aquisicao.xls',grafPOSG','Plan1','E4');
nome={'LEITURA'};
xlswrite('encoder_aquisicao.xls',nome,'Plan1','G2');
xlswrite('encoder_aquisicao.xls',nVELG','Plan1','G4');
nome={'TEMPO [s]'};
xlswrite('encoder_aquisicao.xls',nome,'Plan1','I2');
xlswrite('encoder_aquisicao.xls',tVELG','Plan1','I4');
nome={'VEL [pulsos/s]'};
xlswrite('encoder_aquisicao.xls',nome,'Plan1','K2');
xlswrite('encoder_aquisicao.xls',grafVELG','Plan1','K4');
set(handles.pushbuttonEXPORT,'ForegroundColor',[0.51,0.51,0.51]);

Anexo VII
%##########################################################################
function varargout = encoderTESTE128(varargin)
% ENCODERTESTE128 M-file for encoderTESTE128.fig
%
ENCODERTESTE128, by itself, creates a new ENCODERTESTE128 or raises the existing
%
singleton*.
%
%
H = ENCODERTESTE128 returns the handle to a new ENCODERTESTE128 or the handle to
%
the existing singleton*.
%
%
ENCODERTESTE128('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in ENCODERTESTE128.M with the given input arguments.
%
%
ENCODERTESTE128('Property','Value',...) creates a new ENCODERTESTE128 or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before encoderTESTE128_OpeningFunction gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to encoderTESTE128_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help encoderTESTE128
% Last Modified by GUIDE v2.5 28-Set-2007 13:48:30
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @encoderTESTE128_OpeningFcn, ...
'gui_OutputFcn', @encoderTESTE128_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

140

else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
%##########################################################################
% --- Executes just before encoderTESTE128 is made visible.
function encoderTESTE128_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to encoderTESTE128 (see VARARGIN)
global PPL_TESG;
global nG NG grafPOSG grafPULSG EST_ERRG;
axes(handles.GRAF1); %plota, inicialmente, posio x nmero da leitura
plot(NG,grafPOSG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Posio [pulsos]')
grid
axes(handles.GRAF2); %plota, inicialmente, qde de pulsos no intervalo x nmero da leitura
plot(NG,grafPULSG,'.-b')
xlim([0 nG-1])
ylim([0 16*PPL_TESG])
xlabel('Nmero da leitura')
ylabel('Qde de pulsos no intervalo [pulsos>RES]')
grid
switch EST_ERRG %interpretao e indicao do valor aproximado de mud err de estado
case 123
set(handles.ESTERR_TES,'String','= 0');
case 55
set(handles.ESTERR_TES,'String','< 5');
case 111
set(handles.ESTERR_TES,'String','< 10');
case 222
set(handles.ESTERR_TES,'String','< 20');
otherwise
set(handles.ESTERR_TES,'String','> 20');
end
% Choose default command line output for encoderTESTE128
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
%##########################################################################
% --- Outputs from this function are returned to the command line.
function varargout = encoderTESTE128_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%##########################################################################
% --- Executes on selection change in popupmenuGRAF1.
function popupmenuGRAF1_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuGRAF1 contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuGRAF1
global PPL_TESG;
global nG NG grafPOSG grafPULSG;
axes(handles.GRAF1);
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu e plota no grfico 1
case ' Posicao x Numero da leitura'
plot(NG,grafPOSG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Posio [pulsos]')
grid
case ' Qde de pulsos no intervalo x Numero da leitura'
plot(NG,grafPULSG,'.-b')
xlim([0 nG-1])
ylim([0 16*PPL_TESG])
xlabel('Nmero da leitura')
ylabel('Qde de pulsos no intervalo [pulsos>RES]')
grid
otherwise
end

141

%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuGRAF1_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on button press in pushbuttonfechaTEST.
function pushbuttonfechaTEST_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonfechaTEST (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
delete(handles.figuraTEST);
%##########################################################################
% --- Executes on selection change in popupmenuGRAF2.
function popupmenuGRAF2_Callback(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenuGRAF2 contents as cell array
%
contents{get(hObject,'Value')} returns selected item from popupmenuGRAF2
global PPL_TESG;
global nG NG grafPOSG grafPULSG;
axes(handles.GRAF2);
val = get(hObject,'Value');
str = get(hObject, 'String');
switch str{val}; %verifica opo no popup menu e plota no grfico 2
case ' Qde de pulsos no intervalo x Numero da leitura'
plot(NG,grafPULSG,'.-b')
xlim([0 nG-1])
ylim([0 16*PPL_TESG])
xlabel('Nmero da leitura')
ylabel('Qde de pulsos no intervalo [pulsos>RES]')
grid
case ' Posicao x Numero da leitura'
plot(NG,grafPOSG,'.-','Color',[0,0.25,0])
xlim([0 nG-1])
ylim('auto')
xlabel('Nmero da leitura')
ylabel('Posio [pulsos]')
grid
otherwise
end
%##########################################################################
% --- Executes during object creation, after setting all properties.
function popupmenuGRAF2_CreateFcn(hObject, eventdata, handles)
% hObject
handle to popupmenuGRAF2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%##########################################################################
% --- Executes on button press in pushbuttonEXPORT.
function pushbuttonEXPORT_Callback(hObject, eventdata, handles)
% hObject
handle to pushbuttonEXPORT (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
global NG grafPOSG grafPULSG;
nome={'LEITURA'};
%exporta dados para arquivo em excel
xlswrite('encoder_testeprecisao.xls',nome,'Plan1','A2');
xlswrite('encoder_testeprecisao.xls',NG','Plan1','A4');
nome={'POS [pulsos]'};
xlswrite('encoder_testeprecisao.xls',nome,'Plan1','C2');
xlswrite('encoder_testeprecisao.xls',grafPOSG','Plan1','C4');
nome={'QDE NO INTERV [pulsos>RES]'};
xlswrite('encoder_testeprecisao.xls',nome,'Plan1','E2');
xlswrite('encoder_testeprecisao.xls',grafPULSG','Plan1','E4');
set(handles.pushbuttonEXPORT,'ForegroundColor',[0.51,0.51,0.51]);

142

Vous aimerez peut-être aussi