-
UNIVERSIDADE FEDERAL DE OURO PRETO
ESCOLA DE MINAS
COLEGIADO DO CURSO DE ENGENHARIA DE
CONTROLE E AUTOMAO - CECAU
JARBAS ALEXANDRE DUARTE FRADE
SUBSISTEMA MICROCONTROLADO PARA CONTROLE E INDICAO DE
POTNCIA APLICADA A MOTORES ELTRICOS DE CORRENTE
CONTNUA DE VECULOS SUBMERSVEIS REMOTAMENTE
CONTROLADOS (ROVs)
MONOGRAFIA DE GRADUAO EM ENGENHARIA DE CONTROLE E
AUTOMAO
Ouro Preto,
2012
-
JARBAS ALEXANDRE DUARTE FRADE
SUBSISTEMA MICROCONTROLADO PARA CONTROLE E INDICAO DE
POTNCIA APLICADA A MOTORES ELTRICOS DE CORRENTE
CONTNUA DE VECULOS SUBMERSVEIS REMOTAMENTE
CONTROLADOS (ROVs)
Monografia apresentada ao Curso de
Engenharia de Controle e Automao
da Universidade Federal de Ouro Preto
como parte dos requisitos para a
obteno do Grau de Engenheiro de
Controle e Automao.
Orientador (a): Luciana Gomes
Castanheira
Co-orientador: Robson Nunes Dal Col
Ouro Preto
Escola de Minas UFOP
Dezembro/2012
-
RESUMO
Este t rabalho consiste em desenvo lver um f irmware para
controle e
indicao de potncia aplicada a motores elt r icos de corrente
cont nua
de veculos submersveis remotamente controlados (ROVs
Remotaly
Operated Vehicles). Para o desenvo lvimento do f irmware, ut
ilizou-se de
ferramentas como o MPLAB e o PCWH da CCS, que so sof twares
de
programao e compilao de microcontroladores, respect ivamente
.
Realizou-se um estudo de funcionamento e das caracter st icas
do
microcontrolador PIC18F4550, que fo i ut ilizado para produo da
placa
prott ipo M1. Neste t rabalho tambm visto o funcionamento
parcial do
controle proposto (maleta) e sua inter face fsica, as placas
prott ipos que
sero ut ilizadas e uma viso geral sobre os ROVs. Os motores do
ROV
sero controlados com auxilio de um c ircuito em ponte H para que
h aja
giro dos motores nos do is sent idos, havendo assim a emerso,
submerso
e giro do ROV. Dessa maneira, so estudados os comandos de
programao para elaborao de um f irmware adequado ao projeto
proposto. Este f irmware est est ruturado em um fluxograma e seu
cdigo
est explicado detalhadamente para melhor entendimento de seu
func ionamento.
Palavras chaves: Veculos Submesveis Remotamente Controlados;
f irmware; PIC18F4550.
-
ABSTRACT
This work consists in the development of a firmware for control
and
indicat ion of applied power to direct current electr ic motors
of remotely
operated vehic le (ROVs). For the development of the firmware,
were
used tools as MPLAB and PCWH from C CS, those are programming
and
compilat ion o f microcontrollers so ftwares, respect ively. An
study o f
funct ioning and microcontroller`s PIC18F4550 character ist ics
those
ut ilized for the product ion o f the prototype board M1 was
performed.
Were seen, also, the part ial funct ioning o f the proposed
contro l
(suitcase) and it s phys ical int er face, the prototype board
that will be
used and a general vis ion about the ROVs. The ROV motors will
be
controlled by means of a H-Bridge circuit allowing rotat ion in
both sides
of the motors, emersion, submersion and ROV rotat ion. This way,
the
programming commands for the adequate firmware elaborat ion to
the
proposed pro ject are studied. That fir mware is st ructured in
a flowchart
and the code is explained in detail to bet ter understanding o f
it s
funct ioning.
Key Words: Remotely Operated Vehicle; f irmware; PIC18F4550.
-
LISTA DE SIGLAS
ROVs Remotely Operated Vehicles Veculo Operado Remotamente.
CCS Custom Computer Services.
AUVs Autonomous Underwater Vehicles Veculos Submersveis
Autnomos
UUV Unmanned Undersea Vehicles Veculos Semissubmersveis
Autnomos.
VSI Veculo Submersvel de Inspeo.
VDD Voltage Drain Drain Alimentao Positiva.
SMD Surface Mount Resistors Resistncias de Superfcies.
VSS Voltage Source Source Alimentao Negativa.
PIC Programmable Interface Controller - Controlador de
Interface
Programvel.
GND Ground Alimentao Negativa.
-
LISTA DE FIGURAS
1.0 Sistema de Veculo Operado Remotamente ROV Stealth 17
HITEC....... 10
1.1 AUV da IFM Geomar ut ilizado na busca do Air France 447 .. .
. 11
1.2 Resumo dos veculos no tripulados e seus nveis de
autonomia................. 11
1.3 VSI-01 Submersvel Construdo no
CPH/UFMG...................................... 13
1.4 Fotos dos testes de submerso e emerso do
VSI-02.................................... 13
2.0 Representao de uma Ponte
H.....................................................................
15
2.1 Representao do uso da Ponte
H.................................................................
16
2.2 Ilustrao do Controle
(Maleta)....................................................................
17
2.3 (a) Ligaes dos pinos com respectivos segmentos. (b) e (c)
Imagens do
led sete segmentos
usado..............................................................................
17
2.4 Displays Sete Segmentos na placa M1 com suas respectivas
ligaes no
PIC.................................................................................................................
18
2.5 Diagrama representando o
sistema................................................................
20
3.0 Placa
M1........................................................................................................
21
3.1 Esquema da Placa M1 em
CAD....................................................................
22
3.2 Componentes SMD da Placa
M1..................................................................
22
3.3 PIC18F4550 ligado na placa
M1...................................................................
24
3.4 Distribuio dos pinos no microcontrolador
PIC18F4550............................ 24
3.5 Ligaes dos pinos do PIC18F4550 na Placa
M1......................................... 25
3.6 Pinos que so ligadas aos conectores e tipo de
conectores........................... 26
4.0 Interface Grfica do MPLAB
8.5..................................................................
28
4.1 Interface Grfica do PCWH da
CCS.............................................................
28
4.2 Funo do
Compilador..................................................................................
29
4.3 Fluxograma do
Programa..............................................................................
30
4.4 Cdigo (Parte
1)............................................................................................
31
4.5 Valores Lgicos nas Portas
D.......................................................................
32
4.6 Ligaes das Portas D no
Display.................................................................
33
4.7 Exemplo de Programao sem a
Matriz........................................................
33
4.8 Cdigo (Parte
2)............................................................................................
35
4.9 Cdigo (Parte
3)............................................................................................
36
4.10 Voltagem
Medida..........................................................................................
38
-
4.11 Indicao da Placa Conforme Terceira parte da
Programao..................... 39
4.12 Cdigo (Parte
4)............................................................................................
40
4.13 Indicao da Placa Conforme Quarta parte da
Programao..................... 40
4.14 Cdigo (Parte
5)............................................................................................
41
4.15 Indicao da Placa Conforme Quinta parte da
Programao..................... 42
-
SUMRIO
1
INTRODUO..........................................................................................
9
1.1
Objetivos.....................................................................................................
9
1.2 Veculos Remotamente Operados (ROVs) .
.................................... 9
1.3 Veculos Submers veis Autnomos (AUVs) .
.................................. 10
1.4 Veculos Semissubmers veis Autnomos
(UUV)........................... 11
1.5 Veculos Submersveis VSI -01 e VSI-02.. . . . .
.............................. 12
2 O CONTROLE
PROPOSTO......................................................................
14
2.1 Motores de Corrente Cont nua ..
........................................................ 14
2.1.1 Formas de Controle de Potncia dos Motores CC ou
DC.......................... 14
2.1.2 Motores Instalados no ROV
VSI-02...........................................................
16
2.2 Inter face Fsica de Controle (Maleta) . . . . .. .. . . .. .
.. . .. . .. . .. . .. . .. . .. 16
2.2.1 Display de Led
Sete-segmentos..................................................................
17
2.2.2 Acionamento Multiplexado de Displays de
Sete-segmentos...................... 18
2.2.3 Diagrama de Blocos do
Sistema.................................................................
20
3 PLACA PROTTIPO M1 DE CONTROLE ... .. . .. . .. . .. . .. . ..
. .. . .. 21
3.1 Microcontro lador PIC18F4550-I/P.. . . . .. . .. .. . . .. .
.. . .. . .. . .. . .. . .. . .. . 23
3.2 Inter face USB 2.0 (12MBPs/s) . . . . . . .. . .. . .. . ...
. . .. . .. . .. . .. . .. . .. . .. . .. 26
4 FIRMWARE DE CONTROLE... . . . .. . .. . .. . .. .. . . .. . ..
. .. . .. . .. . .. . .. . .. 27
4.1 O MPLAB e o PCWH da CCS.. . . . . . .. . .. . .. . ... . .
.. . .. . .. . .. . .. . .. . .. . .. 27
4.2
Fluxograma.................................................................................................
30
4.3 Detalhamento do
Programa........................................................................
31
5
CONCLUSES..........................................................................................
43
REFERNCIAS.........................................................................................................
44
ANEXO......................................................................................................................
46
-
9
1: INTRODUO
Inicia lmente desenvo lvido para pe squisas e co leta de
amostras
subaqut icas, os veculos submersveis no tr ipulados, atualmente
so
tambm desenvo lvidos, no Brasil e em outros pases, com propsito
de
fazerem operaes de r isco ao ser humano ou em lugares inspitos
como
operaes de poos de petrleo, pesquisas submarinas em geral,
manuteno em hidrelt r icas ou at mesmo busca a d estroos e
pesquisa
arqueo lgica em baixo dgua. Estes veculos submersveis podem
ser
classificados, segundo Magalhes (2007), como Veculos
Remotamente
Operados (ROVs Remotely Operated Vehicle), Veculos
Submersveis
Autnomos (AUVs Autonomos Underwater Vehicle) ou Veculos
Semissubmersveis Autnomos (UUV Unmanned Undersea Vehicle ).
1.1 Objetivos
Este t rabalho tem pr incipal objet ivo de desenvo lver um f
irmware,
ut ilizando os so ftwares MPLAB e PCWH da CCS e a placa M1, para
o
controle e indicao de potncia t ransmit ida aos motores de
corrente
cont nua de veculos submersveis remotamente controlados
(ROVs),
neste caso , especificamente, o ROV VSI-02 (Veculo Submersvel
de
Inspeo 02) , projetado pelo doutor Paulo Henr ique Vie ira
Magalhes.
Assim tambm como estudar e apr imorar os conhecimentos sobre
microcontroladores, pr incipalmente o microcontrolador
PIC18F4550 da
Microchip , veculos submers veis remotamente controlados e
suas
definies e programao em sistemas embut idos.
1.2 Veculos Remotamente Operados (ROVs)
Para o Inst ituto Hidrogrfico da Marinha de Portugal, ROV um
veculo
subaqut ico, controlado remotamente, que permite a observao
remota
do fundo do mar e as superfc ies est ruturais submarinas. O
veculo
-
10
ligado por um cabo umbilica l com a superfcie, fazendo com que
sejam
enviadas as informaes dos sensores cont idos nele aos
operadores,
permit indo o fornecimento de energia e sua comunicao
bidireciona l
(PATA, 2012) . Em alguns ROVs a energia tambm pode ser
fornecida
por bater ias ou at painis so lares. A ut ilizao de um ROV
permit e a
operao a maiores profundidades e durante um per odo de tempo
maio r
que ser ia com recurso a mergulhadores. Alm disso, possve l
a
operao em guas contaminadas que representam um r isco para a vid
a
humana. A Figura 1.0 exemplifica o modelo de um ROV.
FIGURA 1.0 S istema de Veculo Operado Remotamente ROV
Stealth
17 HITEC
FONTE : MAGALHES, (2007).
1.3 Veculos Submersveis Autnomos (AUVs)
Os AUVs (Figura 1.1) tem o mesmo pr incpio fs ico dos ROVs,
mas
monitorado remotamente de uma estao base, esta pode estar
localizada
a grandes distncias do local de operao do veculo, podendo ser
at
mesmo no cont inente, dispensando estao de apoio mar t ima ,
exceto
uma embarcao para lan- lo ao mar.
-
11
FIGURA 1.1 AUV da IFM Geomar ut ilizado na busca do Air
France
447
FONTE : LOCAL .. . , (2011).
1.4 Veculos Semissubmersveis Autnomos (UUV)
Os veculos semissubmersve is autnomos necessitam de apo io de
uma
equipe em uma embarcao para complet arem suas tarefas e se
diferem
dos AUVs pela capacidade de autonomia.
Na Figura 1.2 tem-se um resumo dos veculos no t ripulados e
seus
respect iveis nveis de autonomia.
FIGURA 1.2 Resumo dos vecu los no tr ipulados e seus nveis
de
autonomia.
FONTE : MAGALHES, (2007).
-
12
1.5 Veculos Submersveis VSI-01 e VSI-02
Devido diversidade de condies de t rabalho, a segurana do pessoa
l
envo lvido e as dificuldades pert inentes para a inspeo visua l
de
est ruturas hidrulicas, a pro fisso de mergulhador torna-se um
problema
de gerenciamento complexo.
Como o t rabalho de inspeo e manuteno das Usinas Hidrelt r
icas
usualmente so feit as por mergulhadores t reinados, este pro
jeto dos
ROVs veio para reduzir o r isco desta operao, visto que,
mesmo
t reinados, estes mergulhadores so submetidos a situaes de r
isco de
vida, como acidentes, doenas que o mergulho pode causar ou
at
alteraes fis io lgicas causadas pelo mergu lho. Alm dessas
desvantagens temos tambm o custo at relado manuteno e
inspeo,
que com os mergulhadores h este custo per iodicamente ; j com o
ROV
este custo se reduz, po is ser ia o custo para o des envo
lvimento e
manuteno do ROV.
Visto isso, fez-se um trabalho visando desenvo lver um
submersvel de
operao remota de modo a eliminar estes r iscos
proporcionando
melhores condies de t rabalho. O prottipo de um veculo de
inspees
subaqut ico telecomandado capaz de captar imagens e t ransmit i
- las via
cabo ilust rado na Figura 1.3 fo i desenvolvido no Centro de
Pesquisas
Hidrulicas e Recursos Hdr icos (CPH) da UFMG o VSI-01 (Vecu
lo
Submersve l de Inspeo 01) (MAGALHES, 2007).
-
13
FIGURA 1.3 VSI-01 Submersve l Construdo no CPH/UFMG
FONTE :MAGALHES, (2007).
Seu desenvo lvimento proporcionou estudar problemas referentes
a
montagem do ROV e assim desenvo lver um segundo veculo .
Ento se props o desenvo lvimento de um veculo submersve l de
operao remota para inspeo de hidrelt r ica com custo
reduzido,
ut ilizando peas convencionais e o estudo de alternat ivas de
propulso e
vetorizao de empuxo que possam ser ut ilizadas em veculos
submersveis, o VSI-02 (Figura 1.4) .
FIGURA 1.4 Fotos dos testes de submerso e emerso do VSI -02
FONTE : MAGALHES, (2007).
-
14
2: O CONTROLE PROPOSTO
O controle proposto a ser desenvo lvido const itui-se em um
mecanismo
para o comando do ROV VSI -02, indicao de seus sent idos
(vert icalmente e hor izontalmente) e das potncias de seu s
motores e
visualizao dos ambientes subaqut icos em usinas hi drelt r
icas
ut ilizando a placa prott ipo M1.
2.1 Motores de Corrente Contnua
Motor elt r ico de corrente cont nua um t ipo comum de motor elt
r ico,
cuja pr inc ipal caracter st ica que ele possui do is termina is
elt r icos, um
posit ivo e um negat ivo. Se uma corrente elt r ica percorre num
sent ido , o
eixo do motor gira para um lado, se ela invert ida, o eixo gira
para o
outro lado.
Portanto, podemos inverter o sent ido de rotao do eixo
simplesmente
invertendo a po lar idade dos termina is elt r icos, e por
consequncia,
invertendo a corrente.
Este t ipo de motor fo i ut ilizado a fim de, ao se acionar as
alavancas
referentes aos controles de potncia dos motores no controle
de
operao, este ir mudar o sent ido de giro do motor de acordo com
o
circuito ponte H, para que assim o ROV possa emergir,
submergir,
avanar, recuar e g irar.
2.1.1 Formas de Controle de Potncia dos Motores CC ou DC
Para controlar o motor CC o circuito ideal a ser ut ilizado ser
o de ponte
H, com sistema de proteo microcontrolado ut ilizando sensores
de
corrente a part ir de sensores de efe ito Hall e co m capac
idade de no
mnimo 40A, a part ir de sinais gerados pelo microcontrolador.
Pela
-
15
disposio de seus componentes, apenas invertendo a po lar idade
sobre
seus terminais, inverte-se o sent ido de rotao do motor. Nesse
caso,
como o microcontrolador no suporta a corrente necessr ia e nem
possu i
a tenso adequada para acionar o motor, tambm ser necessr ia
uma
unidade de potncia para aliment - los.
Ao se ligar o motor em uma alimentao conveniente nota -se que
este
gira com uma determinada velocidade e par a um determinado sent
ido .
Invertendo a polar idade, o motor altera o sent ido de rotao.
Para
evitarmos uma t roca manualmente, o que no ser conveniente,
ut ilizamos o circu ito ponte H, conforme a Figura 2.1 . Ento,
ao acionar-
se um conjunto de chaves mecn icas ou elt r icas pode-se
controlar o
sent ido de rotao dos motores.
FIGURA 2.0 Representao de uma Ponte H.
FONTE: PATSKO, (2006).
Acionando o par de chaves diagonalmente opostas a corrente fluir
de
um p lo posit ivo para um p lo negat ivo fazendo com que o motor
gire
num determinado sent ido e para que o motor gire em outro sent
ido basta
alterar o par de chaves, alterando assim o fluxo de corrente
e
consequentemente o giro do motor , como mostra a Figura 2.2
.
-
16
FIGURA 2.1 Representao do uso da Ponte H.
FONTE: PATSKO, (2006).
2.1.2 Motores Instalados no ROV VSI-02
Conforme Magalhes (2007) no exist e muita informao sobre os
motores instalados no ROV VSI -02, mas pode-se dizer que
foram
ut ilizados motores CC com tenso de 12V para operar em pro
fundidade.
2.2 Interface Fsica de Controle (Maleta)
A int er face fs ica do controle ser composta por t rs
alavancas, que da
maneira como forem acionadas , ir indicar nos pares de leds
sete-
segmentos o valor da potncia , e nos outros leds o sent ido
correspondente (Figura 2.3) . O f irmware desenvo lvido se
encarregar de
estabelecer quais leds sero acesos. Assim, ao acionar qualquer
uma das
alavancas acarretar na mudana da vo ltagem nos conversores A/D
da
placa e de acordo com a vo ltagem emit ida e a alavanca
acionada, os
pares de displays leds sete-segmentos indicaro um determinado
valor,
sendo que estes valores podem var iar de 00 a 99.
-
17
FIGURA 2.2 I lust rao do Controle (Maleta).
FONTE: DAL COL, 2010.
2.2.1 Display de Led Sete-segmentos
Os displays de sete-segmentos so compostos de um conjunto de
sete
leds de maneira que acesos podem formar um valor numrico ou
uma
let ra e em sua grande maior ia possui um ponto decimal
exemplificado na
Figura 2.4.
Existe ho je no mercado, uma padronizao destes disp la ys,
compostos
por dez pinos, sendo que o ito so para controle dos leds que
formam os
segmentos mais o ponto decimal e do is so comuns que podem
ser
ligados a todos os catodos ou anodos dos leds int ernos (LUZ,
2011).
Neste t rabalho, os segmentos so ligados ao VDD (Voltage Drain
Drain )
para acender o led e o comum ligado ao terra.
FIGURA 2.3 (a) Ligaes dos pinos com respect ivos segmentos. (b)
e
(c) Imagens do led sete-segmentos usado.
FONTE: (a) (DISPLAY .. .) .
-
18
2.2.2 Acionamento Multiplexado de Displays de Sete-segmentos
Se tem apenas um display bastar ia conectarmos o ito pinos
referentes aos
segmentos aterrando-se o pino comum, mas como tem-se seis
displays de
sete-segmentos (Figura 2.5) , necessita-se de 48 (quarenta e
oito) pinos,
sendo assim, so ut ilizadas todas as portas I/O do PIC e ainda
falt ar ia m
2 pinos, o que no vivel.
Da, pode-se usar um conceito chamado varredura, que de acordo
com
Luz (2011), consiste na int er ligao de todos os pinos de um
mesmo
segmento dos displays tendo assim o ito vias de dados e o pino
comum de
cada display conectado individualmente a um pino do PIC.
Assim
quando se quer escrever num determinado display s ligar o
display
dese jado e acionar os segmentos correspondentes ao que se
quer
escrever.
FIGURA 2.4 Displays Sete Segmentos na placa M1 com suas
respect ivas ligaes no PIC.
FONTE: DAL COL, 2010.
Mas isso bastar ia se a informao, a saber , fosse apresentada
somente em
um dos displays , e como se quer que a informao aparea nos
seis
displays ento se faz a escr it a numa sequncia, ou seja, escreve
-se no
display um, depo is no display do is, no t rs, no quatro, no
cinco, no seis
e vo lta ao display um repet indo a sequncia de maneira
intermitente.
-
19
Assim tem-se uma varredura que deve ser feit a numa frequncia t
al que
nossos olhos no sejam capazes de perceber que somente um display
est
sendo aceso de cada vez. Luz (2011) diz que, geralmente, quando
a
frequncia de varredura de mais ou menos 100Hz (10ms) se torna
no
percept vel ao nosso olho.
O tempo em que cada display ficar aceso um fator importante,
pois,
como se tem seis displays e deve-se usar uma frequncia de 100Hz
ou
10ms, ao se co locar 10ms para a varredura de cada display
tem-se um
total de 60ms. Sendo assim, como mostrado nas equaes abaixo,
deve-se
divid ir a frequncia de varredura por seis, ou seja,
aproximadamente
16,6Hz ou ainda 1,6ms que ser o tempo de permanncia de
acionamento
para cada display.
(1)
(2)
(3)
(4)
-
20
2.2.3 Diagrama de Blocos do Sistema
A Figura 2.5 mostra em um diagrama, como ser ia a ligao da placa
M1
com os motores ut ilizando os circuitos em Ponte H.
FIGURA 2.5 Diagrama representando o sistema.
O diagrama da Figura 2.5 representa o circuito a ser montado na
malet a
para o controle dos motores vert icais e hor izontais do ROV
VSI-02.
Nota-se que de acordo com a combinao de chaves do cicuito ponte
H
tem-se um sent ido de giro para cada motor, sendo que os motor
es
vert icais t rabalham em conjunto no sent ido de emerso ou
submerso e
os motores hor izontais t rabalham no sent ido de giro do prprio
ROV.
-
21
3: PLACA PROTTIPO M1 DE CONTROLE
A placa M1 (Figura 3.0) tem funo, pr imordia lmente didt ica,
mas
tambm pode ser ut il izada em uma sr ie de aplicaes mais
simples,
apesar de ter sido pro jetada como parte do co ntro le de
potncia dos
motores do ROV VSI-02.
A p laca M1 de teste fo i pro jetada, fabr icada e montada no
Laboratrio de
Prott ipos e Desenvo lvimento de Novas Tecno logias (LPDNT)
da
Universidade Federal de Ouro Preto (UFOP) e possui inser ido no
projeto
alguns resistores SMD (Surface Mount Resistors) - case 0805.
FIGURA 3.0 P laca M1.
A Figura 3.1 mostra o projeto da placa M1 feito em CAD e a
Figura 3.2
mostra os componentes SMDs que foram ut ilizados na sua fabr
icao.
-
22
FIGURA 3.1 Esquema da Placa M1 em CAD.
FONTE: DAL COL, 2010.
FIGURA 3.2 Componentes SMD da Placa M1
FONTE: DAL COL, 2010.
-
23
3.1 Microcontrolador PIC18F4550-I/P
O microcontrolador PIC18F4550 (Figura 3.3) muito usado
pr incipalmente pela facilidade de encontr - lo no comrcio, o
seu custo
acessvel, a facilidade na gravao, por possuir encapsulamento
PDIP
(permit e montagem em protoboard) e per ifr ico para comunicao
USB.
A seguir temos algumas caracter st icas do PIC18F4550 ret iradas
de seu
Data Sheet :
Memria FLASH para armazenamento de programa: 32 KBytes;
Memria SRAM para armazenamento de dados: 2 KBytes;
Memria EEPROM de dados: 256 Bytes;
Portas configurveis como entradas ou sadas digit ais: 35;
Portas configurveis como canais de entradas analgicas: 13;
Mdulo CCP (Capture/Compare/PWM ) ;
Porta paralela de 8-bits (SPP Streaming Parallel Port ) ;
Temporizadores de 8 e 16-bit s: 4;
Watchdog Timer;
Frequncia de operao de at 48MHz;
Mlt iplas fontes de interrupo (20);
Dois comparadores;
Per ifr icos avanados de comunicao: Porta de comunicao
ser ial, Porta de comunicao USB 2.0;
Arquitetura Havard, tecno logia RISC com um conjunto de 75
inst rues;
Pilha de 31 nveis.
Na Figura 3.4 pode-se ver a pinagem do microcontrolador com as
portas
de entrada e sada (RA, RB, RC, RD e RE), que podem ser
configuradas
por meio do programa, os canais de entradas analgicas (AN),
pinos de
alimentao (VDD e VSS), pinos de entrada para o oscilador
externo
(OSC), porta de comunicao ser ial (RX e TX) e porta de
comunicao
-
24
USB (D+ e D-). No Data Sheet tambm pode-se encontrar pinos co
m
mais de uma funo.
FIGURA 3.3 PIC18F4550 ligado na placa M1.
FIGURA 3.4 Dist r ibuio dos pinos no microcontrolador
PIC18F4550
FONTE: MICROCHIP (2009) .
-
25
O PIC18F4550 possui 35 pinos de entrada e s ada configurveis
agrupados em cinco grupos chamados PORT. Ento se tem PORT A,
PORT B, PORT C, PORT D e PORT E. Estes pinos esto ligados na
placa como mostra a Figura 3.5.
A maior ia desses pinos pode ser configurada como entrada ou
sada
( input/output) e tambm como outras funes.
FIGURA 3.5 Ligaes dos pinos do PIC18F4550 na Placa M1
FONTE: DAL COL, 2010.
-
26
3.2 Interface USB 2.0 (12MBPs/s)
Alm das vantagens citadas do PIC18F4550, uma das pr inc
ipais
caracter st icas deste possuir, integrado no prprio chip , a
porta USB,
permit indo assim, que se possa comunicar com o computador.
A comunicao USB somente necessita de duas linhas, os pinos 23 e
24
do microcontrolador, para permit ir a comunicao entre computador
e
PIC. As linhas D+ e D- (Figura 3.6) funcionam em modo diferenc
ial e no
conector USB, alm destas existem duas outras de alimentao, VCC
e
GND. Estas linhas esto dispostas de acordo com o t ipo de
conector
(Tipo A e Tipo B) na figura abaixo.
FIGURA 3.6 P inos que so ligadas aos conectores e t ipo de
conectores.
FONTE: SOUZA, 2012.
Sendo que o conector Tipo A o do computador e o conector Tipo B
o
da placa. O conector USB tambm funciona para alimentao da
placa.
-
27
4: FIRMWARE DE CONTROLE
Firmware um programa que gravado dentro de um s istema
embarcado, ou seja, diretamente no hardware (em sua memria
de
programa: ROM, EEPROM e FLASH), e nele esto cont idas todas
as
inst rues de funcionamento. Ele se difere do sof tware por
que
desenvo lvido para um hardware especfico, j um sof tware
desenvo lvido para hardwares em geral.
Como desenvo lvido especificamente para um determinado disposit
ivo
elet rnico, um f irmware depende da est rutura externa ligada
ao
microcontrolador, assim, se muda a est rutura d eve-se mudar o f
irmware.
Desta maneira, desenvo lveu-se um f irmware para o controle e
ind icao
das potncias referentes aos se is motores do ROV VSI -02, ut
ilizando a
placa M1 com o PIC18F4550 e os sof twares MPLAB e o PCWH as
CCS.
4.1 O MPLAB e o PCWH da CCS
Para desenvo lver o programa, em linguagem C, no
microcontrolador PIC,
foram ut ilizados os seguintes sof twares: o ambiente de desenvo
lvimento
MPLAB 8.5 e o compilador e gravador PCWH da CCS, que ir passar
as
inst rues feit as para o microcontrolador.
O MPLAB a inter face com o usur io fornecido gratuitamente
pela
Microchip ( fabr icante do microcontrolador PIC18F4550), para
gerar
cdigos de programao que sero conver t idos em linguagem de
mquina
para serem gravados na memria dos microcontroladores. Seu
ambiente
int egra o gerenciador de projetos, editor de programa, fonte,
compilador,
simulador entre outros, fazendo com que o programador p
reocupe-se
mais com a programao em si e o compilador assumir
responsabilidades como localizao da memria, oper aes matemt
icas
e lgicas, ver ificao de banco de memrias etc. Alm dessas
-
28
facilidades, o MPLAB um programa que roda na plataforma Windows
e
tem sua int er face como a Figura 4.0 .
FIGURA 4.0 Inter face Grfica do MPLAB 8.5.
O PCWH da CCS (Figura 4.1) o software responsvel por compilar
o
arquivo do f irmware escr ito em linguagem C no MPLAB, gerando
um
arquivo com extenso .h que deve ento ser descarregado na memria
do
microcontrolador. Segundo Pereira (2007 ), ele suporta toda a
linha de
microcontroladores PIC (sr ies PIC12, PIC14, PIC16 PIC18). O
compilador que ir t raduzir o programa que est em linguagem
C
( linguagem de alto nve l) para a linguagem de mquina apropr
iada ao
microcontrolador.
FIGURA 4.1 Inter face Grfica do PCWH da CCS.
-
29
FIGURA 4.2 Funo do Compilador.
FONTE: TORRES; AVELAR; OLIVEIRA JUNIOR.
-
30
4.2 Fluxograma
A Figura 4.3 mostra um fluxograma do programa feito para
melhor
entendimento do mesmo.
FIGURA 4.3 Fluxograma do Programa.
-
31
4.3 Detalhamento do Programa
A Figura 4.4 mostra a pr imeir a parte do programa desenvo lvido
que se
encontra no ANEXO.
//Firmware Desenvolvido
#include
#device adc = 10 //Configura o compilador para conversor A/D de
10 bits(tem que
ser declarado logo aps o PIC)
#include "SanUSB.h"
#use delay(clock=48000000)
#fuses HSPLL,PLL5,CPUDIV1,USBDIV,NOWDT,NOLVP
/*Matriz de 10 posies contendo o valor a ser enviado para a
porta D a fim de mostrar
o
dgito referente nos displays*/
byte const tabela[] ={ 0b01111111, //0
0b00001101, //1
0b10110111, //2
0b10011111, //3
0b11001101, //4
0b11011011, //5
0b11111011, //6
0b00001111, //7
0b11111111, //8
0b11011111,};//9
FIGURA 4.4 Cdigo (Parte 1) .
-
32
Nesta parte do programa define-se qual o microcontrolador ir ser
usado,
no caso, o PIC18F4550, configura -se o conversor A/D,
configura-se a
frequncia e ut iliza-se uma matr iz de dez posi es contendo o va
lor a ser
enviado para a porta D.
Os segmentos dos displays esto conectados em sequncia na porta D
do
PIC, ou seja, o segmento A est ligado no pino RD0, o segmento B
est
no pino RD1 e assim sucessivamente, de maneira a mostrar os
dgitos
referentes nos displays. Para que os displays mostrem o valor 00
(zero),
deve-se acender os segmentos A, B, C, D, E e F em do is displays
e estes
esto conectados em RD1, RD2, RD3, RD4, RD5 e RD6 ,
respect ivamente. E nto se deve enviar o nve l lgico 1 a estas
portas D,
ou seja, enviamos porta D a informa o em binr io 0b01111111 e
dessa
maneira faz-se com os outros dgitos , como mostra a informao
em
binr io na Figura 4.5 de acordo com a pinagem na Figura 4.6
Dgito
Apresentado
no Display
Valor em Binrio
(RD0:RD7)
RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
0 0 1 1 1 1 1 1 1
1 0 0 0 0 1 1 0 1
2 1 0 1 1 0 1 1 1
3 1 0 0 1 1 1 1 1
4 1 1 0 0 1 1 0 1
5 1 1 0 1 1 0 1 1
6 1 1 1 1 1 0 1 1
7 0 0 0 0 1 1 1 1
8 1 1 1 1 1 1 1 1
9 1 1 0 1 1 1 1 1
FIGURA 4.5 Valores Lgicos nas Portas D.
-
33
FIGURA 4.6 Ligaes das Portas D no Display.
FONTE: DAL COL, 2010.
Com os nve is lgicos mostrados na Figura 4.5 pode-se esto formar
a
matr iz. Isto evita que se tenha que colocar um comando para
cada
segmento de cada nmero que se queira formar, no caso, de 0 a 9,
como
por exemplo, o nmero zero (0), que ser ia escr ito como a Figura
4.7.
output_high (PIN_D7);
output_high (PIN_D6);
output_high (PIN_D5);
output_high (PIN_D4);
output_high (PIN_D3);
output_high (PIN_D2);
output_high (PIN_D1);
output_low (PIN_D0);
FIGURA 4.7 Exemplo de Programao sem a Matr iz.
E assim evita-se uma sr ie de outros comandos, que ser iam
necessr io s
com esta implementao.
Visto isso, se pode passar para a segunda parte do programa
(Figura 4.8)
em que teremos a lgica do programa.
-
34
void main(){
//Declarao das variveis
int uni2,uni1,uni,i;
float
aux,aux1,aux2,volts2,volts1,volts,conversao5,conversao6,conversao7;
volts = 0;
volts1 = 0;
volts2 = 0;
setup_adc (adc_clock_div_8); //Este comando tem que vir depois
das declaraes das
variveis
//Estrutura lgica do programa
while (1)
{
RESTART_WDT(); //Inicia o WATCHDOG TIMER
set_adc_channel(5); //Seleciona o canal AN5 do conversor A/D
para leitura
delay_us(10);
conversao5 = read_adc(); //Inicia converso AD
conversao5 = (conversao5*5);
volts = (conversao5/1023); //Faz regra de 3 para converter o
valor em Volts
RESTART_WDT();
set_adc_channel(6); //Seleciona o canal AN6 do conversor A/D
para leitura
delay_us(10);
conversao6 = read_adc();
conversao6 = (conversao6*5);
volts1 = (conversao6/1023);
RESTART_WDT();
-
35
set_adc_channel(7); //Seleciona o canal AN7 do conversor A/D
para leitura
delay_us(10);
conversao7 = read_adc();
conversao7 = (conversao7*5);
volts2 = (conversao7/1023);
FIGURA 4.8 Cdigo (Parte 2).
Nesta parte temos as declaraes das var iveis ut ilizadas, sendo
que as
var iveis voltsX recebem 0 no comeo para que na converso bits
para
volts no haja nenhum erro.
Da tem-se a est rutura de repet io while , que pode ser usada
quando o
nmero de repet ies no fixo (ASCENCIO; CAMPOS, 2002). Este
t ipo de comando se repete at a condio assumir valor falso.
No
programa fe ito ut iliza-se o valor 1 (um), significando que a
condio
ser sempre verdade ira, sendo assim o programa ir se repet
ir
indefinidamente.
Depo is iniciamos o WHATCHDOG TIMER com o comando
RESTART_WDT; que tem a funo de dar o reset no
microcontrolador.
Essa funo tem objet ivo de evitar que o processador fique parado
numa
determinada rot ina ou que seja desviado para outro local, ou
seja, evit a
que o programa trave.
Seleciona- se ento, o canal a ser ut ilizado ser ut ilizado para
le itura, no
caso, usa-se os canais 5, 6 e 7 referentes portas RE0, RE1 e RE2
ou
AN5, AN6 e AN7. Em seguida, inic ia -se a converso A/D, faz-se
uma
regra de t rs para ut ilizar -se o nmero lido em volts , visto o
valor a ser
lido ser em bits. Ento teremos:
(5)
-
36
E estes valores obt idos so lidos pelas var iveis volts, volts1
e volts2 do
programa.
Na Figura 4.9 tem-se a terceira parte do cdigo.
//Comandos referente ao par de leds MOTOR ROV-H2
if(volts < 2.487) {
output_low (PIN_B7);
output_low (PIN_B6);
output_low (PIN_A3);
output_low (PIN_A2);
output_high (PIN_A1);
output_low (PIN_A0);
aux = 5 - (volts*2);
uni = aux*20,49;
output_D(tabela[uni%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_A4); // Habilita display 1
delay_ms (2); // Aguarda 1ms para dar uma pausa no PIC
output_low (PIN_A4); // Desabilita display 1
output_D (tabela[uni/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_A5); // Habilita display 2
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A5); // Desabilita display 2
}
FIGURA 4.9 Cdigo (Parte 3)
-
37
Estes comandos so referentes ao motor H2, mas tambm podem
ser
at ribudos ao motor H1 e aos motores V14. A diferena que nos
motores V14 os leds indicados so os de emerso e submerso.
Ao se ler a vo ltagem 0
-
38
FIGURA 4.10 Vo ltagem Medida.
O valor 2,487 fo i esco lhido para que se possa fazer o comando
seguinte,
em que ao se ter um valor prximo de 2,5, nenhum dos do is leds
de
luminescncia azul acenda, indicando que o motor ou os motores
no
esto girando para nenhum dos lados.
O comando output_D(tabela[uniX%10]) ir fazer com que seja
apresentado num par de display o valor referente a unidade, ou
seja, o
valor apresentado do lado direito do par de displays. J o
comando
uniX%10 faz com que se pegue o valor obt ido na mult iplicao,
divida -o
por 10 e o resto da diviso o valor a ser ut ilizado. Em seguida,
tem-se
o comando output_high (PIN_XX) que define qual display ir ligar
e este
ficar ligado por um tempo devido ao comando delay ms (2),
fazendo que
com o display f ique ligado por um intervalo de 2 milisegundos,
e depo is
pelo comando output_low (PIN_XX) ele desligado pelo mesmo
tempo
de 2 milisegundos. Este valor fo i ut ilizado por ser o maior
valor int eiro e
mais prximo de 1,6s, que fo i o valor calculado e como no se
notou
nenhum problema em seu uso fo i o valor adotado na programao
de
todos os motores.
Ainda tem-se o comando output_D(tabela[uniX/10]) seguido dos
mesmos
comandos explicados anter iormente, mas se difere daquele por
que , aps
-
39
fazer a leitura da vo ltagem e realizar os clculos , o valor a
ser ut ilizado
no ser o resto da diviso mas sim o va lo r da diviso por 10.
Ento tem-se que ao ser lido este cdigo de programao, a placa
ir
indicar os valores de 99 00 e acender os leds de cor azul como
mostra
a Figura 4.11.
FIGURA 4.11 Indicao da Placa Confo rme Terce ira parte da
Programao.
Aps esta sequncia de comandos t em-se agora quando a vo ltagem
lida
est entre 2,487 e 2,512 (Figura 4.12) .
if((volts >= 2.487)&&(volts
-
40
output_high (PIN_A4); // Habilita display 1
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A4); // Desabilita display 1
output_D (tabela[uni/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_A5); // Habilita display 2
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A5); // Desabilita display 2
}
FIGURA 4.12 Cdigo (Parte 4).
Esta sequncia de comandos tem a mesma ideia da anter ior, s que
nesta,
enquanto a condio for sat isfeita, 2 ,487< voltsX
-
41
Na lt ima sequncia de comandos (Figura 4.14) tem-se agora quando
a
vo ltagem lida maior que 2,512V. Como fr isamos o pr incpio
o
mesmo, mas os clculos realizados so diferentes. Ao invs de
subtrair
(voltsX*2) de 5, subtrai-se 5 de (voltsX*2), pois neste teremos
de fazer a
contagem nos displays comeando de 00 e terminando em 99.
if (volts > 2.512) {
output_low (PIN_B7);
output_low (PIN_B6);
output_low (PIN_A3);
output_low (PIN_A2);
output_low (PIN_A1);
output_high (PIN_A0);
aux = (volts*2) - 5;
uni = aux*20,4;
output_D(tabela[uni%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_A4); // Habilita display 1
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A4); // Desabilita display 1
output_D (tabela[uni/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_A5); // Habilita display 2
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A5); // Desabilita display 2
}
FIGURA 4.14 Cdigo (Parte 5).
-
42
Esta sequncia de comando s ir fazer com que a p laca se comporte
como
mostra a Figura 4.15.
FIGURA 4.15 Indicao da Placa Confo rme Quinta parte da
Programao.
FONTE: Prpria. 30 de Nov. de 2012.
Para o conversor AN7 tem-se o mesmo pr incpio de programao e
lgica
do AN5 e AN6, mas o led de luminescncia azul ir indicar a emerso
e a
submerso do ROV e correspondente aos quatro motores vert
icais.
-
43
5:CONCLUSES
Este trabalho teve o propsito de desenvo lver um subsistema para
o
controle de potncia de um veculo remotamente submersvel, um
f irmware . Este f irmware fo i fe ito e explicado de acordo com
os
conhecimentos obt idos durante seu desenvolvimento.
A placa M1, correspondeu ao pro jeto proposto e de maneira
sucint a
apresentou os resultados desejados, visto que os displays de
leds sete-
segmentos apresentaram os valores correspondentes aos valores
lidos no
conversor A/D de acordo com sua mudana no pot enci metro.
Estudou-se e apr imorou-se os conhecimentos sobre
microcontroladores,
de uma mane ira geral e pr inc ipalmente o microcontrolador
PIC18F4550
da Microchip , sobre veculos submersveis remotamente controlados
e
suas definies e sobre programao em microcontroladores em
geral.
Ao desenvo lver esse projeto, obtm-se uma sr ie de conhecimento
s tanto
sobre os ROVs quanto sobre a placa prott ipo, tornado possvel
a
cont inuidade do t rabalho e o desenvo lvimento do controle
propr iamente
dito , a maleta.
-
44
REFERNCIAS
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da
Programao de Computadores, Algoritmos, Pascal e C/C++ . Prent
ice
Hall, 2002. So Paulo.
DAL COL, R. N. Gravando PICs Usando o Compilador PCWH da
CCS e o Gravador e Depurador MPLAB da Microch ip com
Hardware
ICD2BR
da LabTools(PIC18F4550-I/P). 2010. Manual interno do
laboratrio LPDNT Verso 1.1 . Departamento de Engenhar ia de
Controle
e Automao, Esco la de Minas, Universidade Federal de Ouro
Preto,
Ouro Preto MG.
DISPLAY de sete Segmentos com 8051. Disponvel em: <
ht tp://2.bp.blogspot .com/_kf8-
LYvEmEc/THamVbBw_QI/AAAAAAAABic/ag93t4VzD98/s1600/display
. jpg> Acesso em: 11 nov. 2012.
LOCAL do desastre da Air France tem o maior mapeamento
submarino do mundo. 2011. Disponvel em: <
ht tp://www.portosdeportugal.pt /sart igo/ index.php?x=5356>
Acesso em:
20 nov. 2012.
LUZ, C. E. S. , Programando Microcontroladores PIC em
Linguagem
C Com base no PIC18F4520. Teoria e Prt ica. Editora Ensino
Profissional, 2011. So Paulo.
MAGALHES, P. H. V. Desenvolvimento de um Submersve l
Remotamente Operado de Baixo custo e Caracterizao dos
Sistemas
de Propulso e Vetorizao de Empuxo por Hlice e Jato de gua.
2007. 194 p. Tese (Programa de Ps-Graduao em Engenhar ia
Mecnica). Universidade Federal de Minas Ge rais. Belo Hor
izonte.
-
45
MICROCHIP. PIC18F2455/2550/4455/4550 Data Sheet.
28/40/44-Pin,
High-Performance, Enhanced Flash, USB Microcontrollers wit h
nanoWatt Techno logy. 2009. Microchip Techno logy Inc.
PATA, C., ROV (Remotely Operated Vehicle). 2012. Disponve l
em:
Acesso
em: 04 dez. 2012.
PATSKO, L. F. , Tutorial da montagem Ponte H. 2006.
Tutorial.
Maxwll Bohr. Inst rumentaao Eletrnica. Pequisas e Desenvo
lvimento de
Produtos.
PEREIRA, F., Microcontroladores PIC, Programao em C . 6a
edio,
Editora r ica, 2007. So Paulo.
SOUZA, V. A., Comunicao USB com o PIC. Art igo. Cerne,
Conhecimento para o Desenvo lvimento.
TORRES, F. E.; MARTINS, H. R.; AVELAR, B. S.; OLIVEIRA
JUNIOR, J. H. ; CORREA, M. F. S. , Aposti la Didtica
PICMinas.
Sistema Microcontrolados. PICMinas. Axoon. Inova UFMG.
-
46
ANEXO
//Firmware Desenvolvido
#include
#device adc = 10 //Configura o compilador para conversor A/D de
10 bits(tem que
ser declarado logo aps o PIC)
#include "SanUSB.h"
#use delay(clock=48000000)
#fuses HSPLL,PLL5,CPUDIV1,USBDIV,NOWDT,NOLVP
/*Matriz de 10 posies contendo o valor a ser enviado para a
porta D a fim de mostrar
o
dgito referente nos displays*/
byte const tabela[] ={ 0b01111111, //0
0b00001101, //1
0b10110111, //2
0b10011111, //3
0b11001101, //4
0b11011011, //5
0b11111011, //6
0b00001111, //7
0b11111111, //8
0b11011111,};//9
void main(){
//Declarao das variveis
int uni2,uni1,uni,i;
-
47
float
aux,aux1,aux2,volts2,volts1,volts,conversao5,conversao6,conversao7;
volts = 0;
volts1 = 0;
volts2 = 0;
setup_adc (adc_clock_div_8); //Este comando tem que vir depois
das declaraes das
variveis
//Estrutura lgica do programa
while (1)
{
RESTART_WDT(); //Inicia o WATCHDOG TIMER
set_adc_channel(5); //Seleciona o canal AN5 do conversor A/D
para leitura
delay_us(10);
conversao5 = read_adc(); //Inicia converso AD
conversao5 = (conversao5*5);
volts = (conversao5/1023); //Faz regra de 3 para converter o
valor em Volts
RESTART_WDT();
set_adc_channel(6); //Seleciona o canal AN6 do conversor A/D
para leitura
delay_us(10);
conversao6 = read_adc();
conversao6 = (conversao6*5);
volts1 = (conversao6/1023);
RESTART_WDT();
set_adc_channel(7); //Seleciona o canal AN7 do conversor A/D
para leitura
delay_us(10);
conversao7 = read_adc();
conversao7 = (conversao7*5);
volts2 = (conversao7/1023);
-
48
//Comandos referente ao par de leds MOTOR ROV-H2
if(volts < 2.487) {
output_low (PIN_B7);
output_low (PIN_B6);
output_low (PIN_A3);
output_low (PIN_A2);
output_high (PIN_A1);
output_low (PIN_A0);
aux = 5 - (volts*2);
uni = aux*20,49;
output_D(tabela[uni%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_A4); // Habilita display 1
delay_ms (2); // Aguarda 1ms para dar uma pausa no PIC
output_low (PIN_A4); // Desabilita display 1
output_D (tabela[uni/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_A5); // Habilita display 2
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A5); // Desabilita display 2
}
if((volts >= 2.487)&&(volts
-
49
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A4); // Desabilita display 1
output_D (tabela[uni/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_A5); // Habilita display 2
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A5); // Desabilita display 2
}
if (volts > 2.512) {
output_low (PIN_B7);
output_low (PIN_B6);
output_low (PIN_A3);
output_low (PIN_A2);
output_low (PIN_A1);
output_high (PIN_A0);
aux = (volts*2) - 5;
uni = aux*20,4;
output_D(tabela[uni%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_A4); // Habilita display 1
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A4); // Desabilita display 1
output_D (tabela[uni/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_A5); // Habilita display 2
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_A5); // Desabilita display 2
}
//Comandos referente ao par de leds MOTOR ROV-H1
-
50
if(volts1 < 2.487) {
output_low (PIN_B7);
output_low (PIN_B6);
output_high (PIN_A3);
output_low (PIN_A2);
output_low (PIN_A1);
output_low (PIN_A0);
aux1 = 5 - (volts1*2);
uni1 = aux1*20;
output_D(tabela[uni1%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_B2); // Habilita display 3
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B2); // Desabilita display 3
output_D (tabela[uni1/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_B3); // Habilita display 4
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B3); // Desabilita display 4
}
if((volts1 >= 2.487)&&(volts1
-
51
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B2); // Desabilita display 3
output_D (tabela[uni1/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_B3); // Habilita display 4
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B3); // Desabilita display 4
}
if (volts1 > 2.512) {
output_low (PIN_B7);
output_low (PIN_B6);
output_low (PIN_A3);
output_high (PIN_A2);
output_low (PIN_A1);
output_low (PIN_A0);
aux1 = (volts1*2) - 5;
uni1 = aux1*20;
output_D(tabela[uni1%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_B2); // Habilita display 3
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B2); // Desabilita display 3
output_D (tabela[uni1/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_B3); // Habilita display 4
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B3); // Desabilita display 4
}
//Comandos referente ao par de leds MOTOR ROV-V14
-
52
if(volts2 < 2.487) {
output_high (PIN_B7);
output_low (PIN_B6);
output_low (PIN_A3);
output_low (PIN_A2);
output_low (PIN_A1);
output_low (PIN_A0);
aux2 = 5 - (volts2*2);
uni2 = aux2*20,4;
output_D(tabela[uni2%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_B4); // Habilita display 3
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B4); // Desabilita display 3
output_D (tabela[uni2/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_B5); // Habilita display 4
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B5); // Desabilita display 4
}
if((volts2 >= 2.487)&&(volts2
-
53
output_low (PIN_B4); // Desabilita display 5
output_D (tabela[uni2/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_B5); // Habilita display 6
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B5); // Desabilita display 6
}
if (volts2 > 2.512) {
output_low (PIN_B7);
output_high (PIN_B6);
output_low (PIN_A3);
output_low (PIN_A2);
output_low (PIN_A1);
output_low (PIN_A0);
aux2 = (volts2*2) - 5;
uni2 = aux2*20,4;
output_D(tabela[uni2%10]); // Apresenta
Digito[unidade_do_contador]
output_high (PIN_B4); // Habilita display 5
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B4); // Desabilita display 5
output_D (tabela[uni2/10]); // Apresenta
Digito[dezena_do_contador]
output_high (PIN_B5); // Habilita display 6
delay_ms (2); // Aguarda 2ms para dar uma pausa no PIC
output_low (PIN_B5); // Desabilita display 6
}
}
}