Jarbas Alexandre Duarte Frade

54
UNIVERSIDADE FEDERAL DE OURO PRETO ESCOLA DE MINAS COLEGIADO DO CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO - CECAU JARBAS ALEXANDRE DUARTE FRADE SUBSISTEMA MICROCONTROLADO PARA CONTROLE E INDICAÇÃO DE POTÊNCIA APLICADA A MOTORES ELÉTRICOS DE CORRENTE CONTÍNUA DE VEÍCULOS SUBMERSÍVEIS REMOTAMENTE CONTROLADOS (ROVs) MONOGRAFIA DE GRADUAÇÃO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO Ouro Preto, 2012

description

SUBSISTEMA MICROCONTROLADO PARA CONTROLE E INDICAÇÃO DE POTÊNCIA APLICADA A MOTORES ELÉTRICOS DE CORRENTE CONTÍNUA DE VEÍCULOS SUBMERSÍVEIS REMOTAMENTE CONTROLADOS (ROVs)

Transcript of Jarbas Alexandre Duarte Frade

  • 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

    }

    }

    }