145
SISTEMA ELETRO-RESISTIVO BASEADO EM DSP PARA ESCOAMENTOS GÁS-LÍQUIDO Laert Ferreira da Silva Neto Projeto de Graduação apresentado ao Curso de Engenharia Elétrica da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Engenheiro Eletricista Orientador: José Luiz da Silva Neto Rio de Janeiro Agosto de 2015

SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

Embed Size (px)

Citation preview

Page 1: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

SISTEMA ELETRO-RESISTIVO BASEADO EM DSP

PARA ESCOAMENTOS GÁS-LÍQUIDO

Laert Ferreira da Silva Neto

Projeto de Graduação apresentado ao Curso de

Engenharia Elétrica da Escola Politécnica,

Universidade Federal do Rio de Janeiro, como

parte dos requisitos necessários à obtenção do

título de Engenheiro Eletricista

Orientador: José Luiz da Silva Neto

Rio de Janeiro

Agosto de 2015

Page 2: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

SISTEMA ELETRO-RESISTIVO BASEADO EM DSP

PARA ESCOAMENTOS GÁS-LÍQUIDO

Laert Ferreira da Silva Neto

PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO DE

ENGENHARIA ELÉTRICA DA ESCOLA POLITÉCNICA DA UNIVERSIDADE

FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS

PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO ELETRICISTA

Orientador:

_________________________________________________

Prof. José Luiz da Silva Neto, Ph. D.

Examinador:

_________________________________________________

Prof. Juliana Braga Rodrigues Loureiro, D. Sc.

Examinador:

_________________________________________________

Prof. Paulo Laranjeira da Cunha Lage, D.Sc.

Examinador:

_________________________________________________

Prof. Sergio Sami Hazan, Ph.D.

Rio de Janeiro – RJ, Brasil

Agosto de 2015

Page 3: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

iii

Silva Neto, Laert Ferreira

Sistema Eletro-Resistivo Baseado em DSP para

Escoamentos Gás-Líquido/ Laert Ferreira da Silva Neto.

– UFRJ/ Escola Politécnica, 2015

xi, 133 p.: il.; 29,7 cm.

Orientador: José Luiz da Silva Neto.

Projeto de Graduação – UFRJ/ Escola Politécnica/

Curso de Engenharia Elétrica, 2015

Referências Bibliográficas: p. 80-81

1. Instrumentação. 2. Sensor Eletro-Resistivo. 3.

Escoamentos Bifásicos. 4. DSP. I. Silva Neto, José Luiz.

II. Universidade Federal do Rio de Janeiro. III Sistema

Eletro-Resistivo Baseado em DSP para Escoamentos

Gás-Líquido

Page 4: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

iv

DEDICATÓRIA

Dedico este trabalho a minha amada Andréa Queiroz.

Page 5: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

v

Resumo do Projeto de Graduação apresentado à Escola Politécnica/UFRJ como parte

dos requisitos necessários para a obtenção do grau de Engenheiro Eletricista.

SISTEMA ELETRO-RESISTIVO BASEADO EM DSP PARA ESCOAMENTOS

GÁS-LÍQUIDO

Laert Ferreira da Silva Neto

Agosto/2015

Orientador: José Luiz da Silva Neto

Curso: Engenharia Elétrica

A caracterização de escoamentos multifásicos através de ferramentas e

instrumentos adequados, pode conduzir a otimização de processos e sistemas. Assim, o

conhecimento da fração desses fluidos é fundamental para determinação de algumas

propriedades tais como coeficiente de transferência de calor e a perda de carga ao longo

da tubulação.

O sensor eletro-resistivo é capaz de determinar alguns parâmetros do escoamento

bifásico, tais como velocidade e frequência de passagem de bolhas. O princípio básico de

funcionamento do sensor eletro-resistivo é a diferença de resistividade entre o meio

líquido e o gás. Com a passagem do meio líquido, teremos uma menor resistividade e

consequentemente um sinal de nível baixo. Na passagem do gás, teremos uma maior

resistividade e consequentemente um sinal de maior amplitude.

A proposta deste trabalho é criar um instrumento baseado em DSP que execute a

medição, digitalização do sinal, com rejeição de sinais discrepantes, e indique os

resultados em tempo real ao usuário, que, opcionalmente poderá também fazer aquisição

de dados.

Palavras-Chave: Sensor Eletro-Resistivo, DSP, escoamento multifásico

Page 6: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

vi

Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment of

the requirements for the degree of Engineer

ELECTRO-RESISTIVE BASED ON DSP SYSTEM FOR GAS FLOW-NET

Laert Ferreira da Silva Neto

August/2015

Advisor: José Luiz da Silva Neto

Course: Electrical Engineering

The characterization of multiphase flows through appropriate tools and

instruments can lead to optimization of processes and systems. Thus, knowledge of the

fraction of these fluids is critical to determine some properties such as heat transfer

coefficient and pressure loss along the flow.

The electro-resistive sensor is able to determine some parameters of two-phase

flow, such as speed and frequency of bubbles passing. The basic principle of operation of

the electro-resistive sensor is the difference in resistivity between the liquid medium and

the gas. With the passage of liquid medium will have a lower resistivity and thus a low

level signal. The passage of gas, we have a higher resistivity and therefore a sign of greater

amplitude.

The purpose of this work is to create a DSP-based tool that performs

measurement, signal digitization, with rejection of disparate signs, and enter the results

in real time to the user, which optionally can also make data acquisition.

Keyword: Electro-resistive sensor, DSP, multiphase flow

Page 7: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

vii

Sumário

1– Introdução .................................................................................................................... 1

1.1 – Motivação ............................................................................................................ 1

1.1.1 – Descrição geral do problema ......................................................................... 1

1.1.2 – Utilização dos Sensores Eletro-Resistivos .................................................... 3

1.2 – Objetivo ............................................................................................................... 3

1.3 – Organização do texto ........................................................................................... 3

2 – Aparato Experimental e apresentação das ferramentas .............................................. 5

2.1 – Ferramentas e equipamentos da Bancada experimental ...................................... 5

2.2 – O Sensor Eletro-Resistivo .................................................................................... 7

2.3 – Circuito Analógico ............................................................................................... 9

2.4 – Comunicação Serial ........................................................................................... 11

2.4.1 – Transmissão Assíncrona .............................................................................. 12

2.4.2 – Transmissão Síncrona ................................................................................. 13

2.5 – O critério de rejeição de Chauvenet ................................................................... 13

2.6 – O critério de Lewis e Davidson (1983) .............................................................. 15

2.7 – Teclado Matricial e Display LCD de caracteres ................................................ 16

2.7.1 – O Teclado Matricial .................................................................................... 16

2.7.2 – O Display de caracteres ............................................................................... 17

2.8 - O DSP F28335 da Texas Instruments .................................................................... 20

2.8.1 – Características Gerais .................................................................................. 20

2.8.4 – Módulo ADC (Analog to Digital Converter) .............................................. 23

2.8.5 - Interface de Comunicação Serial (SCI) ....................................................... 24

2.9 – Shadow Sizer ...................................................................................................... 25

3 – Parâmetros de Projeto ............................................................................................... 27

3.1 – Análise espectral e determinação da frequência de amostragem ....................... 27

3.2 - Filtro Passa Alta Digital .................................................................................... 28

3.2.1 – Função de transferência em tempo contínuo ............................................... 29

3.2.2 - Função de transferência em tempo discreto e equação a diferenças ........... 30

3.3 – Detecções falsas dos sensores Eletro-Resistivos ............................................... 30

3.4 – Algoritmo de Digitalização do sinal e Obtenção de parâmetros ........................ 32

3.5 – Critério de Chauvenet adaptado para operar em tempo real .............................. 35

Page 8: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

viii

4 – Utilização das ferramentas e montagem da bancada experimental .......................... 37

4.1 – Programação do DSP F28335 da Texas Instruments ......................................... 37

4.1.1 – Configuração da CPU, Inicialização de periféricos e interrupções ............. 37

4.1.2 – Configuração das entradas ADC ................................................................. 39

4.1.3 – Configuração de GPIO ................................................................................ 42

4.1.4 – Interface de Comunicação Serial (SCI) ....................................................... 45

4.2 – Programa no software CVI para comunicação serial com DSP e aquisição de

dados ........................................................................................................................... 46

4.3 – Dinâmica do funcionamento do medidor eletro-resistivo .................................. 48

4.4 – Montagem da Bancada experimental ................................................................. 49

4.4.1 – Bancada Experimental 1 ............................................................................. 49

4.4.1 – Bancada Experimental 2 ............................................................................. 50

5 – Resultados Obtidos e Validação com Shadow Sizer ................................................ 53

5.1 – Menu de comunicação com o usuário ................................................................ 53

5.2 – Utilização de um sinal com defasagem controlada via D/A da PCI 6014 ......... 57

5.2.1 – Verificação do Período de amostragem ...................................................... 58

5.2.2 – Resultados obtidos para três casos testados ............................................... 58

5.3 – Utilização do microprocessador na Bancada experimental ............................... 62

5.3.1 – Estudo dos tempos associados a execução de códigos ................................ 62

. 5.3.2 – Sinais analógicos e digitais obtidos .................................................... 70

5.3.3 – Validação com o Shadow Sizer ................................................................... 71

6 – Considerações Finais e trabalhos futuros ................................................................. 79

7 –Referências Bibliográficas ......................................................................................... 81

ANEXO 1 – Código utilizado no DSP ........................................................................... 83

A1.1 – Inicialização de Variáveis e funções ............................................................... 83

A1.2 – Função Main ................................................................................................... 86

A1.2.1 – Inicialização de periféricos e configurações gerais .................................. 86

A1.2.2 – Menu de interação com usuário ............................................................... 88

A1.2.3 – Região de alternância com interrupção .................................................... 95

A1.4 – Funções Gerais Utilizadas no código ............................................................ 102

ANEXO 2 – Código utilizado no CVI ......................................................................... 111

ANEXO 3 – Função ADC_isr utilizando o critério de Lewis e Davidson ................... 121

Page 9: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

ix

Lista de Figuras

Figura 1 – Padrões de escoamento em dutos horizontais ................................................. 2

Figura 2 - Padrões de escoamento em dutos verticais ...................................................... 2

Figura 3 - Diagrama esquemático do arranjo experimental e o fluxo de dados ............... 5

Figura 4 - Ilustração do sensor Eletro-Resistivo [4] ......................................................... 7

Figura 5 - Sensores eletro-resistivos construídos ............................................................. 8

Figura 6 - Sensores eletro-resistivos em paralelo [5] ....................................................... 9

Figura 7 – Circuito utilizado ............................................................................................. 9

Figura 8 - Transmissão Assíncrona ................................................................................ 12

Figura 9 - Critério de rejeição de Chauvenet .................................................................. 13

Figura 10 - Sinal ideal de detecção de passagem de uma bolha ..................................... 15

Figura 11 - Teclado matricial utilizado .......................................................................... 17

Figura 12 - Display LCD de caractere ............................................................................ 17

Figura 13 - Estrutura interna do F28335 [7] ................................................................... 20

Figura 14 - Diagrama de blocos do GPIO [7] ................................................................ 21

Figura 15 - GPIO organizado por multiplexador [7] ...................................................... 22

Figura 16 - circuito típico de ADCIN [8] ....................................................................... 23

Figura 17 - Câmera NanoSense Mk III, 2080 quadros por segundo a 1.3 mega pixel [6]

........................................................................................................................................ 25

Figura 18 - Fonte de Luz [6] .......................................................................................... 25

Figura 19 - Grandezas mensuradas pelo software “Dynamic Studio” ........................... 26

Figura 20 - DFT do sinal do circuito analógico.............................................................. 27

Figura 21 - Resultado da aplicação do filtro passa alta .................................................. 29

Figura 22 - Problemas relacionados a intrusão do sensor [5] ......................................... 31

Figura 23 – Deformação da frente da bolha gerando altos valores de velocidade ......... 32

Figura 24 - Sinal característico e sua digitalização ........................................................ 33

Figura 25 - Par de sinais ideais ....................................................................................... 33

Figura 26 - sinal digital e seu diferencial ....................................................................... 34

Figura 27 – Esquemático de transição do menu ............................................................. 44

Figura 28 - Modo de transmissão de bytes via porta serial ............................................ 45

Figura 29 - Programa feito em CVI ................................................................................ 46

Figura 30 - mensagem padrão de erro do programa ....................................................... 47

Figura 31 - Dinâmica de funcionamento do medidor eletro-resistivo ............................ 48

Figura 32 - Placa PCI 6014 ............................................................................................ 49

Figura 33 - Diagrama de blocos Simulink ...................................................................... 50

Figura 34 - Aparato experimental ................................................................................... 51

Figura 35 - Circuito analógico montado ......................................................................... 51

Figura 36 - Circuito analógico, DSP, teclado matricial e Display ................................. 52

Figura 37 - Mensagem e entrada do DSP ....................................................................... 53

Figura 38 - Primeiro estágio do menu ............................................................................ 53

Page 10: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

x

Figura 39 - segundo estágio do menu ............................................................................. 54

Figura 40 - distância entre sondas .................................................................................. 54

Figura 41 - Configuração de unidades ............................................................................ 55

Figura 42 - Configuração de unidade de velocidade ...................................................... 55

Figura 43 - Unidades de frequência ................................................................................ 56

Figura 44 - Mensagem indicando ausência de sinal na entrada ..................................... 56

Figura 45 - Mensagem indicando cálculo de parâmetros estatísticos ............................ 57

Figura 46 - Resultado indicado na tela do Display ......................................................... 57

Figura 47 - Sinal digital medido pelo osciloscópio ........................................................ 58

Figura 48 - Sinal da sonda e sua digitalização ............................................................... 59

Figura 49 - Sinais digitalizados e defasados ................................................................... 59

Figura 50 - Histograma de velocidade para um sinal defasado de 10 posições ............. 60

Figura 51 - Histograma de velocidade para um sinal defasado de 15 posições ............. 61

Figura 52 - Histograma de velocidade para sinal defasado de 20 posições ................... 61

Figura 53 - Período de amostragem e tempo de execução de instruções ....................... 63

Figura 54 - Período e tempo gasto com instruções versus frequência de bolhas ........... 65

Figura 55 - Frequência de bolhas máxima e tempo gasto com instruções associado ..... 66

Figura 56 - Frequência de bolhas máxima e tempo gasto com instruções associado ..... 67

Figura 57 - Frequência de bolhas máxima e tempo gasto com instruções associado,

sistema 1 por 6 ................................................................................................................ 68

Figura 58 - Tempo gasto em instruções versus período de aquisição ............................ 69

Figura 59 - Período máximo de aquisição de dados ....................................................... 69

Figura 60 - Sinais analógicos das sondas ....................................................................... 70

Figura 61 - Sinais digitais dos sensores .......................................................................... 70

Figura 62 - Sonda 1, construída com agulha de acupuntura e isolada com tinta isolante

........................................................................................................................................ 71

Figura 63 - Sonda 2, construída com fio rígido .............................................................. 72

Figura 64 - Aparato experimental com a câmera e o LED ............................................. 72

Figura 65 - Medição da vazão de injeção de gás por um rotâmetro ............................... 73

Figura 66 - Bolha deformada pelo sensor ....................................................................... 74

Figura 67 - Distribuição de velocidades para a sonda 1 ................................................. 75

Figura 68 - Sonda 2 em contato com uma bolha ............................................................ 75

Figura 69 - Distribuição de velocidades obtidas pelo Shadow Sizer ............................. 77

Figura 70 - Distribuição de velocidades obtidas pelo sensor eletro-resistivo ................ 77

Figura 71 - Distribuição de frequência de bolhas ........................................................... 78

Figura 72 - Esteira de bolhas formada após a passagem de uma bolha de Taylor ......... 78

Page 11: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

xi

Lista de Tabelas

Tabela 1 - Critério de Chauvenet .................................................................................... 14

Tabela 2 - Instruções aplicáveis ao display de caractere ................................................ 19

Tabela 3 - Arranjo de pinos GPIO no display ................................................................ 42

Tabela 4 - Arranjo de pinos GPIO no teclado ................................................................ 42

Tabela 5- Dados para cálculo de velocidade pelo Shadow Sizer ................................... 76

Page 12: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

1

1– Introdução

1.1 – Motivação

1.1.1 – Descrição geral do problema

O estudo de escoamentos multifásicos possui uma grande importância em

diversos sistemas e setores da indústria (como a produção de energia nuclear, indústria

de alimentos e extração de petróleo) e na validação experimental de modelos teóricos e

simulações.

Estes tipos de escoamentos, que possuem diferentes fases (não necessariamente

diferentes estados físicos da matéria), quando devidamente caracterizados conduzem a

uma otimização de processos e consequentemente elevam a segurança e robustez de um

sistema associado.

Um exemplo que ilustra a importância deste tipo de caracterização é o

resfriamento de reatores nucleares. A água, responsável pela redução de temperatura, é

transportada comumente com a sua fase gasosa, formando um escoamento bifásico. A

garantia do bom desempenho deste processo está diretamente associada as características

do fluido em escoamento (água-ar).

Os escoamentos multifásicos em tubulações podem assumir diferentes formas de

organização das fases. Estas são classificadas de acordo com o arranjo espacial do duto,

vertical ou horizontal. Em geral, em dutos longos podem ocorrer até diferentes padrões

de escoamento dependendo do diâmetro do tubo, razão volumétrica entre fases e

propriedades de fases na região de interesse. O tipo de regime de escoamento está

diretamente relacionado a características como a perda de carga (perda de pressão ao

longo do escoamento) e coeficiente de transferência de calor.

Os padrões de escoamento em tubos horizontais podem ser classificados da

seguinte forma: “estratificado plano”, “bolhas dispersas”, “bolhas alongadas”, “slug” e

“anular”. Na figura 1 podemos ver uma ilustração para cada padrão mencionado.

Page 13: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

2

Figura 1 – Padrões de escoamento em dutos horizontais

Os padrões de escoamento em tubos verticais podem ser classificados da seguinte

forma: “bolhas dispersas”, “slug”, “churn” e “anular”. Na figura 2 podemos ver uma

ilustração para cada padrão mencionado.

Figura 2 - Padrões de escoamento em dutos verticais

Page 14: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

3

1.1.2 – Utilização dos Sensores Eletro-Resistivos

Uma das formas de se caracterizar escoamentos com mais de uma fase, é a

utilização dos sensores eletro-resistivos. Estes tipos de sensores foram introduzidos no

ano de 1963 por Nassos [1], cujo trabalho tinha o fim de determinar a fração de vazios no

escoamento bifásico de nitrogênio e mercúrio.

Esta técnica é baseada na diferença de resistividade entre as fases em um

escoamento bifásico e é intrusiva ao escoamento, ou seja, pode comprometer a geometria

da bolha no momento da passagem pelo sensor. Porém, independe de acesso óptico ao

escoamento ou das características visuais dos fluidos.

Utilizando um par de sensores paralelos e defasados verticalmente por uma

distância conhecida, podemos determinar não somente o tamanho da corda de bolha e a

frequência de passagem pelos sensores individuais como também a velocidade pelo par

de sensores com defasagem espacial conhecida e defasagem temporal de sinal obtida na

análise e processamento do sinal.

1.2 – Objetivo

O objetivo deste trabalho é criar um instrumento com sensores eletro-resistivos

baseado em DSP que execute a medição, digitalização do sinal, com rejeição de resultados

discrepantes, e indique os valores de velocidade e frequência de passagem de bolhas em

tempo real ao usuário, que, opcionalmente poderá também fazer aquisição de dados. Para

tanto, construiremos uma sonda com um par de sensores defasados verticalmente, um

circuito em ponte de wheatstone e um microprocessador que executará o processamento.

As medições serão feitas em um escoamento bifásico intermitente água-ar, em um

escoamento do tipo slug em um tubo vertical de 1” com a fase líquida em repouso e

injeção de gás.

1.3 – Organização do texto

No capítulo 2 descreveremos o aparato experimental e as ferramentas utilizadas,

tais como a sonda eletro-resistiva, o circuito analógico, o microprocessador utilizado, o

Page 15: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

4

Shadow Sizing (Método de Dimensionamento por Sombra), teclado matricial e display de

caracteres. Neste capítulo apresentaremos ainda alguns critérios de rejeição: o critério de

Chauvenet [2], para rejeição estatística de resultados discrepantes e o critério de Lewis e

Davidson [3], que rejeita sinais ruins oriundos de bolhas deformadas pelo sensor.

No capítulo 3 discriminaremos os parâmetros de projeto, algoritmos e estratégias

utilizadas no processamento dos sinais. Neste capítulo, ainda, detalharemos o filtro passa

alta digital utilizado, o critério para escolha de frequência de amostragem, e mostraremos

as características e causas de sinais a serem rejeitados.

No capítulo 4, apresentaremos como foi feita a programação no DSP e como foi

organizada a bancada experimental. No capítulo 5 veremos os resultados obtidos, e os

validaremos através do uso da câmera de alta velocidade e do Shadow Sizer.

Page 16: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

5

2 – Aparato Experimental e apresentação

das ferramentas

2.1 – Ferramentas e equipamentos da Bancada experimental

O aparato experimental para construção do medidor de velocidade e frequência

de bolhas é composto pelos seguintes instrumentos e equipamentos:

1- Um tubo de 1” com água em repouso e entrada para injeção de ar;

2- Dois pequenos compressores de ar com ajuste de vazão;

3- Um par de sensores acoplados a uma haste metálica;

4- O circuito analógico;

5- DSP TMS320F28335, da família C2000 da Texas Instruments;

6- Um teclado matricial 1x4 para entrada de dados pelo usuário;

7- Um Display LCD de Caracteres 16x2;

8- Software desenvolvido em CVI para monitoração e aquisição de dados via

comunicação serial com o DSP;

Na figura 3 podemos ver o arranjo experimental e o fluxo de dados.

Figura 3 - Diagrama esquemático do arranjo experimental e o fluxo de dados

Page 17: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

6

Como podemos ver na figura 3, dois pequenos compressores de ar, com vazão

ajustável, produzem gás dentro do tubo de 1” de acrílico (com um metro e cinquenta

centímetros de comprimento contendo água em repouso). O regime de escoamento

formado, neste arranjo experimental, é o slug. Este regime é caracterizado por possuir

uma bolha, conhecida como bolha de Taylor, que normalmente é simétrica em relação ao

eixo vertical, tem a forma de um projétil e diâmetro próximo ao da tubulação. Ela é

seguida de pequenas bolhas que, na medida em que aumentamos a vazão de gás, tendem

a se aglomerar.

Os sensores, defasados verticalmente de uma distância dx, percebem a passagem

das bolhas. Cada sensor apresentará uma resistividade em relação a haste metálica que se

apresenta afogada no interior do tubo e servirá de entrada ao seu circuito analógico, que

basicamente conta com uma ponte de Wheatstone, um amplificador de instrumentação e

diodo Zener. Desta forma, cada sinal de tensão servirá de entrada a uma porta ADC

(Analog to Digital Converter) do DSP F28335 da Texas Instruments. O microprocessador

então aplicará o algoritmo de digitalização do sinal, em seguida utilizará o algoritmo de

obtenção dos parâmetros, com rejeição sistemática de sinais oriundos das falhas intrusivas

do sensor (este tema será melhor abordado nas seções seguintes) e rejeição estatística de

resultados discrepantes (critério de Chauvenet). O processador se comunicará com um

pequeno teclado matricial de 1 linha e 4 colunas, e um display LCD de caracteres de 16x2.

Utilizando-se os pinos GPIO (General-Purpose Input/Output), foram

configuradas 4 entradas digitais com sensibilidade de transição para nível lógico baixo e

12 saídas para comunicação paralela com os pinos do display. É oferecido ao usuário um

pequeno menu, dando opções de entrar com distância entre sondas (dx) e as unidades dos

parâmetros medidos (m/s ou mm/s para velocidade e Hz ou RPM para frequência). O

menu é controlado no teclado matricial e observado no display. Este último, ainda, mostra

os resultados das medições feitas em tempo real.

Uma outra opção dada ao usuário é a de fazer aquisição de dados via comunicação

serial utilizando o SCI (Serial Communications Interface) do DSP e monitoramento dos

resultados em um programa dedicado, feito através do software CVI (da National

Instruments). Neste, teremos a possibilidade de gravar os resultados em arquivos na

extensão “.txt” ou “.csv”.

Page 18: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

7

2.2 – O Sensor Eletro-Resistivo

O sensor eletro-resistivo é constituído por uma agulha (geralmente de

acupuntura, de 0,3 mm ou 0,5 mm) soldada a um cabo e em seguida revestida com

material isolante e impermeável (teflon, epóxi ou tinta isolante). Apenas a sua ponta fica

descascada, fazendo o contato com o meio. A agulha é presa a uma haste metálica, que

permanece com parte de sua estrutura imersa no meio liquido. Um fio é soldado em sua

estrutura a fim de que a mesma sirva de retorno comum para ambos os sensores. Na figura

4 podemos ver uma ilustração do sensor.

Figura 4 - Ilustração do sensor Eletro-Resistivo [4]

A ponta da agulha deverá ser o mais fina possível, sem comprometer a robustez

da sonda. Quanto maior o diâmetro da agulha utilizada na sonda, maior será a influência

destrutiva do sensor nas bolhas e piores serão os resultados gerados.

Uma das agulhas utilizadas neste projeto é feita de aço inoxidável. Por ser um

material de baixa condutividade, um fio fino de cobre foi soldado da ponta da agulha ao

Page 19: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

8

fio integrado ao circuito. Com este procedimento, a resistência do sensor associada ao

meio líquido passou de 6 MΩ para 400 kΩ, em média, de acordo com a medição realizada.

Desta forma, garantimos uma maior diferença de resistência associada entre as fases

líquida (em média 400 kΩ) e gasosa (acima de 20 MΩ) ao mesmo tempo em que

garantimos a não oxidação da ponta da agulha (por ser de aço inoxidável). Na figura 5

podemos ver os sensores construídos, com os cabos trançados e soldados na estrutura da

agulha (ainda sem a aplicação do isolante).

Figura 5 - Sensores eletro-resistivos construídos

A outra sonda utilizada neste projeto é feita com fios rígidos, comumente

utilizados em protoboard: uma das pontas descascadas faz o papel do sensor e a outra

ponta é conectada ao circuito.

Conforme descrito anteriormente, utilizaremos duas sondas paralelas defasadas

de uma distância conhecida. A figura 6 ilustra a disposição paralela dos sensores.

Page 20: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

9

Figura 6 - Sensores eletro-resistivos em paralelo [5]

2.3 – Circuito Analógico

O circuito analógico é basicamente composto de duas pontes de wheatstone, dois

amplificadores de instrumentação (INA111) com um passa baixa na entrada, diodo

retificador e diodo zener para proteção da entrada analógica do DSP (limitada em 3 V).

O circuito pode ser visto na figura 7.

Figura 7 – Circuito utilizado

Page 21: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

10

Como podemos observar na figura 7, o circuito é energizado por duas baterias de

12 V em série. Um terra virtual foi feito entre os pólos intermediários, gerando uma saída

em 12 V e outra em -12 V. A saída em 12 V é reduzida a 5 V através do regulador de

tensão LM7805. As tensões de 12 e -12 V servirão de alimentação ao amplificador de

instrumentação INA111 e a tensão de 5 V servirá de entrada das pontes de wheatstone.

As resistências “Rsensor1” e “Rsensor2” variam de acordo com a resistividade do meio. Os

valores das demais resistências da ponte foram obtidos experimentalmente. As

resistências R1 e R2 devem ser grandes o suficiente para gerar tensões V1+ e V2+

próxima de zero, quando a sonda estiver no meio líquido e pequenas o suficiente para que

a tensão no momento da passagem da bolha (alta resistência de Rsensor1 e Rsensor2) seja a

maior possível. As resistências R4 e R6, R3 e R12 devem ser responsáveis por equilibrar

as pontes, ou seja, trazer a tensão resultante para próximo de zero quando a sonda estiver

no meio líquido.

Como a entrada do amplificador de instrumentação apresenta alta impedância, as

correntes que circularão por R7, R8, R13 e R14 serão praticamente nulas, a ponto de

desprezarmos a queda de tensão nestes resistores. Assim, portanto, as tensões de entrada

no amplificador de instrumentação serão dadas por:

𝑉1+ = 5 ∗𝑅𝑠𝑒𝑛𝑠𝑜𝑟1

𝑅1+𝑅𝑠𝑒𝑛𝑠𝑜𝑟1 (1)

𝑉1− = 5 ∗𝑅6

𝑅6+𝑅4 (2)

𝑉2+ = 5 ∗𝑅𝑠𝑒𝑛𝑠𝑜𝑟2

𝑅2+𝑅𝑠𝑒𝑛𝑠𝑜𝑟2 (3)

𝑉2− = 5 ∗𝑅12

𝑅3+𝑅12 (4)

Observe que V1+ e V2+ são diretamente proporcionais a resistividade do meio

em que a sonda está inserida, pois dependem de Rsensor1 e Rsensor2. As tensões V1- e V2-

são constantes pois não dependem destas variáveis.

Page 22: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

11

Temos ainda, no circuito da figura 7, um filtro passa baixa conforme

recomendação do fabricante do circuito integrado INA111. Analisando-se a disposição

dos capacitores no circuito, chegamos a seguinte equação:

𝑓−3𝑑𝑏 =1

4𝜋𝑅7(𝐶2+𝐶12

) (5)

Este tipo de configuração é importante para garantir a filtragem em caso de

diferença entre os pares de capacitores de 100 pF (C2 e C3, e C5 e C6) que devem ser

iguais.

O amplificador de instrumentação utilizado apresenta o ganho da equação 6

abaixo:

𝐺 = 1 +50𝐾

𝑅𝑔 (6)

Utilizando-se uma resistência Rg de 33 kΩ, teremos que o ganho obtido através

da equação 6 será de 2,52.

Após a passagem pelo amplificador, utilizamos um diodo zener IN4729 e um

diodo IN4148 a fim de limitar a tensão de entrada na porta ADC do DSP de 0 a 2,9 V (3,6

V do Zener menos 0,7 V do IN4148).

As resistências R10 e R16 foram obtidas da seguinte expressão

𝑅10 = 𝑅16 =12𝑉−𝑉𝑧

𝐼𝑧 (7)

Sabendo que Vz vale 3,6 V e Iz, segundo o datasheet do fabricante do IN4729,

vale 1 mA, obtemos que R10 e R16 deverão ser de 8,4 kΩ.

As resistências Rin e Rin2, e os capacitores Cin e Cin2 são utilizados por

recomendação do fabricante do DSP.

2.4 – Comunicação Serial

Comunicação serial é um protocolo de comunicação cuja informação é

transmitida bit a bit. Ela pode ser classificada nos seguintes modos:

Page 23: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

12

Simplex: comunicação unidirecional feita apenas do transmissor ao

receptor;

Half-Duplex: A comunicação é bidirecional, ou seja, o transmissor

também é receptor, podendo enviar e receber bits. Porém apenas uma direção pode ser

utilizada por vez;

Full-Duplex: A comunicação é bidirecional e pode ocorrer

simultaneamente.

Quanto ao tipo de transmissão, temos ainda duas classificações: transmissão

assíncrona e transmissão síncrona. As características destes dois tipos de transmissão

serão vistas a seguir.

2.4.1 – Transmissão Assíncrona

Neste tipo de transmissão, a comunicação é feita caractere a caractere, não sendo

necessário sincronismo entre transmissor e receptor. A transmissão não é contínua, ou

seja, existe um estado de repouso do transmissor após enviar um caractere (repouso em

nível lógico alto).

Em transmissões assíncronas normalmente utiliza-se a tabela ASCII como base

de transmissão e recepção do conjunto de bits. Na figura 8 podemos ver uma ilustração

de uma transmissão deste tipo.

Conforme podemos observar na figura 8, uma transmissão de caractere somente

é iniciada após o start bit, que atribui nível lógico zero em um período de tempo após o

estado de repouso (nível lógico alto). Após o start bit, inicia-se a transmissão da cadeia

de bits que formarão o caractere. A quantidade de bits transmitidos por caractere pode ser

previamente escolhida e normalmente varia entre 5 e 8 bits. Após a transmissão do

conjunto de bits, ocorre um bit de paridade (para verificação da consistência da

transmissão feita) e, após, ocorre o bit de parada, onde novamente ocorre a fixação em

Figura 8 - Transmissão Assíncrona

Page 24: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

13

nível lógico alto. O intervalo de tempo “T” de transmissão de 1 bit está diretamente

relacionado ao Baud Rate que é a taxa de transmissão em bits por segundo. Desta forma

temos que:

T = (Baud Rate)-1 (8)

2.4.2 – Transmissão Síncrona

Neste tipo de transmissão, a comunicação é feita continuamente, bit a bit. Não

existe estado de repouso e não existe intervalos entre bits ou envio de bits grupo a grupo.

Não entraremos nos detalhes deste tipo de transmissão pois não será utilizado neste

projeto.

2.5 – O critério de rejeição de Chauvenet

O critério de Chauvenet é um método de rejeição de resultados, em um conjunto

n de medições que estatisticamente tem o comportamento da distribuição normal. Desta

forma, os resultados a serem desprezados neste conjunto terão uma probabilidade menor

que 1/2n e, consequentemente, os resultados não desprezados terão uma probabilidade na

faixa de 1-1/2n.

Tomando-se a curva de distribuição normal da figura 9, cuja média é igual a μ e

desvio padrão σ, temos que os resultados bons ocuparão a faixa central cuja área é igual

a (1-1/2n)*100% da área da curva.

Probabilidade = 1 – 1/2n

Cσ Cσ

µ

Dados a serem rejeitados

Figura 9 - Critério de rejeição de Chauvenet

Page 25: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

14

Como podemos observar na figura 9, os resultados considerados ruins são aqueles

maiores que a média μ somados de uma constante vezes o desvio padrão ou menores que

a média μ subtraídos de uma constante vezes o desvio padrão. Essa constante “C” varia

de acordo com o número de amostras e pode ser obtida da tabela 1.

Tabela 1 - Critério de Chauvenet

N C

3 1,38

4 1,54

5 1,65

6 1,73

7 1,80

8 1,87

9 1,91

10 1,96

15 2,13

20 2,24

25 2,33

50 2,57

100 2,81

300 3,14

500 3,29

1000 3,48

Portanto, em um conjunto N de amostras, uma medida será considerada

estatisticamente aceitável se estiver na faixa:

𝑚é𝑑𝑖𝑎 − 𝑑𝑒𝑠𝑣𝑖𝑜. 𝑝𝑎𝑑𝑟ã𝑜 ∗ 𝐶 ≤ 𝑎𝑚𝑜𝑠𝑡𝑟𝑎(𝑖) ≤ 𝑚é𝑑𝑖𝑎 + 𝑑𝑒𝑠𝑣𝑖𝑜. 𝑝𝑎𝑑𝑟ã𝑜 ∗ 𝐶, 𝑖 = 1, 2, … 𝑁

(9)

Page 26: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

15

onde:

𝑚é𝑑𝑖𝑎 = ∑𝑥(𝑖)

𝑁

𝑁𝑖=1 (10)

𝐷𝑒𝑠𝑣𝑖𝑜 𝑃𝑎𝑑𝑟ã𝑜 = √∑(𝑥(𝑖)−𝑚𝑒𝑑𝑖𝑎)2

𝑁𝑁𝑖=1 (11)

2.6 – O critério de Lewis e Davidson (1983)

O critério de rejeição proposto por Lewis e Davidson [3], baseia-se na integridade

do sinal para aceitação ou rejeição de um sinal associado a passagem de uma bolha pelo

par de sensores. Como a sonda eletro-resistiva é intrusiva então as deformações nas

bolhas, provocadas por essa intrusão, se refletem no sinal associado. Na figura 10

podemos ver um sinal ideal, não deformado, referente a passagem de uma bolha pelos

sensores.

Figura 10 - Sinal ideal de detecção de passagem de uma bolha

O critério de Lewis e Davidson, estabelece dois critérios para aceitação do par de sinais:

1) A largura de pulso detectado pelo sensor 1 deve ser igual ao do sensor 2, ou seja:

tFiA – tFA = tFiB – tFB (12)

2) A defasagem entre a frente do par de sinais deve ser igual a defasagem entre finais,

ou seja:

tFB – tFA = tFiB – tFiA (13)

Page 27: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

16

Uma tolerância de 15% pode ser utilizada nas condições acima.

De acordo com o critério, a velocidade de uma bolha pode ser obtida pela seguinte

equação:

𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 =1

2∗ (

𝑑𝑥

tFB – tFA+

𝑑𝑥

tFiB – tFiA) (14)

Na equação 14, dx representa a defasagem espacial entre sensores.

De acordo com Lewis e Davidson [3], o tamanho de uma bolha pode ser obtido

pela seguinte equação:

𝑇𝑎𝑚𝑎𝑛ℎ𝑜 =1

4∗ (

𝑑𝑥∗(tFiA – tFA)

tFB – tFA+

𝑑𝑥∗(tFiB – tFB)

tFB – tFA+

𝑑𝑥∗(tFiA – tFA)

tFiB – tFiA+

𝑑𝑥∗(tFiB – tFB)

tFiB – tFiA ) (15)

Como podemos observar, a equação 15 representa a média aritmética dos

diferentes tamanhos de bolha calculados com base na largura de pulso detectada pela

sonda 1, em função das velocidades obtidas pela diferença entre frentes e finais de bolha

e pela largura de sinal proveniente da detecção pela sonda 2, também em função das

velocidades obtidas pela diferença entre frentes e finais de bolha.

2.7 – Teclado Matricial e Display LCD de caracteres

2.7.1 – O Teclado Matricial

Utilizamos neste projeto um teclado matricial de 4 teclas. Este periférico foi

integrado ao DSP através de 4 entradas digitais. Na figura 11 podemos ver o teclado

utilizado.

Page 28: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

17

Figura 11 - Teclado matricial utilizado

No projeto, cada tecla quando pressionada aplica uma transição de nível lógico da

entrada digital correspondente de 1 para 0. Desta forma, cada tecla está associada a uma

entrada e todas elas quando pressionadas comunicam o seu pino a um quinto pino de

ground.

2.7.2 – O Display de caracteres

O display utilizado se baseia no controlador Hitachi HD44780 LCD, que utiliza a

tabela ASCII como padrão de interpretação dos bits de dados e amostragem de caracteres.

Na figura 12 podemos ver o arranjo dos 16 pinos.

Figura 12 - Display LCD de caractere

Page 29: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

18

No display, os pinos são enumerados de 1 a 16, da esquerda para a direita. Alguns

não possuem os pinos 15 e 16, responsáveis pelo backlight, possuindo, portanto, apenas

14 pinos. Desta forma, em nosso projeto fizemos as seguintes ligações de pinos:

Pino 1 –ground

Pino 2 –Vcc (5 V)

Pino 3 – Ajuste de Contraste diretamente ligado ao ground

Pino 4 – RS: saída digital do DSP

Pino 5 – R/W: ligado ao ground, habilitando o modo de escrita

Pino 6 – Enable: ligado a uma saída digital do DSP

Pino 7 – D0: ligado a uma saída digital do DSP

Pino 8 – D1: ligado a uma saída digital do DSP

Pino 9 – D2: ligado a uma saída digital do DSP

Pino 10 – D3: ligado a uma saída digital do DSP

Pino 11 – D4: ligado a uma saída digital do DSP

Pino 12 – D5: ligado a uma saída digital do DSP

Pino 13 – D6: ligado a uma saída digital do DSP

Pino 14 – D7: ligado a uma saída digital do DSP

Pino 15 –Back Light +: VCC (5 V)

Pino 16 –Back Light -: ground

Na tabela 2 podemos ver algumas instruções de entrada que serão úteis neste

projeto.

Page 30: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

19

A temporização entre um enable on e enable off (na tabela, a transição entre estes

estados foi representada por 0-1-0 conforme variação de nível lógico no pino) para cada

instrução normalmente é de 37 µs, de acordo com o datasheet do fabricante. As únicas

exceções são as instruções de Clear Display (linha 2 da tabela 2) e Cursor Home (linha 3

da tabela 2) cuja temporização é de 1,52 ms.

Para escrever um caractere no display, basta utilizar a correspondente sequência

de bits (que pode ser obtida da tabela ASCII) nos pinos D0-D7, com o RS em nível lógico

1 e respeitando a temporização entre o Enable on e Enable off.

Tabela 2 - Instruções aplicáveis ao display de caractere

Page 31: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

20

2.8 - O DSP F28335 da Texas Instruments

2.8.1 – Características Gerais

Os DSPs (Digital Signal Processor) são utilizados em inúmeras aplicações

em engenharia, como controle de motores ou processamento digital de sinais.

Basicamente o DSP é um microprocessador com alta capacidade de processamento e que

é programado de acordo com a necessidade de projeto.

O DSP utilizado neste projeto é o TMS320F28335 da família C2000 da Texas

Instruments. Este possui, entre outras, as seguintes características:

68 KB de memória RAM

512 KB de memória Flash

Até 150 MHz de frequência de CPU

16 canais ADC com resolução de 12 bits e até 80 ns de tempo de conversão

3 SCI (Serial Communications Interface)

Controle de interrupção

88 GPIO

18 canais de PWM

Na figura 13 podemos ver a estrutura interna do DSP.

Figura 13 - Estrutura interna do F28335 [7]

Page 32: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

21

Como podemos ver na figura 13, o DSP possui dois barramentos independentes:

o barramento de dados (Data Bus) e o barramento de programa (Program Bus). Esta

característica possibilita a leitura e transferência de dois operandos da memória para a

CPU em um único pulso de clock [12].

Na figura 13 observamos ainda a presença de registradores auxiliares de 32 bits,

registradores de 32 bits para multiplicação e adição em ponto fixo e uma unidade de

hardware de 32 bits chamada “FPU” para cálculos em ponto flutuante.

Em nosso projeto, utilizaremos 2 canais do módulo ADC (de conversão

sincronizada a um ePWM), 14 canais do módulo GPIO (10 saídas e 4 entradas digitais),

e interface de comunicação serial (SCI-A). Faremos a programação na memória Flash.

2.8.2 – GPIO (unidades input e output)

Existem 88 pinos de entrada e saída digitais (I/O) no DSP F28335. Elas estão

organizadas em três portas digitais A,B e C. Cada pino I/O pode ser configurado para fins

diferentes, como por exemplo o PWM, interface de comunicação serial (SCI) ou saída e

entrada digital. Na figura 14 podemos ver o diagrama de blocos correspondente ao GPIO.

Figura 14 - Diagrama de blocos do GPIO [7]

Page 33: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

22

Na figura 15 podemos ver o GPIO organizado por multiplexador

Figura 15 - GPIO organizado por multiplexador [7]

Nas linhas abaixo podemos ver os registradores de operação disponíveis.

GPxDIR

Utilizado para definir a direção dos dados, ou seja, se um determinado GPIO será

uma entrada (se igual a 0) ou saída digital (se igual a 1).

GPxCLEAR

Esta é uma máscara utilizada para forçar o pino ao nível lógico baixo (0)

GPxSET

Esta é uma máscara utilizada para forçar o pino ao nível lógico alto (1)

GPxTOGGLE

Esta é uma máscara utilizada para forçar o pino ao nível lógico inverso.

GPxDAT

Esta é uma máscara utilizada para acessar e modificar o nível lógico de um pino.

GPIO Input Qualification:

É utilizado para minimizar ruídos no sinal digital. Este recurso está disponível

somente nos 64 primeiros GPIO.

Page 34: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

23

2.8.4 – Módulo ADC (Analog to Digital Converter)

O conversor analógico/digital nos fornece a possibilidade de monitorar,

controlar ou processar sinais de tensão associados a alguma variável que se queira medir.

De uma forma geral, para se converter um sinal analógico em um sinal digital, é

necessário especificar o número de bits de resolução do conversor A/D, podendo ser

utilizada a seguinte relação:

𝑉𝑒𝑛𝑡𝑟𝑎𝑑𝑎 = 𝐷 ∗(𝑉𝑅𝑒𝑓+−𝑉𝑅𝑒𝑓−)

2𝑛−1+ 𝑉𝑅𝑒𝑓− (16)

Na equação 16, temos que D é valor de entrada digitalizado, VRef+ é o maior

valor de tensão que pode ser lido pelo conversor, VRef- é o menor valor de tensão que pode

ser lido e n é o número de bits de resolução do conversor A/D.

No DSP F28335 da Texas Instruments, temos 16 entradas ADC com 12 bits

de resolução, que podem receber tensões de 0 a 3 V e duas unidades Sample And Hold,

que armazenam o sinal que será convertido em um curto tempo com o fim de favorecer a

simultaneidade entre conversões dos canais. Desta forma, para o F28335 podemos

simplificar a equação 16 na equação 17.

𝑉𝑒𝑛𝑡𝑟𝑎𝑑𝑎 = 𝐷 ∗3

4095 (17)

De acordo com a Texas Instruments [8] é recomendada a utilização de um

circuito analógico composto por um amplificador operacional, por possuir baixa

impedância na saída, um resistor Rin, responsável por isolar o ADC do amplificador e um

capacitor Cin, responsável por ajudar a estabilizar o sinal na entrada. Recomenda-se que

o resistor Rin seja de até 100 Ω, e o capacitor Cin seja de 20 a 30 pF. Estes componentes

de circuito foram acrescentados no circuito analógico do projeto e podem ser vistos na

figura 7. Na figura 16 podemos ver o circuito externo recomendado e o interno do

conversor ADC.

Figura 16 - circuito típico de ADCIN [8]

Page 35: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

24

No circuito da figura 16 temos que Vps é tensão de resíduo da amostragem

anterior. As chaves S1 e S2 alternam de estado entre si: durante a amostragem a chave S1

fecha, carregando o capacitor de amostragem (CSH, de 1.64 pf) através dos resistores RSW

(de 1 kΩ) e do resistor RIN. O período em que a chave S1 ficará fechada é controlado por

um escalonador do clock do ADC, chamado ACQ_PS.

A fonte de clock do ADC é o clock interno HSPCLK. A maior frequência

de conversão que pode ser utilizada é de 25 MHz (FCLK), porém a Texas Instruments

recomenda que, se não for necessário utilizar uma frequência de conversão tão alta, que

se limite o FCLK em 12,5 MHz, pois um erro de não linearidade pode aparecer na

conversão em taxas maiores.

No ADC, o início de uma conversão pode ocorrer de três formas: por

software, onde devemos inserir nível lógico alto no bit 2 do registrador ADCCTRL 2; por

um sinal externo no pino GPIO/XINT2_ADCSOC; por evento associado a alguma

unidade de PWM.

2.8.5 - Interface de Comunicação Serial (SCI)

A interface de comunicação serial realiza a transmissão e recepção por fios

diferentes (Tx e Rx), em uma comunicação que, como já vimos, é do tipo full duplex. O

DSP pode se comunicar com o computador ou outros dispositivos que utilizem o padrão

NRZ (Non-return-to-zero).

Chamamos de SCICLK o clock correspondente ao SCI. Ele é controlado

pelo LSPCLK e pelo BRR (Baud-Rate Register), que é um registrador de 16 bits utilizado

para configuração da taxa de transmissão. Por default, o LSPCLK vale 37,5 MHz, ou seja,

é o resultado da divisão do SYSCLKOUT por 4, caso não seja configurado. Podemos

calcular o SCICLK a partir da equação 17.

𝑆𝐶𝐼𝐶𝐿𝐾 =𝐿𝑆𝑃𝐶𝐿𝐾

𝐵𝑅𝑅+1 (18)

Na prática, não nos preocuparemos em calcular o SCICLK. Devemos somente

verificar a taxa de transmissão necessária para realizar a comunicação, e em função disso

calculamos o BRR correspondente. Sabendo que um bit ocupa 8 ciclos do SCICLK,

podemos reformular, na equação 19, a equação 18 em função do BRR.

Page 36: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

25

𝐵𝑅𝑅 =𝐿𝑆𝑃𝐶𝐿𝐾

𝑇𝑎𝑥𝑎𝑡𝑟𝑎𝑛𝑠𝑚.∗8− 1 (19)

Outros importantes parâmetros de configuração do SCI são o número de bits de

parada e bit de paridade. Podemos ainda utilizar um recurso conhecido como FIFO (First

In, First Out). Os FIFOs armazenam as informações de envio e chegada em buffers,

podendo enviar ou receber até 16 caracteres em uma única interrupção de CPU.

2.9 – Shadow Sizer

O método de dimensão da sombra, o Shadow Sizing, pode executar a medição de

diâmetro e velocidade de bolhas através do uso de uma câmera de alta velocidade e alta

resolução e uma luz difusa. Nas figuras 17 e 18 podemos ver a câmera e a fonte de luz.

Figura 17 - Câmera NanoSense Mk III, 2080 quadros por segundo a 1.3 mega pixel [6]

Figura 18 - Fonte de Luz [6]

Page 37: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

26

Para se utilizar o equipamento, devemos dispor o tubo com o escoamento de

interesse entre a câmera e a fonte de luz. Em nosso aparato experimental, como estamos

utilizando um escoamento bifásico água-ar, a fonte de luz irá gerar sombras na passagem

das bolhas, e estas serão captadas pela câmera.

Com o software de nome “Dynamic Studio” de pós processamento das imagens,

somos capazes de definir o contorno das bolhas localizadas no foco da câmera, baseado

na escala de cinza da imagem e assim definir parâmetros associados a bolha como a

velocidade e tamanho. Através da sobreposição de sucessivas imagens, conhecendo o

intervalo de aquisição, o número de quadros de entre duas imagens e a distância obtida

na conversão pixels para milímetro, feita em uma calibração em software, podemos

determinar a velocidade. Na figura 19 podemos ver o software utilizado.

Figura 19 - Software “Dynamic Studio”

Page 38: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

27

3 – Parâmetros de Projeto

3.1 – Análise espectral e determinação da frequência de

amostragem

Utilizando-se uma placa de aquisição da National Instruments, a PCI 6014, e

utilizando-se um de seus conversores A/D, fizemos a aquisição do sinal do circuito

analógico referente a uma das sondas. Com este sinal, faremos um dos testes no sistema

utilizando uma defasagem controlada, feita através do software Matlab e em seguida

exportando este mesmo sinal através do conversor D/A desta mesma placa. Com isto,

teremos um valor de referência de velocidade que será proporcional a defasagem aplicada,

vezes a taxa de exportação deste sinal. Desta forma poderemos verificar a resposta do

microprocessador a este sinal, comparando com o valor de referência. Para tanto, é de

grande importância conhecer a região espectral em que se encontra o sinal para definição

da taxa de amostragem do conversor A/D do DSP através do critério de Nyquist. A DFT

do sinal pode ser vista na figura 20.

Figura 20 - DFT do sinal do circuito analógico

Page 39: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

28

Conforme podemos observar na figura 20, o espectro do sinal está todo

concentrado na região de baixas frequências. A maior frequência observada nesta análise

espectral foi de 600 Hz. Portanto, utilizando o critério de Nyquist, que diz que para se

obter uma boa reconstrução do sinal a taxa de amostragem deverá ser de no mínimo duas

vezes a maior frequência do espectro, e sabendo que o sinal que será utilizado foi

amostrado a uma frequência de 5 kHz, teremos que a frequência de amostragem do ADC

do DSP deverá estar entre:

2 ∗ 600Hz = 1,2 kHz ≤ fADC

(Limitação inferior dada pelo critério de Nyquist)

e

fADC ≤ 5 kHz

(Limitação superior dada pela frequência de amostragem do sinal que será

utilizado, aplicável somente nos testes de exportação do sinal com defasagem controlada

para observação e comparação com a resposta do DSP).

Desta forma, a frequência de amostragem escolhida para o ADC do F28335 para

realização dos testes com sinal exportado via D/A da placa PCI 6014 foi de 4762 Hz, ou

seja, um período equivalente de 210 µs.

Para a utilização do DSP com as entradas ADC diretamente ligadas ao circuito, a

taxa de amostragem escolhida foi de 10 kHz, ou seja, um período equivalente de 100 µs.

3.2 - Filtro Passa Alta Digital

Um filtro passa alta digital deverá ser utilizado a fim de impedir variações no sinal

a ser processado devido a oscilações de resistividade encontradas na mesma fase (devido

a presença de impurezas que modificam as propriedades químicas do meio) e de eliminar

a componente DC do sinal para facilitar o seu processamento.

Page 40: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

29

3.2.1 – Função de transferência em tempo contínuo

O filtro passa alta a ser projetado deverá eliminar a componente DC do sinal.

Desta forma, utilizaremos uma frequência de corte igual a 0,001 Hz em um filtro de

primeira ordem. A função de transferência para este filtro será, portanto:

𝐹(𝑠) =𝑠

𝑠+ 𝑤𝑐=

𝑠

𝑠+0,00628 (20)

Simulando-se este filtro no software “Simulink”, com o sinal da sonda como

entrada, teremos o resultado da figura 21.

Figura 21 - Resultado da aplicação do filtro passa alta

Como podemos observar na figura 21, a componente DC foi completamente

eliminada do sinal.

Page 41: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

30

3.2.2 - Função de transferência em tempo discreto e equação a

diferenças

Para realizar a discretização da função de transferência dada pela equação 20,

utilizaremos a equação bilinear (regra de Tustin). A relação entre a variável contínua “s”

e a variável discreta “z” dada por esta regra pode ser vista na equação 21.

𝑠 =2

𝑇0 .

1−𝑍−1

1+ 𝑍−1 (21)

Desta forma, substituindo a equação 20 pela equação 21, tem-se que:

𝐹(𝑧) =2−2𝑧−1

𝑧−1(𝑇0𝜔𝑐−2)+(2+𝑇0𝜔𝑐)=

𝑌(𝑧)

𝑈(𝑧) (22)

Nas equações 21 e 22 temos que T0 é o período de amostragem, 𝜔𝑐 é a frequência

de corte em rad/s, Y(z) é o sinal discretizado de saída e U(z) é o sinal discretizado de

entrada. Aplicando-se a transformada Z inversa da equação 22, sabendo que Y(z)*z-1 =

ytk-1 e Y(z) * constante = constante*ytk (o mesmo é válido para U(z)) teremos a seguinte

equação a diferenças do filtro passa alta, que será implementada em código no DSP:

𝑦𝑡𝑘 =2𝑢𝑡𝑘−2𝑢𝑡𝑘+𝑦𝑡𝑘−1(2−𝑇0𝜔𝑐)

2+ 𝑇0𝜔𝑐 (23)

3.3 – Detecções falsas dos sensores Eletro-Resistivos

Detecções falsas dos sensores eletro-resistivos podem ocorrer tanto na sonda

individual quando no par de sensores. Qualquer detecção que não esteja relacionada a

uma dinâmica intrusiva de pouca influência na geometria do escoamento (no caso da

sonda individual) ou de detecção da mesma bolha por parte das duas sondas é considerada

falsa.

De acordo com [5], em um par de sensores eletro-resistivos podemos encontrar os

seguintes problemas:

a- Deformação da bolha ao aproximar-se da ponta do sensor;

b- Rompimento da bolha ao entrar em contato com a agulha a jusante;

c- Coalescência das bolhas em contato com uma das agulhas;

d- Duas bolhas diferentes atingem as agulhas dos sensores;

e- Deflexão da bolha ao entrar em contato com a agulha a montante;

Page 42: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

31

f- Duas pequenas bolhas que viajam próximas encontram cada uma um

sensor diferente.

As situações descritas acima podem ser vistas na figura 22.

Figura 22 - Problemas relacionados a intrusão do sensor [5]

Alguns valores de velocidade muito altos podem surgir devido a intrusão dos

sensores eletro-resistivos. Um caso recorrente é quando o “nariz” da bolha demora a ser

perfurado pelos sensores, gerando nela uma deformação. Quando a perfuração ocorre, a

transição entre líquido e bolha será muito rápida, ou seja, valores muito grandes de

velocidade serão calculados. Na figura 23 podemos ver essa situação descrita.

Page 43: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

32

dt pequeno

Figura 23 – Deformação da frente da bolha gerando altos valores de velocidade

Um algoritmo de processamento deve ser capaz de rejeitar os sinais indicados

pelas figuras 22 e 23. Os sinais dos itens “a” até “e” e o sinal da figura 23 podem ser

rejeitados pelo critério de Lewis e Davidson. Os sinais de “a” até “f” e o da figura 23

podem ser rejeitados pelo critério de rejeição estatística de Chauvenet, desde que não

ocorram com grande frequência.

3.4 – Algoritmo de Digitalização do sinal e Obtenção de

parâmetros

O sinal de um sensor eletro-resistivo, proveniente da passagem de uma bolha pela

sonda, precisa ser digitalizado a fim de que se facilite a obtenção dos parâmetros

associados. O sinal característico a ser processado pode ser visto na figura 24.

Page 44: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

33

Figura 24 - Sinal característico e sua digitalização

Para efetuar a digitalização do sinal foi utilizado uma referência de comparação

para que, sempre que o sinal ultrapassasse este valor de referência, o sinal lógico passasse

a ser unitário e, caso contrário, zero.

Com o sinal digitalizado, devemos agora obter as informações que o par de sinais

é capaz de fornecer. Na figura 25 podemos ver um par de sinais ideais.

Sabendo-se que o par de sensores está defasado de uma distância dx, podemos

calcular a velocidade da bolha:

Figura 25 - Par de sinais ideais

Page 45: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

34

𝑉𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 =𝑑𝑥

𝑇 (24)

Sabendo o valor da velocidade e o tempo que a bolha leva para atravessar o sensor

(Tbolha), podemos determinar o seu tamanho:

𝑇𝑎𝑚𝑎𝑛ℎ𝑜 =𝑑𝑥

𝑇∗ 𝑇𝑏𝑜𝑙ℎ𝑎 (25)

Para a determinação dos tempos T e Tbolha, a estratégia criada em algoritmo é a

utilização do diferencial do sinal digitalizado, ou seja:

𝑑𝑖𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎𝑙(𝑆𝑖𝑛𝑎𝑙_𝑑𝑖𝑔𝑖𝑡𝑎𝑙) = 𝑆𝑖𝑛𝑎𝑙_𝑑𝑖𝑔𝑖𝑡𝑎𝑙(𝑛) − 𝑆𝑖𝑛𝑎𝑙_𝑑𝑖𝑔𝑖𝑡𝑎𝑙(𝑛 − 1) (26)

Desta forma, teremos o sinal da figura 26.

Figura 26 - sinal digital e seu diferencial

Como podemos observar na figura 26, através do sinal digital diferencial podemos

delimitar o instante de início da passagem da bolha como 1 e o instante do fim da bolha

como -1. Desta forma, para calcular os parâmetros da bolha, basta seguir 5 passos:

1) Iniciar contador1 e contador2 quando a sonda 1 apresentar um sinal

diferencial igual a 1.

2) Quando a sonda 2 apresentar sinal diferencial 1, parar o contador1. Sabendo

que T0 é o período de amostragem, teremos que:

a) T = (contador1-1)*T0.

b) Velocidade = dx/T.

Page 46: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

35

c) Incrementar um contador3.

3) Quando o sinal diferencial 1 atingir o valor -1 (final da bolha), verificar se o passo

2 realmente aconteceu. Se o passo 2 tiver acontecido:

a) Parar contador2.

b) Tamanho_bolha = (contador2-1)*T0*Velocidade

4) Zerar contadores 1 e 2.

5) Após um período de tempo Tfreq, fazer:

a) Frequencia = contador3/Tfreq.

b) Zerar contador 3.

Observe que, seguindo os 5 passos acima, nós garantimos que:

a) Um sinal que é detectado por um sensor mas não é detectado pelo outro

será rejeitado;

b) O sinal será rejeitado se o sinal da sonda 2 se antecipar em relação ao sinal

da sonda 1.

Desta forma, podemos verificar que apenas falta criar uma rotina de rejeição de

um sinal quando os dois sensores percebem bolhas diferentes na correta ordem de subida

(sensor a montante e sensor a jusante), resultando em valores aleatórios de velocidade.

Para resolver este problema, utilizaremos um critério estatístico que será apresentado na

próxima seção.

3.5 – Critério de Chauvenet adaptado para operar em tempo real

Em nossa aplicação, como estamos tratando os dados em tempo real, precisamos

que o critério de rejeição também funcione em tempo real.

Para utilizar o critério de Chauvenet, explicado na seção 2.5, em tempo real,

faremos os seguintes passos:

1) Consideraremos uma janela de 6 amostras de velocidade da bolha de Taylor.

Dessas primeiras 6 amostras obteremos a média através da equação 10.

2) Depois de obter mais 6 amostras, calcularemos o desvio padrão através da equação

11 com base na primeira média (obtida em “1”) e calcularemos novamente a

média equivalente (destas 6 amostras novas).

Page 47: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

36

3) Com a média e desvio padrão, iremos calcular os limites superior e inferior dados

pela equação 9 e tabela 1.

4) A partir deste ponto iremos somente aceitar resultados que estejam dentro dos

limites definidos em (3).

5) Após mais 6 amostras voltar para (2) para recalcular os parâmetros.

6) Se passarem quatro segundos sem que mais nenhuma amostra tenha sido obtida

dentro dos critérios, voltar ao passo 1.

Page 48: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

37

4 – Utilização das ferramentas e montagem

da bancada experimental

4.1 – Programação do DSP F28335 da Texas Instruments

Para desenvolvimento do código utilizamos o software Code Composer Studio da

Texas Instruments. Nas seções seguintes descreveremos como foi feita a configuração e

programação da CPU, interrupções, ADC, GPIO e SCI para realização do projeto. O

código utilizado na programação do DSP pode ser visto no Anexo 1.

4.1.1 – Configuração da CPU, Inicialização de periféricos e interrupções

O clock do F28335 é gerado pelo oscilador de cristal em uma frequência de 30

MHz. A opção por utilizar um oscilador de baixa frequência e um circuito PLL para gerar

as demais frequências está relacionada a redução da interferência eletromagnética. Dois

pré-escalonadores de clock são utilizados para configurar a entrada de clock de

periféricos: o High-Speed Clock Pre-scaler (HISPCP), utilizado para escalonar o clock

no ADC e o low-Speed Clock Pre-scaler (LSPCLK) utilizado para escalonar o clock no

SCI, SPI, I2C e McBSP. Quando não configurados, assumem valores default (HSPCLK

= 2 e LSPCLK = 4).

Abaixo temos algumas linhas de código responsáveis pela configuração de

frequência de trabalho da CPU, inicialização de periféricos e configuração de

interrupções presentes no código de projeto, na seção A1.2.1 do Anexo 1, que em seguida

serão comentadas.

InitSysCtrl()

Responsável pela desabilitação do Watchdog; inicialização de clock dos

periféricos e determinação frequência de trabalho da CPU a partir do oscilador de 30

MHZ com os pre-escalonadores “DIV” e “DIVSEL”. Assim a CPU foi configurada a

trabalhar em SYSCLKOUT = 10*30/2 = 150 MHz (DIV = 10 e DIVSEL = 2)

InitSciaGpio();

Inicialização da interface de comunicação serial (SCI)

Page 49: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

38

DINT;

Desabilita interrupções

#define ADC_MODCLK 0x3

Esta instrução define o valor da constante pré-escalonadora de clock do periférico

ADC (HSPCLK),

SysCtrlRegs.HISPCP.all = ADC_MODCLK

Aplicação do ADC_MODCLK para configurar o clock do periférico ADC, ou

seja: HSPCLK = SYSCLKOUT/2*ADC_MODCLK = 150/(2*3) = 25.0 MHz

InitPieCtrl();

Instrução que apaga interrupções pendentes e desabilita canais de interrupção

InitPieVectTable()

Instrução que faz com que a memória dos periféricos inicialize em um estado

conhecido. Esses estados iniciais estão na tabela de interrupções disponível no arquivo

DSP2833x_pievect incluída na árvore de projeto. Esta mesma tabela é copiada em uma

variável global chamada pievectable que foi definida através do arquivo

DSP2833x_GlobalVariableDefs.c

InitFlash()

Inicialização da memória flash do DSP

PieVectTable.ADCINT = &adc_isr;

Remapeamento de interrupção para a função Isr contida dentro do código

scia_fifo_init();

Inicialização do SCI FIFO

scia_echoback_init();

Inicialização das configurações utilizadas no SCI

InitAdc();

Inicialização do ADC

EINT;

Page 50: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

39

Instrução que habilita interrupções

ERTM;

Macro que habilita interrupções de debug

4.1.2 – Configuração das entradas ADC

Conforme mencionado anteriormente, utilizamos dois conversores A/D de 12 bits

do DSP. Nosso projeto utiliza o mecanismo de interrupção para o ADC: o

microprocessador executa o código presente dentro da função main e de forma

temporizada (sincronizada com um PWM, configurado em código) executa as linhas

presentes na função de interrupção do ADC (de nome adc_isr).

Configuração do ADC na função main

As linhas de configuração ADC, presentes na função main do código da seção

A1.2.1 do Anexo 1 estão explicadas abaixo:

AdcRegs.ADCMAXCONV.all = 0x0001;

Determina o número de canais a serem convertidos. Se igual a zero, teremos

apenas um canal de conversão. Como queremos utilizar dois canais de conversão em

nosso projeto, atribuiremos a instrução em hexadecimal 0x0001 a este registrador.

AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x3;

AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2;

As instruções acima correlacionam o estado ao canal de entrada. Acima,

correlacionamos os estados 0 e 1 (CONV00 e CONV01) as entradas ADCINA3 e

ADCINA2 respectivamente.

Page 51: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

40

AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;

A instrução acima é uma máscara que habilita a conversão ADC via ePWM.

AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;

Habilita o uso de interrupção

EPwm1Regs.ETSEL.bit.SOCAEN = 1;

Habilita o ADC Start of Conversion A (SOCA)

EPwm1Regs.ETSEL.bit.SOCASEL = 4;

Configura o CMPA como evento de mudança de nível lógico do ePWM

EPwm1Regs.ETPS.bit.SOCAPRD = 1;

Gera o pulso de conversão logo no primeiro evento

EPwm1Regs.CMPA.half.CMPA = 0x0080;

CMPA é responsável pela largura do pulso (lembrando que CMPA deve ser

sempre menor que TBPRD)

EPwm1Regs.TBCTL.bit.CTRMODE = 0;

Aqui eu defino meu PWM como sendo do tipo count up

EPwm1Regs.TBPRD = T0*150000000/2;

Aqui eu defino a frequência de PWM. Como nosso PWM é do tipo count up, é

válida a regra: TBPRD = Tpwm * sysclkout / clkdiv*hspclkdiv. Observe que Tpwm é o

mesmo que TADC pois é o PWM quem temporiza a conversão. Desta forma, escolhendo

um intervalo de aquisição de dados definido como T0 (210 µs), sabendo que CLKDIV=1

e HSPCLKDIV = 2 por default e a frequência de CPU (SYSCLkOUT) é igual a

150000000, logo TBPRD = 210*10-6 * 150 *106/2 = 15750

Page 52: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

41

Algoritmos de digitalização, detecção e rejeição na função de interrupção ADC

Nesta seção veremos os trechos de código que compõem a função de interrupção

adc_isr(void), presente no código da seção A1.3 do Anexo 1.

Nas linhas de código correspondentes a função adc_isr, temos duas variáveis

inteiras de 16 bits (Voltage1 e Voltage2) associadas aos valores de conversão de 12 bits

do ADC (ADCRESULT0 e ADCRESULT1) que são deslocados de 4 bits a direita para

que o valor de conversão de 12 bits ocupe as primeiras posições da variável de 16 bits.

Em seguida, essa variável inteira é convertida em um float, multiplicando o valor inteiro

pelo maior valor lido pela entrada ADC (3 V) e dividindo pelo maior valor inteiro que

pode ser obtido pelo registrador de 12 bits (212 – 1 = 4095).

As demais linhas de código são responsáveis por associar valores iniciais para as

variáveis utk1 e utk2 que na verdade são as próprias entradas de sinal do ADC. Uma

variável auxiliar (aux4) foi criada para garantir que essas instruções apenas sejam feitas

uma vez. Após isso, a variável que é um vetor de floats com três posições irá se atualizar

de forma cíclica, ou seja, sempre a posição 2 do vetor será a mais atual, a posição 1

corresponderá ao valor anteriormente lido e a posição 0 ao valor lido há dois ciclos atrás.

Nesta mesma função de interrupção, utilizamos as variáveis ytk e ytk2 como saídas

do filtro passa altas, T0 o intervalo de aquisição, wc a frequência de corte utilizada em

rad/s, result e result2 são os valores de sinal digitalizado, dif1 e dif2 são os sinais

digitalizados diferenciais. Observe que aqui vale a mesma regra anterior: os vetores de

posição 2 são os mais atuais, os de posição 1 são os de um ciclo anterior e os de posição

0 são os de 2 ciclos anteriores. Ao final da função de interrupção do ADC essas variáveis

são sempre atualizadas.

Nesta mesma função, utilizamos os algoritmos disponibilizados nas seções 3.4 e

3.5. Como utilizamos uma janela fixa de 6 amostras, o valor de C utilizado é 1,73,

conforme podemos ver na tabela 1. Temos ainda que a variável tsup representa o valor

limitante superior e tinf o valor limitante inferior para aceitação de amostras.

Page 53: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

42

4.1.3 – Configuração de GPIO

Conforme já descrito anteriormente, nosso projeto conta com um teclado matricial

e um display de caractere. Os pinos do display de caractere foram ligados em saídas

digitais e os pinos do teclado matricial foram ligados em entradas digitais do DSP. Na

tabela 3 podemos ver como foram ligados os pinos GPIO nos pinos do display.

Tabela 3 - Arranjo de pinos GPIO no display

Na tabela 4 podemos ver como foram ligados os pinos GPIO nos pinos do teclado

matricial.

Tabela 4 - Arranjo de pinos GPIO no teclado

Instruções de configuração dos pinos GPIO

Nas linhas de código da seção A1.2.1 do Anexo 1 podemos ver como os pinos,

disponíveis nas tabelas 3 e 4, foram configurados. Basicamente, utilizamos as seguintes

instruções dispostas abaixo:

GpioCtrlRegs.GP[n]MUX[y].bit.GPIO[x] = 0 : definição do tipo de uso do pino

GPIO. Temos que [n] equivale ao GPIO A, B ou C, [y] equivale ao MUX 1 ou 2

correspondente e [x] o pino GPIO a ser configurado. Se igual a zero, o pino está

configurado como entrada ou saída digital.

Pino GPIO do DSP Pino do Display

GPIO16 D0

GPIO17 D1

GPIO18 D2

GPIO19 D3

GPIO20 D4

GPIO21 D5

GPIO22 D6

GPIO23 D7

GPIO24 RS

GPIO26 ENABLE

Pino GPIO do DSP Pino do Teclado Função

GPIO25 3 Ok

GPIO27 1 Up

GPIO30 2 Down

GPIO31 4 Return

Page 54: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

43

GpioCtrlRegs.GP[n]DIR.bit.GPIO[x] = 0 ou 1: definição da direção do fluxo de

dados no pino, ou seja, se é uma entrada ou saída digital. Temos que [n] equivale

ao GPIO A, B ou C e [x] o pino GPIO a ser configurado. Se igual a 1, estamos

configurando o pino como saída digital e se igual a 0, estamos configurando-o

como entrada.

Funções básicas utilizadas nos GPIO

As funções dispostas na seção A1.4 do anexo 1, estão diretamente relacionadas as

portas GPIO utilizadas e serão comentadas abaixo:

Função stri: recebe uma string de entrada e a direciona ao display. Para isso, ela

separa caractere por caractere desta string e do caractere separa bit por bit para ser

associado ao GPIO correspondente ao envio dos dados ao display.

Função fti: recebe um float de entrada e o converte para string. Ela é utilizada para

indicar os resultados no display e para enviá-los via porta serial.

Funções cursor_init_erase, cursor_init, cursor_init_l2, cursor_desloc,

cursor_desliga e cursor_liga : estão associadas às linhas 2,3,12,11 e 9 da tabela

1, respectivamente.

Funções disp_vel e disp_freq: responsáveis por atualizar os resultados de

velocidade e frequência no display e envio serial do conjunto de bytes

correspondente aos resultados.

Menu de Interação com o Usuário

Um menu de interação com o usuário foi criado. Neste, podemos escolher a

unidade a ser utilizada para cada parâmetro (m/s ou mm/s para velocidade e Hz ou RPM

para frequência). Podemos ainda entrar com a distância entre os sensores, para o caso de

se utilizar outros pares de sensores com diferentes defasagens espaciais. O código

responsável pela dinâmica do menu pode ser visto na seção A1.2.2 do Anexo 1.

Basicamente o menu funciona acessando o nível lógico dos registradores de

estado do GPIO. As variáveis Up e Down servem para que o programa não se perca em

relação a posição de cursor definida pelo usuário, mesmo quando o botão correspondente

for pressionado sequencialmente. Se o botão Up é pressionado (ou seja,

GpioDataRegs.GPADAT.bit.GPIO27==0), a variável Up ganha uma ficha e Down a

perde. Se o usuário pressiona o botão Down (ou seja,

Page 55: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

44

GpioDataRegs.GPADAT.bit.GPIO30==0), a variável Up perde a ficha e a Down a ganha.

Utilizando a função “goto” eu posso alternar entre um menu e outro pressionando o botão

“return” (voltar ao menu anterior, onde GpioDataRegs.GPADAT.bit.GPIO31==0).

Quando o botão “Ok” é pressionado (ou seja, GpioDataRegs.GPADAT.bit.GPIO25==0)

eu avanço ao menu secundário escolhido ou defino algum parâmetro de interesse.

Na figura 27 podemos ver o esquemático de transição do menu.

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

Medidor de Bolhas

Eletro-Resistivo

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

( )Medicao

( )Configuracoes

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

( )Unidades

( )Dist. Sondas

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

Dist. Sondas

- 3.0mm +

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

( )Velocidade

( )Frequencia

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

( )m/s

( )mm/s

Pin

o 1

Pin

o 2

Pin

o 3

Pin

o 4

Pin

o 5

Pin

o 6

Pin

o 7

Pin

o 8

Pin

o 1

0

Pin

o 1

1

Pin

o 1

2

Pin

o 1

3

Pin

o 1

4

Pin

o1

5

Pin

o1

6

( )Hz

( )Rpm

“↓” + “Ok”

“↓” + “Ok”

“↓”

+ “O

k”

“Ok” “Return” ou “Ok”

“Return” ou “Ok”

“Return” ou “Ok”

“Ok”

“Return”

“Return”

Início de medição“Ok”

Figura 27 – Esquemático de transição do menu

Page 56: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

45

4.1.4 – Interface de Comunicação Serial (SCI)

Para a realização da comunicação serial utilizamos a transmissão de bits em um

Baud Rate igual a 9600, sem bit de paridade, 1 bit de stop e 8 bits de dados. Utilizamos

as funções scia_xmit (envio de um caractere via serial) e a função scia_msg presentes no

exemplo SCI_ECHOBACK do software “Code Composer Studio” (Texas Instruments).

O SCICLK foi configurado para 37,5 MHz.

Em nosso projeto, o modo de transmissão dos valores de velocidade e frequência

está esquematizado na figura 28.

V1 V2 V3 V4 V5 F1 F2 F3 F4 F5 a/b

Figura 28 - Modo de transmissão de bytes via porta serial

Na figura 28 podemos observar que são transmitidos 11 bytes a cada envio de

informação: os 5 primeiros se referem ao valor de velocidade, os 5 seguintes se referem

ao valor de frequência e o 11º é o byte responsável por garantir que o programa em CVI

não irá armazenar a mesma informação duas vezes, pois ocorrerá uma alternância entre o

envio do caractere “a” com o caractere “b”, a cada envio de informação. Os caracteres V3

e F3, no caso de a unidade escolhida pelo usuário ser m/s e Hz, respectivamente, serão o

caractere “.”. Neste caso, a informação transmitida será de dois números com duas casas

decimais. O ponto é percebido pelo programa feito no CVI, e ele serve de referência para

indicar a unidade do valor lido, na interface com o usuário. Se a unidade escolhida for

“mm/s” para velocidade ou “RPM” para frequência, teremos que o ponto deixará de

existir e o número correspondente ao valor transmitido nestes 5 caracteres para cada

informação será um inteiro.

Page 57: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

46

4.2 – Programa no software CVI para comunicação serial com

DSP e aquisição de dados

Através da ferramenta de criação de programas com interface gráfica em C

(CVI/LABWINDOWS) da National Instruments, criamos um programa para realizar a

comunicação serial e salvar os dados em um arquivo txt ou csv (excel). O usuário tem a

opção de somente fazer aquisição de dados, somente monitorar os resultados (atualizados

em tempo real) pelo programa ou fazer as duas coisas. Na figura 29 podemos ver o

programa criado.

Conforme podemos ver na figura 29, o programa é caracterizado por possuir 4

regiões:

Configurações de porta: nesta região, configuramos a porta serial de entrada do

DSP no computador.

Resultados: nesta área os resultados são atualizados para monitoramento. O

usuário pode optar por desligar a atualização de resultados.

Aquisição de Dados: nesta região o usuário define o nome, extensão (csv ou txt)

e diretório ao qual o arquivo de aquisição de dados será salvo. A aquisição de dados

também é opcional, podendo ser desligada.

Figura 29 - Programa feito em CVI

Page 58: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

47

Histograma-Velocidade: esta região corresponde ao histograma, em tempo real,

da distribuição de velocidades ao longo da aquisição de dados. Nesta área podemos ainda

monitorar o maior e menor valor lido e a moda. Como a velocidade das bolhas segue uma

distribuição normal, nosso parâmetro de interesse é a moda, ou seja, o valor com o maior

número de amostras.

O programa retorna ainda uma mensagem de erro, caso o usuário configure

inadequadamente os parâmetros de porta serial, ou a fonte de sinal serial seja removida

do computador. Esta mensagem pode ser vista na figura 30.

Um arquivo de instalação foi criado para que se possa utilizar o programa em

qualquer computador, mesmo que não possua o CVI instalado.

O código correspondente à criação deste programa pode ser visto no anexo 2.

Figura 30 - mensagem padrão de erro do programa

Page 59: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

48

4.3 – Dinâmica do funcionamento do medidor eletro-resistivo

A dinâmica de funcionamento do medidor eletro-resistivo pode ser vista no

diagrama de blocos da figura 31.

Início daMedição

Menu de definição

de parâmetros

Preenchimento de 2 condições iniciais para o

filtro passa altas

Digitalização do Sinal

Cálculo dos parâmetros Para 6 amostras, calcular a média

Para mais 6 amostras, calcular a média e desvio

padrão

Para mais 6 amostras, calcular a média e desvio

padrão e os parâmetros do critério de Chauvenet

Envio de resultados ao display

Envio de resultados via comunicação serial

Aux5 = 0overtime

Aux5 = 0

Aux5 = 1

Aux5 = 2

Aux5 = 1

Aux5 = 2

Aux5 = 0

n<2

n≥ 2

Passa-altas

N<6

N=6 N=0

N=0N=6

N=6

Aux5 = 2N=0

Figura 31 - Dinâmica de funcionamento do medidor eletro-resistivo

Na figura 31, temos que “n” representa o número de conversões A/D, “N”

representa o número de bolhas com parâmetros quantificados, overtime é atingido quando

N permanece constante por mais de 4 s e “aux5” é uma variável auxiliar responsável pelas

etapas de cumprimento do critério de rejeição. Após o início da conversão A/D, temos o

preenchimento das condições iniciais do filtro passa alta. Em seguida teremos a

digitalização do sinal e cálculo dos parâmetros. Aqui surgirão 3 etapas sequenciais:

cálculo da média de 6 amostras de velocidades, depois cálculo de média e desvio padrão

Page 60: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

49

de mais 6 amostras e por último o cálculo dos limites do critério de Chauvenet e aplicação

destes limites para rejeição de amostras discrepantes. Em caso de overtime, a sequência

associada ao critério de Chauvenet é reiniciada.

4.4 – Montagem da Bancada experimental

Neste projeto, utilizaremos duas bancadas experimentais: a primeira bancada

compreende o envio de um sinal da sonda com defasagem controlada por software via

conversor D/A de uma placa de aquisição de dados da National Instruments (PCI 6014);

a segunda é a bancada descrita na seção 2.1 do capítulo 2, onde realizaremos a medição

da velocidade das bolhas diretamente do aparato.

4.4.1 – Bancada Experimental 1

Para esta bancada utilizaremos a placa de aquisição PCI 6014, que pode ser vista

na figura 32.

Figura 32 - Placa PCI 6014

O conversor A/D da placa PCI 6014, foi utilizado através do software

matlab/simulink. O sinal, armazenado na memória do computador sob uma variável

matlab é chamado no diagrama de blocos simulink e em seguida exportado em uma taxa

de amostragem de 5 kHz. O sinal é defasado através de comandos de manipulação de

Page 61: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

50

matrizes na linha de comando do matlab. O diagrama de blocos pode ser visto na figura

33 a seguir.

Figura 33 - Diagrama de blocos Simulink

Utilizando-se as borneiras da placa de Aquisição, fizemos a ligação do sinal de

saída da placa de aquisição para as entradas 2 e 3 do ADC do DSP F28335.

4.4.1 – Bancada Experimental 2

Esta bancada experimental compreende a finalidade deste projeto, que é a

medição da velocidade das bolhas. Esta bancada é formada pelos elementos listados na

seção 2.1 do capítulo 2.

O aparato experimental, ou seja, a estrutura contendo o tubo, os compressores e a

sonda pode ser vista na figura 34.

Page 62: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

51

Figura 34 - Aparato experimental

O circuito analógico da seção 2.3, com os componentes projetados soldados pode

ser visto na figura 35.

Figura 35 - Circuito analógico montado

Page 63: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

52

O conjunto formado por circuito analógico e baterias, DSP F28335, teclado

matricial e display de caracteres, utilizado neste projeto, pode ser visto na figura 36.

Figura 36 - Circuito analógico, DSP, teclado matricial e Display

Page 64: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

53

5 – Resultados Obtidos e Validação com

Shadow Sizer

5.1 – Menu de comunicação com o usuário

O usuário, ao ligar o DSP, que já possui o código em memória Flash, terá a opção

de configuração de alguns parâmetros através de um menu de entrada. Inicialmente o

display mostra a mensagem da figura 37.

Figura 37 - Mensagem e entrada do DSP

Após a mensagem, uma tela de menu será aberta ao usuário, conforme podemos

ver na figura 38.

Figura 38 - Primeiro estágio do menu

Neste primeiro estágio do menu, o usuário tem a opção de iniciar diretamente a

medição, ou realizar as configurações. Para iniciar as medições basta o usuário pressionar

Page 65: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

54

o botão número 3 (botão de “ok”). Se o usuário pressionar o botão para baixo (botão 2) e

em seguida pressionar “Ok”, um segundo estágio de menu aparecerá, conforme podemos

ver na figura 39.

Figura 39 - segundo estágio do menu

Se o usuário pressionar o botão para baixo e em seguida pressionar o botão de

“Ok”, abrirá a configuração de distância entre sondas, conforme podemos ver na figura

40. Se o botão referente ao “Return” for pressionado o menu retorna a tela da figura 38.

Figura 40 - distância entre sondas

Pressionando-se o botão UP (botão 1) o usuário incrementa 0,1 mm no valor de

distância entre sondas e Pressionando Down (botão 2), subtrai 0,1 mm do valor de

distância entre sondas, que vai sendo atualizado imediatamente no display. Pressionando

ok, eu associo o valor escolhido a variável “Dx” do código, que representa a distância

entre sensores para cálculo da velocidade. Se nenhuma configuração for feita, a variável

“Dx” assume o valor default de 3 mm.

Page 66: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

55

Pressionando-se o botão “Return” (botão 4), eu volto para a tela da figura 39.

Neste ponto, eu posso também selecionar a opção “Unidades” pressionando o “Ok”. Em

seguida, teremos no display as variáveis medidas e que podem ter sua unidade de medida

alterada. Se nenhuma unidade for escolhida, o programa utiliza “m/s” para velocidade e

“Hz” para frequência. Na figura 41 podemos ver este menu no display.

Figura 41 - Configuração de unidades

Conforme podemos ver na figura 41, o usuário pode escolher entre configurar

unidades da velocidade ou frequência. Escolhendo configurar velocidade, teremos a tela

da figura 42.

Figura 42 - Configuração de unidade de velocidade

De acordo com a escolha que faço nesta etapa, eu mudo a forma com que o

resultado se apresentará tanto no próprio display quanto no programa de aquisição serial.

O mesmo ocorre para o que for configurado em unidades de frequência. Na figura 43

podemos ver a tela de configuração de unidades para frequência de bolhas.

Page 67: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

56

Figura 43 - Unidades de frequência

Após fazer as devidas escolhas para unidades e distância entre sondas, apertando

o botão “Return”, o usuário deve voltar ao menu primário e lá poderá iniciar as medições

com as devidas configurações feitas.

Ao sair do menu, o programa detectará se existe ou não algum sinal na entrada,

baseado no nível de tensão da entrada ADC do DSP. Se o nível de tensão for zero, então

ele transmitirá a mensagem da figura 44 no display.

Figura 44 - Mensagem indicando ausência de sinal na entrada

Se existir algum sinal de entrada, o programa imediatamente iniciará o processo

de cálculos dos parâmetros estatísticos para rejeição de valores discrepantes. Durante

este processo, a mensagem da figura 45 aparecerá no display.

Page 68: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

57

Figura 45 - Mensagem indicando cálculo de parâmetros estatísticos

Logo após obter os parâmetros estatísticos, o display mostrará os resultados da

medição, conforme podemos ver na figura 46.

Figura 46 - Resultado indicado na tela do Display

5.2 – Utilização de um sinal com defasagem controlada via D/A

da PCI 6014

Para realização deste experimento, utilizamos a bancada experimental descrita no

item 4.4.1 do capítulo 4. O sinal será exportado via conversor A/D da placa de aquisição

PCI 6014 em uma taxa de amostragem de 5 kHz. O objetivo deste experimento é verificar

a eficácia do algoritmo de cálculo de velocidade implementado no DSP.

Page 69: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

58

5.2.1 – Verificação do Período de amostragem

Para efetuar a verificação do período de amostragem utilizamos um dos pinos de

saída digital do F28335. No início da função de interrupção ADC a saída digital foi

configurada em nível lógico alto e no fim da função de interrupção a saída digital foi

configurada para nível lógico baixo. Com isso podemos ver se o período de amostragem

está adequado com o tempo gasto para executar as instruções dentro da função de

interrupção. Na figura 47 podemos ver o sinal digital medido no osciloscópio.

Figura 47 - Sinal digital medido pelo osciloscópio

Como podemos observar na figura 47, o intervalo de amostragem foi de 210 µs e

o tempo gasto para execução das instruções dentro da função de interrupção (tempo em

que o nível lógico do sinal é 1) foi muito menor do que o período de amostragem.

5.2.2 – Resultados obtidos para três casos testados

Como forma de teste dos algoritmos implementados no DSP, conforme já

explicado anteriormente, utilizamos um sinal real da sonda, armazenado sob uma variável

do software Matlab através de aquisição de dados com o uso da placa PCI 6014 e o

Page 70: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

59

software Simulink, defasado por um conjunto de posições controlado, a fim de simular

um sinal ideal.

Na figura 48 podemos ver a digitalização do sinal, medida através de um

osciloscópio.

Figura 48 - Sinal da sonda e sua digitalização

Na figura 49 podemos ver a defasagem aplicada a dois sinais digitalizados,

medidos com um osciloscópio.

Figura 49 - Sinais digitalizados e defasados

Page 71: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

60

Neste experimento, testamos 3 defasagens diferentes: 10, 15 e 20 posições. Como

a distância entre sondas é de 3 mm, os valores de referência para velocidade serão de 1,5

m/s, 1,0 m/s e 0,75 m/s respectivamente, visto que o período de amostragem é de 200 µs.

Caso 1- Sinal defasado de 10 posições

Para este primeiro caso, utilizando o programa de aquisição via comunicação

serial feito em “CVI/LabWindows” (apresentado no item 4.2 do capítulo 4) obtivemos o

histograma de distribuição de velocidades da figura 50.

Figura 50 - Histograma de velocidade para um sinal defasado de 10 posições

Observe que a moda estatística (resultado mais vezes observado) foi de 1,5 m/s,

exatamente o valor de referência para a defasagem aplicada. Observe que alguns

resultados de velocidade abaixo do esperado foram encontrados. Isso se deve a

consecutivos travamentos no software simulink que, consequentemente atrasa a

exportação do sinal em alguns momentos.

Caso 2- Sinal defasado de 15 posições

Utilizando-se agora uma defasagem de 15 posições, obtivemos o histograma da

figura 51.

Page 72: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

61

Figura 51 - Histograma de velocidade para um sinal defasado de 15 posições

Observe que a moda estatística (resultado mais vezes observado) foi de 1 m/s,

exatamente o valor de referência para a defasagem aplicada. Observe que, assim como no

caso anterior, alguns resultados de velocidade abaixo do esperado foram encontrados

pelos mesmos motivos.

Caso 3- Sinal defasado de 20 posições

Utilizando-se agora uma defasagem de 20 posições, obtivemos o histograma da

figura 52.

Figura 52 - Histograma de velocidade para sinal defasado de 20 posições

Observe que a moda estatística foi de 0,75 m/s, exatamente o valor de referência

para a defasagem aplicada. Observe que, assim como nos casos anteriores, alguns

Page 73: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

62

resultados de velocidade abaixo do esperado foram encontrados pelos mesmos motivos

explicados anteriormente.

5.3 – Utilização do microprocessador na Bancada experimental

Neste experimento, utilizaremos a bancada experimental constituída pelos

elementos descritos na seção 2.1. Utilizaremos, ainda, o Shadow Sizer para validação dos

resultados obtidos. Nesta análise, não utilizaremos o critério de Lewis e Davidson para

rejeição de amostras. As sondas ensaiadas apresentaram uma grande influência destrutiva

na geometria das bolhas, sob a forma do problema indicado pela figura 22a. Assim, pelo

critério de Lewis e Davidson, quase todas as amostras seriam rejeitadas. Para contornar

este problema, é necessário que se utilize uma geometria nova para os sensores: as agulhas

devem ser feitas de material de alta condutividade, possuir boa rigidez estrutural (para

não se deformar com a passagem do escoamento) e ser fina o suficiente para deformar o

mínimo possível as bolhas. O código da função de interrupção ADC, referente ao critério

de Lewis e Davidson se encontra no anexo 3 e poderá ser utilizado em trabalhos futuros,

quando se for ensaiar uma geometria de sonda menos destrutiva ao escoamento.

5.3.1 – Estudo dos tempos associados a execução de códigos

Com a finalidade de apresentar as limitações trazidas pela utilização do display

de caractere, comunicação serial e tempo gasto na execução de instruções, faremos nesta

seção um estudo a respeito da limitação de leitura e processamento de resultados em

função da frequência com que as bolhas passam pelos sensores, ou seja, a frequência com

que teremos que processar e indicar os resultados ao usuário. Na figura 53 podemos ver

o período de aquisição e o tempo gasto no processamento dos dados na função de

interrupção do ADC (adc_isr). Para tanto, utilizamos uma das saídas digitais com nível

lógico alto na entrada da função de interrupção e nível lógico baixo na saída desta mesma

função, medidos com um osciloscópio digital.

Page 74: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

63

Figura 53 - Período de amostragem e tempo de execução de instruções

Como podemos ver na figura 53, o período de amostragem do conversor A/D do

DSP foi de exatamente 100 µs, conforme projetado. Nesta mesma figura, podemos

observar que o tempo gasto com as instruções presentes na função de interrupção do ADC

foi de 20 µs.

Um resultado, antes de ser apresentado ao usuário através do display e programa

de aquisição serial, precisa passar por algumas etapas que consomem tempo de

processamento. Desta forma, temos uma limitação na frequência com que os resultados

podem aparecer, ou seja, temos uma limitação na frequência de aparecimento de bolhas.

Para o display de caractere, para cada atualização temos um total de 33 instruções

(deslocamento de cursor e escrita). Para cada instrução, conforme recomendado pelo

fabricante do display, temos um atraso de 37 µs. Desta forma, o tempo total gasto para

disponibilizar um resultado no display é de 33x37 µs = 1,221 ms.

Para a transmissão via porta serial, teremos o total de envio de 110 bits (1 bit de

start, 8 bits de caractere e 1 bit de stop, sem bit de paridade e o envio de 11 caracteres por

resultado calculado). Desta forma, utilizando um Baud Rate de 9600 teremos um tempo

de 11,45ms gastos com o envio dos caracteres.

Nesta análise, devemos ainda considerar o tempo total gasto em todas as vezes em

que houve entrada na função de interrupção do ADC, entre a atualização de um resultado

e outro. O tempo total gasto com execução de todas estas instruções, que chamaremos de

Page 75: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

64

ti deve ser menor do que o período de bolhas, que será nosso período de atualização de

resultados. Desta forma, teremos que:

𝑡𝑖 =𝑁𝑢𝑚𝑏𝑖𝑡𝑠

𝐵𝑎𝑢𝑑 𝑅𝑎𝑡𝑒+ 𝑇𝑑𝑖𝑠𝑝𝑙𝑎𝑦 ∗ 𝑁𝑖𝑛𝑠𝑡𝑟𝑢çõ𝑒𝑠 +

𝑇𝐴𝐷𝐶

𝑓𝑏𝑜𝑙ℎ𝑎𝑠∗𝑇0<

1

𝑓𝑏𝑜𝑙ℎ𝑎𝑠 (27)

Na equação acima temos que “Numbits” é o número de bits transmitidos por

atualização de resultados na comunicação serial, “Baud Rate” é o Baud Rate utilizado na

transmissão, “Tdisplay” é o tempo de delay a ser utilizado por instrução no display de

caractere, “Ninstruções” é o número de instruções utilizadas por atualização de resultados,

TADC é o tempo gasto em instruções de código dentro da função de interrupção ADC,

“fbolhas” é a frequência de passagem de bolhas e T0 é o período de aquisição de dados.

Podemos simplificar a equação 27 na equação 28.

𝑡𝑖 = 11,45𝑚𝑠 + 1,221𝑚𝑠 +20𝜇𝑠

𝑓𝑏𝑜𝑙ℎ𝑎𝑠∗𝑇0<

1

𝑓𝑏𝑜𝑙ℎ𝑎𝑠 (28)

Frequência de bolhas máxima para disposição de resultados um a um

Fixando-se o período de aquisição T0 em 100 µs, podemos levantar a curva de

tempo gasto com instruções em função da frequência de bolhas, e período de bolhas em

função da frequência. Este gráfico pode ser visto na figura 54.

Page 76: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

65

Figura 54 - Período e tempo gasto com instruções versus frequência de bolhas

A interseção das curvas da figura 54 nos dará a máxima frequência de bolhas

admitida para um sistema com disposição de resultados um a um, sem que haja corrupção

das informações na transmissão de dados e disposição de resultados no display. Vale

ressaltar que as funções de transmissão ocorrem em segundo plano, na função main, por

questões de otimização da taxa de aquisição do conversor A/D do F28335. A interseção

entre as curvas pode ser vista na figura 55.

Page 77: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

66

Figura 55 - Frequência de bolhas máxima e tempo gasto com instruções associado

Desta forma, como podemos ver na figura 55, para este sistema a maior frequência

de bolhas admitida é de 63,09 Hz com um tempo máximo gasto em instruções de 15,85

ms.

Frequência de bolhas máxima para disposição de resultados um por seis

Este método de disposição de resultados que chamamos de “um por seis” foi o

escolhido para operar em nosso sistema. Nele, dispomos os resultados de velocidade

referentes a média para cada 6 bolhas. Os resultados de frequência são calculados em

função do tempo gasto na obtenção destas 6 amostras de velocidade (que corresponderia

ao aparecimento de 6 bolhas). Fixando-se o período de aquisição T0 em 100 µs, podemos

levantar a curva de tempo gasto com instruções em função da frequência de bolhas, e

período referente a 6 bolhas em função da frequência. Este gráfico pode ser visto na figura

56.

Page 78: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

67

Figura 56 - Frequência de bolhas máxima e tempo gasto com instruções associado

A interseção entre as curvas da figura 56 nos dará a frequência de bolhas máxima

admitida para um sistema com disposição de resultados um por seis, sem que haja

corrupção das informações na transmissão de dados e disposição de resultados no display.

A opção por utilizar uma frequência admissível de passagem de bolhas tão alta está

relacionada a confusão gerada no sistema de contagem de bolhas pela passagem de uma

esteira de pequenas bolhas, que geram falsos valores elevados de frequência. Na figura

57 podemos ver o ponto de interseção das curvas da figura 56.

Page 79: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

68

Figura 57 - Frequência de bolhas máxima e tempo gasto com instruções associado, sistema 1 por 6

Desta forma, como podemos ver na figura 57, para este sistema a maior frequência

de bolhas admitida é de 447,5 Hz com um tempo máximo de 13,41 ms gastos com as

instruções correspondentes.

Intervalo de aquisição máximo para obtenção de uma frequência de bolhas de até

447,5 Hz

Nesta análise, apresentaremos uma alternativa para obtenção da mesma

frequência máxima admissível de bolhas do item anterior em um sistema um por um,

como referência para trabalhos futuros. Para tanto, utilizaremos o maior Baud Rate

possível, ou seja, 115500 bits/s e fixaremos a frequência máxima de bolhas em 447,5 Hz.

Verificaremos qual o intervalo de amostragem mínimo que pode ser utilizado. Na figura

58 podemos ver a curva do tempo gasto com instruções em função do período de

amostragem.

Page 80: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

69

Figura 58 - Tempo gasto em instruções versus período de aquisição

O ponto marcado com um ‘*’ na figura 58 representa o período de aquisição

máximo que pode ser utilizado no conversor A/D do F28335. O valor associado a este

ponto pode ser visto na figura 59.

Figura 59 - Período máximo de aquisição de dados

Desta forma, conforme podemos observar na figura 59, o menor período de

aquisição para obtenção da máxima frequência de bolhas admissível de 447.5 Hz é de

790 µs. Um maior período entre conversões A/D significa um maior erro associado na

medição realizada.

Page 81: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

70

. 5.3.2 – Sinais analógicos e digitais obtidos

Utilizando-se um osciloscópio digital medimos as saídas do circuito analógico,

conforme podemos ver na figura 60.

Figura 60 - Sinais analógicos das sondas

Utilizando-se duas saídas digitais do F28335, medimos o sinal digitalizado através

de um osciloscópio digital. Estes sinais podem ser vistos na figura 61 abaixo.

Figura 61 - Sinais digitais dos sensores

Page 82: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

71

Como podemos ver na figura 61, o sinal do sensor a montante é sempre maior do

que o do sensor a jusante. Isso ocorre devido a influência destrutiva da intrusão dos

sensores.

5.3.3 – Validação com o Shadow Sizer

Nesta etapa de validação com o Shadow Sizer, utilizamos duas sondas em dois

ensaios diferentes. A primeira sonda foi construída com agulhas de acupuntura de 0,3mm

e revestida com tinta isolante. A segunda sonda foi feita com fio rígido, utilizado

comumente em protoboard, deixando duas pontas em contato com o meio, e as outras

duas pontas ligadas ao circuito analógico. Nesta sonda, o retorno do circuito também era

feito por uma haste de aço inoxidável. Ambas as sondas apresentavam sensores defasados

de 3mm, medidos com uma régua com precisão de 0,5 mm. Os sensores construídos

podem ser vistos nas figuras 62 e 63.

Figura 62 - Sonda 1, construída com agulha de acupuntura e isolada com tinta isolante

Page 83: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

72

Figura 63 - Sonda 2, construída com fio rígido

Para efetuar as medições com o Shadow Sizer, utilizaremos o LED, um anteparo

para difusão da luz e uma câmera. Entre a câmera e o LED colocaremos a estrutura com

o tubo com água e a sonda, conforme podemos ver na figura 64 abaixo.

Figura 64 - Aparato experimental com a câmera e o LED

Page 84: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

73

Para medição da velocidade de subida das bolhas, utilizamos o software

“Dynamic Studio”. Neste, inicialmente fazemos uma calibração de sistemas de pixels

para sistema métrico a partir de dois pontos com distância conhecida. A partir de então,

basta definir um intervalo de aquisição e um número total de quadros desejado. Para obter

os valores de velocidade basta verificar a distância percorrida pela bolha em um intervalo

de tempo dado número de quadros entre as posições vezes o intervalo de aquisição.

Em nosso experimento, utilizamos uma mesma vazão de injeção de gás, de

aproximadamente 12 l/min para os ensaios com as duas sondas. Esta vazão foi medida

com um rotâmetro (medidor de vazão de gás), conforme podemos ver na figura 65.

Figura 65 - Medição da vazão de injeção de gás por um rotâmetro

Em nosso procedimento experimental, o início da aquisição de resultados pelo

programa de aquisição serial precedia o de aquisição pelo Shadow Sizer e sempre

terminava depois, a fim de maximizar o número de amostras. Nesta análise, estaremos

interessados em comparar a moda estatística entre os resultados obtidos pela câmera com

os resultados obtidos pelo sensor eletro-resistivo.

Nas duas seções a seguir veremos os resultados obtidos pelas duas sondas

utilizadas.

Page 85: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

74

Resultados obtidos com a Sonda 1

A sonda 1, que pode ser vista na figura 62, apresentou uma característica

amplamente destrutiva ao escoamento. O intuito de se apresentar os resultados obtidos

utilizando esta sonda é mostrar como a geometria do sensor utilizado pode influenciar

diretamente os resultados obtidos. Na figura 66 podemos ver uma bolha, capturada pela

câmera, completamente deformada após passar pelo sensor.

Figura 66 - Bolha deformada pelo sensor

As velocidades obtidas pelo Shadow Sizer para este experimento imediatamente

antes de as bolhas passarem pelos sensores variavam de 0.26 a 0.33 m/s. A distribuição

das velocidades obtidas pelo sensor e indicadas no programa de aquisição serial pode ser

vista na figura 67.

Page 86: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

75

Figura 67 - Distribuição de velocidades para a sonda 1

Como podemos ver na figura 67, a deformação provocada pelo sensor nas bolhas

fez com que o resultado obtido, uma moda de 0,12 m/s, estivesse muito abaixo do

resultado esperado. Isso ocorre devido ao atraso gerado pelo sensor a montante na

passagem da bolha pelo mesmo. Para resolver este tipo de problema devemos construir

um sensor de geometria menos intrusiva, com agulhas e recobrimento isolante mais finos.

Resultados obtidos com a Sonda 2

A sonda 2, de geometria mais simples e mais eficaz do que a sonda 1 foi construída

com finos fios rígidos com a ponta descascada em contato com o escoamento. Na figura

68 podemos ver a baixa deformação de uma bolha na passagem por este sensor.

Figura 68 - Sonda 2 em contato com uma bolha

Page 87: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

76

No software “Dynamic Studio”, utilizamos uma taxa de amostragem de 50 Hz e

um valor total de 1.000 quadros, resultando em uma aquisição em 20 segundos. Após a

aquisição, o número total de bolhas de Taylor foi contado, totalizando 22. Desta forma, a

frequência de passagem de bolhas de Taylor para estas condições experimentais foi de

1.1 Hz. Os resultados obtidos nesta aquisição podem ser vistos na tabela 5.

Tabela 5- Dados para cálculo de velocidade pelo Shadow Sizer

Na figura 69 podemos ver a distribuição das velocidades através de um

histograma.

Frame 1 Altura 1 (mm) Frame2 Altura 2 (mm) Tempo (s) Velocidade (m/s)

3 40,88 5 66,95 0,04 0,65

33 40,17 37 65,7 0,08 0,31

111 36,96 117 73,91 0,12 0,30

157 38,92 163 79,09 0,12 0,33

233 39,1 240 81,59 0,14 0,30

272 34,28 278 73,73 0,12 0,32

329 52,67 336 83,55 0,14 0,22

357 47,13 359 71,77 0,04 0,61

414 40,17 421 82,84 0,14 0,30

484 35,71 491 81,41 0,14 0,32

522 35,53 528 81,95 0,12 0,38

561 35,89 567 73,02 0,12 0,30

602 41,06 606 77,13 0,08 0,45

656 39,46 662 76,41 0,12 0,30

702 35,53 708 76,06 0,12 0,33

752 37,67 759 83,02 0,14 0,32

803 40,88 809 81,41 0,12 0,33

850 36,42 857 82,66 0,14 0,33

883 44,45 885 72,13 0,04 0,69

923 34,64 930 79,45 0,14 0,32

968 55,35 972 79,63 0,08 0,30

Page 88: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

77

Figura 69 - Distribuição de velocidades obtidas pelo Shadow Sizer

Na figura 70 podemos ver a distribuição de velocidades obtidas pelo sensor

eletro-resistivo.

Figura 70 - Distribuição de velocidades obtidas pelo sensor eletro-resistivo

Como podemos observar nas figuras 69 e 70 a distribuição das velocidades do

sensor eletro-resistivo foi muito parecida com a distribuição das velocidades obtidas pelo

Shadow Sizer. A moda de velocidade obtida pelo sensor Eletro-Resistivo foi exatamente

a mesma moda de velocidade obtida pelo Shadow Sizer, de modo que os resultados de

velocidade apresentados pelo sensor construído podem ser considerados bons.

Page 89: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

78

O histograma referente a frequência de bolhas pode ser visto na figura 71. Temos

que cada valor amostrado se refere ao número de bolhas percebidas pelo sensor divididos

pelo tempo levado para amostrar 6 valores de velocidade dentro dos limites do critério de

rejeição de Chauvenet.

Figura 71 - Distribuição de frequência de bolhas

Como podemos observar na figura 71, o histograma de distribuição de frequência

de bolhas se concentra nos valores mais baixos. Alguns valores elevados surgem em

função da densa esteira de bolhas que surge após a passagem de uma bolha de Taylor. O

contador de bolhas detecta essas pequenas bolhas e as inclui no contador, de modo a gerar

um alto valor de frequência. A esteira de bolhas pode ser vista na figura 72.

Figura 72 - Esteira de bolhas formada após a passagem de uma bolha de Taylor

Page 90: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

79

6 – Considerações Finais e trabalhos

futuros

No capítulo 1 deste trabalho, vimos a importância da quantificação das variáveis

de interesse em um escoamento multifásico e como o conhecimento destas pode otimizar

um processo industrial, um projeto. Vimos ainda o princípio básico de funcionamento do

sensor eletro-resistivo e como ele pode ajudar na medição de escoamentos bifásicos cujo

acesso ótico seja precário.

No capítulo 2 apresentamos as ferramentas necessárias para a construção do

medidor eletro-resistivo e no capítulo 3 vimos os parâmetros de projeto e algoritmos para

processamento e rejeição estatística e sistemática de resultados discrepantes.

No capítulo 4 vimos alguns periféricos do DSP TMS320F28335, e apresentamos

como cada um foi programado. Vimos ainda como a bancada experimental foi organizada

e como foram feitos os experimentos.

No capítulo 5 vimos que os resultados obtidos com o sinal de defasagem

controlada vindo do software Matlab via conversor D/A foram excelentes. As respectivas

modas dos sinais com três defasagens diferentes ficaram iguais aos valores de referência.

Vimos ainda o funcionamento do sistema medindo a velocidade de subida das bolhas e

que a geometria dos sensores influencia diretamente na determinação dos resultados: com

uma sonda altamente intrusiva, os valores de velocidade medidos estiveram muito abaixo

do resultado de referência obtido pelo Shadow Sizer, enquanto que, utilizando-se uma

sonda menos intrusiva, a moda estatística de velocidade do sensor eletro-resistivo foi

idêntica à obtida pelo Shadow Sizer. Neste capítulo, vimos ainda que a presença de uma

esteira de bolhas pode confundir o contador de bolhas programado no DSP.

Para trabalhos futuros, precisamos melhorar os seguintes aspectos:

A sonda precisa ser menos intrusiva. Para tanto poderemos construir uma sonda

com agulhas de prata, alumínio ou algum outro material de alta condutividade. O

isolamento deve ser feito com uma fina camada de verniz isolante, de modo que

não altere tanto a geometria fina da agulha (como assim fazia a tinta isolante).

O retorno do circuito por uma haste metálica (intrusiva ao escoamento) precisa

ser substituído por um retorno em um tubo de aço inoxidável: nesta nova

Page 91: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

80

geometria, as agulhas ficariam centralizadas na seção do tubo externo de aço inox

por um pequeno tubo capilar, também de aço inox, por onde passariam os fios das

agulhas. O trecho do tubo de inox contaria com dois flanges nas suas extremidades

para ligação com o circuito hidráulico.

Com as duas modificações acima, poderemos utilizar o código referente ao

critério de rejeição de Lewis e Davidson presentes no Anexo 3 uma vez que os

sinais serão menos deformados pela intrusão do sensor.

Disponibilizar ao usuário as informações de tamanho de bolhas: para tanto,

devemos utilizar um display de caractere com mais de 2 linhas e atualizar o

programa de aquisição serial para indicar os valores médios de tamanho e dispor

o histograma, assim como é feito com os valores de velocidade.

Page 92: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

81

7 –Referências Bibliográficas

[1] Nassos, P. G.; “Development of a electrical Resistivity Probe for Void Fraction

Measurements in Air/Water Flow”. ANL-6738, 1963.

[2] <http://www.mspc.eng.br/tecdiv/med200.shtml> Acesso em 3/07/2015

[3] Lewis, D. A., Davidson, J. F.; “Bubble Sizes Produced by Shear and Turbulence in a

Bubble Column”. Chemical Engineering Science, v. 38, pp 161-168 e pp. 181-187,

1983.

[4] Rezende, S.S., Silva M.O., Emerenciano J.R., Silva Neto J.L.; “Desenvolvimento de

um Sistema de Medição de Fase Utilizando Sensores Eletro-Resistivos”, COBEM,

2007.

[5] Barbosa Junior, J. R.; “O Método dos Sensores Eletro-resistivos aplicado a Pluma de

Bolhas”. Tese de Mestrado, COPPE/UFRJ/Engenharia Mecânica, Brasil, 1997.

[6] Emerenciano, J.R; “Sistema a Sensor Eletro-Resistivo para Estudos de Escoamentos

Bifásicos”. Projeto de Graduação. Engenharia Elétrica – UFRJ, Brasil, 2012.

[7] Texas Instruments, “TMS320F28335/F28334/F28332/F28235/F28234/F28232

Digital Signal Controllers (Rev. M)”, 2012. Disponível em:

< http://www.ti.com/lit/ds/symlink/tms320f28335.pdf> Acesso em 1/07/2015

[8] Texas Instruments, “Hardware Design Guidelines for TMS320F28xx and

TMS320F28xxx DSCs”, 2015. Disponível em:

< http://www.ti.com/lit/an/spraas1c/spraas1c.pdf> Acesso em 8/07/2015

[9] Siqueira, B. A., Barbosa, L. F., Silva, D. D. “Desenvolvimento de um Sistema de

Medição de Fase Utilizando Sensores Eletro-Resistivos”, COBENGE, 2012.

[10] Vieira, L. P.; “Guia de utilização do controlador digital de sinal TMS320F28335”.

Projeto de Graduação. Engenharia Elétrica – UFJF, Brasil, 2013.

[11] Araujo, G. J.; “Sistema de Aquisição de Dados para Estudos de Transiente de

pressão e Detecção de Vazamentos em Oleodutos”. Tese de Mestrado,

PPGCEP/UFRN/Engenharia de Petróleo, Brasil, 2012.

[12] Silva, M. O., Barros, F. P., Silva, M. V., Lage , P. L.; “Análise de Técnica de

Sensores Duplos de Condutividade Para a Obtenção da Velocidade e do Tamanho de

Bolhas Usando Filmagem de Alta Velocidade”. ENEMP, 2007.

Page 93: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

82

[13] Texas Instruments, “TMS320x2834x Delfino Serial Communications

Interface (SCI) Reference Guide”, 2009. Disponível em:

< http://www.ti.com/lit/ug/sprug75a/sprug75a.pdf> Acesso em 10/07/2015

[14] Texas Instruments, “Serial Flash Programming of C2000™ Microcontrollers”,

2015. Disponível em:

<http://www.ti.com/lit/an/sprabv4a/sprabv4a.pdf> Acesso em 3/07/2015

[15] Texas Instruments, “Running an Application from Internal Flash Memory on the

TMS320F28xxx DSP”, 2013. Disponível em:

<http://www.ti.com/lit/an/spra958l/spra958l.pdf> Acesso em 3/07/2015

[16] Texas Instruments, “Programming TMS320x28xx and 28xxx Peripherals in

C/C++”, 2013. Disponível em:

<http://www.ti.com/lit/an/spraa85d/spraa85d.pdf> Acesso em 3/07/2015

[17] National Instruments, “Conceitos Gerais de Comunicação Serial”, 2013.

Disponível em:

< http://digital.ni.com/public.nsf/allkb/32679C566F4B9700862576A20051FE8F >

Acesso em 3/07/2015

[18] <http://www.maxwell.vrac.puc-rio.br/10669/10669_2.PDF> Acesso em 3/07/2015

Page 94: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

83

ANEXO 1 – Código utilizado no DSP

As seções abaixo foram separadas por questão de organização, porém podem ser tomadas

de forma sequencial.

A1.1 – Inicialização de Variáveis e funções

#include "DSP28x_Project.h"

#include "DSP2833x_Device.h"

#include "DSP2833x_Examples.h"

char *msg;

Uint16 aux10=0;

void scia_echoback_init(void);

void scia_fifo_init(void);

void scia_xmit(int a);

void scia_msg(char *msg);

#include <string.h>

#include <stdlib.h>

#include <math.h>

float distson = 3.0;

Uint16 aux11 =0;

Uint16 aux9=0;

Uint16 aux12=0;

Uint16 countt=0;

Uint16 contador_geral=0;

float T0=0.00010;

float wc = 0.628;

float ttf;

Uint16 count_freq=0;

float fVoltage1=0;

float escala = 10;

Uint16 auxc=1;

float fVoltage2;

float ytk[3] = 0,0,0;

float utk1[3] = 0,0,0;

Page 95: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

84

float ytk2[3] = 0,0,0;

float utk2[3] = 0,0,0;

float der1;

float der2;

float der11;

float der22;

float Dx = 0.0030;

float time2;

float time_bolha;

float freq;

float velocidade=0;

float tamanho;

float corda;

float Velx;

float medi=0;

float DP;

float vari=0;

float tsup;

float tinf;

Uint16 couta=1;

Uint16 aux6=0;

Uint16 count4=0;

Uint16 par_a = 1;

Uint16 par_b = 0;

extern Uint16 RamfuncsLoadStart;

extern Uint16 RamfuncsLoadEnd;

extern Uint16 RamfuncsRunStart;

Uint16 Frequencia=0;

Uint16 Velocidade=0;

Uint16 result[3] = 0,0,0;

Uint16 result2[3] = 0,0,0;

Uint16 Contador=0;

Uint16 dif1;

Uint16 dif2;

Uint16 Voltage1;

Page 96: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

85

Uint16 Voltage2;

Uint16 aux1=0;

Uint16 aux2=0;

Uint16 aux4=0;

Uint16 count1 = 0;

Uint16 count2 = 0;

Uint16 count3 = 0;

Uint16 var22 = 0;

Uint16 tam=0;

Uint16 Ok = 0;

Uint16 Up = 1;

Uint16 Down = 0;

Uint16 Return = 0;

Uint16 var=0;

Uint16 tam2=0;

Uint16 i=0;

Uint16 j=0;

Uint16 var2=0;

Uint16 tamanh(char strd[]);

Uint16 jjj;

Uint16 ConversionCount=0;

Uint16 aux5=0;

Uint16 N=0;

int bite[]= 0,0,0,0,0,0,0,0;

int delay_value=10;

void disp_vel(float veloc, Uint16 Par);

void disp_freq(float corda, Uint16 Par);

void dela(float del);

void cursor_init_erase(void);

void cursor_init(void);

void cursor_init_l2(void);

void cursor_desloc(Uint16 desl);

void cursor_liga(void);

void cursor_desliga(void);

void stri(char entrada[]);

Page 97: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

86

interrupt void adc_isr(void);

char *fti(float num, Uint16 parametro);

char rt2[6]=" ";

char rt4[6]=" ";

char rt6[4]=" ";

char *univel = "m/s";

char *unicor = "Hz";

char *rt;

char *rt3;

char car;

char entrad[16]="Vel.:";

char entrad2[16]="Freq.:";

float C;

Uint16 N2=0;

A1.2 – Função Main

A1.2.1 – Inicialização de periféricos e configurações gerais

main()

InitSysCtrl();

InitSciaGpio();

DINT;

#if (CPU_FRQ_150MHZ) // Default - 150 MHz SYSCLKOUT

#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 =

150/(2*3) = 25.0 MHz

#endif

#if (CPU_FRQ_100MHZ)

#define ADC_MODCLK 0x2 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK2 =

100/(2*2) = 25.0 MHz

#endif

EDIS;

EALLOW;

SysCtrlRegs.HISPCP.all = ADC_MODCLK;

EDIS;

Page 98: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

87

DINT;

InitPieCtrl();

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable();

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();

EALLOW;

PieVectTable.ADCINT = &adc_isr;

EDIS;

EALLOW;

GpioCtrlRegs.GPAMUX1.all = 0;

//GpioCtrlRegs.GPAMUX2.all = 0;

GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 0;

GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO4= 1;

GpioCtrlRegs.GPADIR.bit.GPIO2= 1;

GpioCtrlRegs.GPADIR.bit.GPIO8= 1;

GpioCtrlRegs.GPADIR.bit.GPIO16 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO17 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO18 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO19 = 1;

Page 99: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

88

GpioCtrlRegs.GPADIR.bit.GPIO20 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO21 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO22 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO23 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO24 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO25 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO26 = 1;

GpioCtrlRegs.GPADIR.bit.GPIO27 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO30 = 0;

GpioCtrlRegs.GPADIR.bit.GPIO31 = 0;

EDIS;

GpioDataRegs.GPASET.all = 0X040F0000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

cursor_init_erase();

GpioDataRegs.GPACLEAR.all = 0x01C70000;

GpioDataRegs.GPASET.all = 0x04380000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

stri("Medidor de Bolha");

cursor_init_l2();

stri("Eletro-Resistivo");

dela(2000);

jjj=0;

EALLOW;

scia_fifo_init(); // Initialize the SCI FIFO

scia_echoback_init(); // Initalize SCI for echoback

A1.2.2 – Menu de interação com usuário

while(1)

menu1:

if(jjj==0)

cursor_init_erase();

stri("( )Medicao");

Page 100: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

89

cursor_init_l2();

stri("( )Configuracoes");

cursor_init();

cursor_desloc(1);

jjj=1;

if((GpioDataRegs.GPADAT.bit.GPIO27==0)&(Up==0))

Up = 1;

Down = 0;

cursor_init();

cursor_desloc(1);

if((GpioDataRegs.GPADAT.bit.GPIO31==0)&(Down==0))

Up = 0;

Down = 1;

cursor_init_l2();

cursor_desloc(1);

if((GpioDataRegs.GPADAT.bit.GPIO25==0)&(Up==1))

break;

if((GpioDataRegs.GPADAT.bit.GPIO25==0)&(Down==1))

menu2:

cursor_init_erase();

stri("( )Unidades");

cursor_init_l2();

stri("( )Dist. Sondas");

cursor_init();

cursor_desloc(1);

Up=1;

Down=0;

while(1)

if((GpioDataRegs.GPADAT.bit.GPIO27==0)&(Up==0))

Up = 1;

Down = 0;

Page 101: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

90

cursor_init();

cursor_desloc(1);

if((GpioDataRegs.GPADAT.bit.GPIO31==0)&(Down==0))

Up = 0;

Down = 1;

cursor_init_l2();

cursor_desloc(1);

if(GpioDataRegs.GPADAT.bit.GPIO30==0)

jjj=0;

goto menu1;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Up==1)

menu3:

cursor_init_erase();

stri("( )Velocidade");

cursor_init_l2();

stri("( )Frequencia");

cursor_init();

cursor_desloc(1);

Up=1;

Down=0;

while(1)

if((GpioDataRegs.GPADAT.bit.GPIO27==0)&(Up==0))

Up = 1;

Down = 0;

cursor_init();

cursor_desloc(1);

if((GpioDataRegs.GPADAT.bit.GPIO31==0)&(Down==0))

Up = 0;

Down = 1;

cursor_init_l2();

cursor_desloc(1);

Page 102: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

91

if(GpioDataRegs.GPADAT.bit.GPIO30==0)

jjj=0;

goto menu2;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Up==1)

cursor_init_erase();

stri("( )m/s");

cursor_init_l2();

stri("( )mm/s");

cursor_init();

cursor_desloc(1);

Up=1;

Down=0;

while(1)

if((GpioDataRegs.GPADAT.bit.GPIO27==0)&(Up==0))

Up = 1;

Down = 0;

cursor_init();

cursor_desloc(1);

if((GpioDataRegs.GPADAT.bit.GPIO31==0)&(Down==0))

Up = 0;

Down = 1;

cursor_init_l2();

cursor_desloc(1);

if(GpioDataRegs.GPADAT.bit.GPIO30==0)

jjj=0;

goto menu3;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Up==1)

univel = "m/s";

Velocidade = 0;

goto menu3;

Page 103: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

92

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Down==1)

univel = "mm/s";

Velocidade = 1000;

goto menu3;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Down==1)

cursor_init_erase();

stri("( )Hz");

cursor_init_l2();

stri("( )Rpm");

cursor_init();

cursor_desloc(1);

Up=1;

Down=0;

while(1)

if((GpioDataRegs.GPADAT.bit.GPIO27==0)&(Up==0))

Up = 1;

Down = 0;

cursor_init();

cursor_desloc(1);

if((GpioDataRegs.GPADAT.bit.GPIO31==0)&(Down==0))

Up = 0;

Down = 1;

cursor_init_l2();

cursor_desloc(1);

if(GpioDataRegs.GPADAT.bit.GPIO30==0)

jjj=0;

goto menu3;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Up==1)

Page 104: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

93

unicor = "Hz";

Frequencia = 0;

goto menu3;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Down==1)

unicor = "Rpm";

Frequencia = 60;

goto menu3;

if(GpioDataRegs.GPADAT.bit.GPIO25==0&Down==1)

cursor_desliga();

cursor_init_erase();

stri(" Dist. Sondas");

setcont:

cursor_init_l2();

stri("- ");

strcpy(rt6,fti(distson,1));

stri(rt6);

stri("mm");

stri(" +");

cursor_init();

cursor_desloc(1);

Up=1;

Down=0;

while(1)

if((GpioDataRegs.GPADAT.bit.GPIO27==0)&(distson<31))

distson = distson + 0.1;

Dx = distson/1000;

goto setcont;

if((GpioDataRegs.GPADAT.bit.GPIO31==0)&(distson>(0)))

Page 105: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

94

distson = distson - 0.1;

Dx = distson/1000;

goto setcont;

if(GpioDataRegs.GPADAT.bit.GPIO30==0|GpioDataRegs.GPADAT.bit.GPIO25==0)

jjj=0;

cursor_liga();

goto menu2;

delay_value=2;

cursor_desliga();

cursor_init_erase();

stri(entrad);

stri(univel);

cursor_init_l2();

stri(entrad2);

stri(unicor);

delay_value=2;

cursor_desliga();

cursor_init_erase();

stri(entrad);

stri(univel);

cursor_init_l2();

stri(entrad2);

stri(unicor);

InitAdc();

PieCtrlRegs.PIEIER1.bit.INTx6 = 1;

IER |= M_INT1;

EINT;

ERTM;

Page 106: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

95

AdcRegs.ADCMAXCONV.all = 0x0001;

AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x3;

AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2;

AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1 = 1;

AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1;

EPwm1Regs.ETSEL.bit.SOCAEN = 1;

EPwm1Regs.ETSEL.bit.SOCASEL = 4;

EPwm1Regs.ETPS.bit.SOCAPRD = 1;

EPwm1Regs.CMPA.half.CMPA = 0x0080;

EPwm1Regs.TBPRD = T0*150000000/2;

EPwm1Regs.TBCTL.bit.CTRMODE = 0;

A1.2.3 – Região de alternância com interrupção

while(1)

if((aux5==0|aux5==1)&(aux9==0)&(fVoltage1!=0)&(aux10==0)&(aux12==0))

cursor_init_erase();

stri(" Obtendo ");

cursor_init_l2();

stri(" Parametros ");

aux10=1;

aux12=1;

if((aux5==0)&(fVoltage1==0)&(aux11==0))

cursor_init_erase();

stri(" Sem Sinal ");

cursor_init_l2();

stri(" Na Entrada ");

aux11=1;

scia_msg("pa");

aux12=0;

countt = 0;

if(auxc==0)

if((aux5==2)&(aux9==0))

Page 107: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

96

cursor_init_erase();

stri(entrad);

cursor_init_l2();

stri(entrad2);

aux9=1;

if(par_a==1)

par_a=0;

par_b=1;

disp_vel(medi, Velocidade);

cursor_desloc(1);

stri(univel);

disp_freq(freq, Frequencia);

cursor_desloc(1);

stri(unicor);

scia_msg("a");

ttf=0;

auxc=1;

count2=0;

else

par_a=1;

disp_vel(medi, Velocidade);

cursor_desloc(1);

stri(univel);

disp_freq(freq, Frequencia);

cursor_desloc(1);

stri(unicor);

scia_msg("b");

ttf=0;

auxc=1;

count2=0;

Page 108: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

97

A1.3 – Função de Interrupção de ADC

interrupt void adc_isr(void)

GpioDataRegs.GPASET.bit.GPIO2= 1;

Voltage1 = AdcRegs.ADCRESULT0 >>4;

Voltage2 = AdcRegs.ADCRESULT1 >>4;

fVoltage1 = ((float)(Voltage1))*3.169/4095;

fVoltage2 = ((float)(Voltage2))*3.169/4095;

if((contador_geral*T0)<6)

contador_geral++;

else

if((aux4==0)&&(ConversionCount<2))

if(ConversionCount==0) utk1[0]= fVoltage1;

if(ConversionCount==1) utk1[1]= fVoltage1;

if(ConversionCount==0) utk2[0]= fVoltage2;

if(ConversionCount==1) utk2[1]= fVoltage2;

else

if ((aux4==0)&&(ConversionCount==2))

utk1[2]= fVoltage1;

utk2[2]= fVoltage2;

aux4=1;

else

utk1[0]=utk1[1];

utk1[1]=utk1[2];

utk1[2]=fVoltage1;

utk2[0]=utk2[1];

utk2[1]=utk2[2];

utk2[2]= fVoltage2;

ytk[2] = (2*utk1[2] - 2*utk1[1]+((ytk[1])*(2-T0*wc)))/(2 + T0*wc);

Page 109: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

98

der1 = (ytk[2]-ytk[1])/(T0*800);

der2 = (ytk[2]-2*ytk[1]+ytk[0])*(0.0000004)/T0;

//result[2]=((der1>0.1)||result[1])&&(1-((der1>-

0.12)&&(der1<0)&&(der2>0)&&(ytk[2]<0.2)));

ytk2[2] = (2*utk2[2] - 2*utk2[1]+((ytk2[1])*(2-T0*wc)))/(2 + T0*wc);

der22=(ytk2[2]-2*ytk2[1]+ytk2[0])*(0.00000015)/T0;

der11 = (ytk2[2]-ytk2[1])/(T0*800);

//result2[2]=((der11>0.1)||result2[1])&&(1-((der11>-

0.12)&&(der11<0)&&(der22>0)&&(ytk2[2]<0.2)));

if(ytk[2]>0.35)

result[2] = 1;

GpioDataRegs.GPASET.bit.GPIO4= 1;

else

result[2] = 0;

GpioDataRegs.GPACLEAR.bit.GPIO4= 1;

if(ytk2[2]>0.35)

result2[2] = 1;

GpioDataRegs.GPASET.bit.GPIO8= 1;

else

result2[2] = 0;

GpioDataRegs.GPACLEAR.bit.GPIO8= 1;

dif1 = result[2]-result[1];

dif2 = result2[2]-result2[1];

if((dif1==1)||(aux1==1))

if(aux1==0)

aux1=1;

Contador = Contador + 1;

count1 = count1 + 1;

if((dif2==1)&&(aux2==0))

time2 = (Contador-1)*T0;

velocidade = Dx/(time2);

Page 110: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

99

time2=0;

count2 = count2+1;

if(velocidade<escala)

Velx = velocidade;

aux6=1;

if(aux5==0)

ttf = ttf+Velx;

N++;

N2=0;

if(aux5==1)

ttf = ttf+Velx;

vari = (Velx-medi)*(Velx-medi) + vari;

N++;

N2=0;

if((aux5==2)&(Velx<tsup)&(Velx>tinf))

count_freq++;

N2=0;

ttf = ttf+Velx;

vari = (Velx-medi)*(Velx-medi)+vari;

N++;

//disp_vel(velocidade);

aux2=1;

Contador=0;

if(dif1==-1)

if(velocidade != 0)

time_bolha = (count1-1)*T0;

tamanho = velocidade*time_bolha;

//disp_corda(tamanho*1000);

aux2=0;

velocidade = 0;

Page 111: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

100

count1=0;

aux2=0;

Contador=0;

velocidade=0;

aux1=0;

ytk[0]=ytk[1];

ytk[1]=ytk[2];

ytk2[0]=ytk2[1];

ytk2[1]=ytk2[2];

result[0]=result[1];

result[1]=result[2];

result2[0]=result2[1];

result2[1]=result2[2];

if(couta*T0>4)

if(N==0)

aux5=0;

Velx=0;

freq=0;

medi=0;

ttf=0;

vari=0;

aux6=0;

aux9=0;

aux10=0;

aux11=0;

count2=0;

tinf = 0;

tsup = 0;

DP=0;

count_freq=0;

count4=0;

Page 112: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

101

if(N2==1)

N=0;

N2=1;

couta=0;

if(N>6)

if(aux5==0)

aux5=1;

medi=ttf/N;

N=0;

count2=0;

count_freq=0;

count4=0;

if(aux5==1&N!=0)

medi=ttf/N;

DP = sqrt(vari/(N-1));

C = 1.73;

tsup = C*DP+medi;

tinf = medi-C*DP;

aux5=2;

N=0;

count2=0;

count_freq=0;

count4=0;

if(aux5==2&N!=0)

medi = ttf/N;

DP = sqrt(vari/(N-1));

C = 1.73;

tsup = C*DP+medi;

tinf = medi-C*DP;

N=0;

Page 113: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

102

auxc=0;

// if ((count_freq/((count4-1)*T0)<3))

freq = count_freq/((count4-1)*T0);//

count_freq=0;

count4=0;

couta=0;

ttf=0;

var=0;

vari=0;

if(aux6==1)

couta++;

count4++;

if(ConversionCount == 2)

ConversionCount = 0;

else ConversionCount++;

GpioDataRegs.GPACLEAR.bit.GPIO2= 1;

AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;

AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

return;

A1.4 – Funções Gerais Utilizadas no código

void disp_vel(float veloc, Uint16 Par)

rt= fti(veloc,Par);

cursor_init();

cursor_desloc(5);

strcpy(rt2,rt);

stri(rt2);

Page 114: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

103

scia_msg(rt2);

void disp_freq(float corda,Uint16 Par)

rt3= fti(corda, Par);

cursor_init_l2();

cursor_desloc(6);

strcpy(rt4,rt3);

stri(rt4);

scia_msg(rt4);

void stri(char entrada[]) //função para mandar uma string de entrada ao display

var=0;

tam =tamanh(entrada); //AQUI DEFINO O TAMANHO DA MINHA STRING DE

TEXTO PADRÃO

while (var<(tam))

car = entrada[var];

bite[0] = (car&(1));

bite[1] = ((car)&(2))>>1;

bite[2] = ((car)&(4))>>2;

bite[3] = ((car)&(8))>>3;

bite[4] = ((car)&(16))>>4;

bite[5] = ((car)&(32))>>5;

bite[6] =((car)&(64))>>6;

bite[7] = ((car)&(128))>>7;

GpioDataRegs.GPADAT.bit.GPIO24 = 1;

if(bite[0]==1) GpioDataRegs.GPASET.bit.GPIO16 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO16 = 1;

if(bite[1]==1) GpioDataRegs.GPASET.bit.GPIO17 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO17 = 1;

if(bite[2]==1) GpioDataRegs.GPASET.bit.GPIO18 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO18 = 1;

if(bite[3]==1) GpioDataRegs.GPASET.bit.GPIO19 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO19 = 1;

if(bite[4]==1) GpioDataRegs.GPASET.bit.GPIO20 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO20 = 1;

Page 115: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

104

if(bite[5]==1) GpioDataRegs.GPASET.bit.GPIO21 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO21 = 1;

if(bite[6]==1) GpioDataRegs.GPASET.bit.GPIO22 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO22 = 1;

if(bite[7]==1) GpioDataRegs.GPASET.bit.GPIO23 = 1;

else GpioDataRegs.GPACLEAR.bit.GPIO23 = 1;

GpioDataRegs.GPASET.bit.GPIO26 = 1;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

var++;

var22 = 0;

void dela(float del) //função que executa o delay

Uint32 result;

Uint32 jj=0;

result=del*90000000/13157;

while(jj<result)

jj++;

jj=0;

Uint16 tamanh(char strd[]) //função que me retorna o tamanho da string

int aaa = 0;

while(strd[aaa]!='\0')

aaa++;

return aaa;

char *fti(float num, Uint16 parametro) //função que converte o float de entrada em

string

Uint16 n1=0;

Uint16 n2=0;

Uint16 n3=0;

Uint16 n4=0;

Uint16 n5=0;

Page 116: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

105

char *s;

s = malloc( 6 * sizeof (char));

if(parametro==0)

char c1,c2,c3,c4;

n1= num/10;

n2= (num-(n1*10))/1;

n3 = ((num*10-n1*100-n2*10))/1;

n4=(num*100-n1*1000-n2*100-n3*10)/1;

c1 = n1 + 48;

c2 = n2 + 48;

c3 = n3 + 48;

c4 = n4 + 48;

s[0] = c1;

s[1] = c2;

s[2] = '.';

s[3] = c3;

s[4] = c4;

s[5] = '\0';

else if(parametro==1)

char c1,c2,c3;

n1= num/10;

n2= (num-(n1*10))/1;

n3 = ((num*10-n1*100-n2*10))/1;

c1 = n1 + 48;

c2 = n2 + 48;

c3 = n3 + 48;

if(n1!=0)

s[0] = c1;

else

s[0] = ' ';

if(n2!=0)

s[1] = c2;

Page 117: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

106

else

s[1] = ' ';

s[2] = '.';

s[3] = c3;

s[4] = '\0';

else if(parametro==60)

num = num*parametro;

char c1,c2,c3,c4,c5;

n1= num/10000;

n2= (num-(n1*10000))/1000;

n3 = ((num-n1*10000-n2*1000))/100;

n4=(num-n1*10000-n2*1000-n3*100)/10;

n5=(num-n1*10000-n2*1000-n3*100-n4*10);

c1 = n1 + 48;

c2 = n2 + 48;

c3 = n3 + 48;

c4 = n4 + 48;

c5 = n5 + 48;

if(n1==0)

s[0] = ' ';

else

s[0] = n1;

if((n2==0)&(n1==0))

s[1] = ' ';

else

s[1] = c2;

if((n3==0)&(n1==0)&(n2==0))

s[2] = ' ';

Page 118: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

107

else

s[2] = c3;

if((n3==0)&(n1==0)&(n2==0)&(n4==0))

s[3] = ' ';

else

s[3] = c4;

s[4] = c4;

s[5] = '\0';

else

num = num*parametro;

char c1,c2,c3,c4,c5;

n1= num/10000;

n2= (num-(n1*10000))/1000;

n3 = ((num-n1*10000-n2*1000))/100;

n4=(num-n1*10000-n2*1000-n3*100)/10;

n5=(num-n1*10000-n2*1000-n3*100-n4*10);

c1 = n1 + 48;

c2 = n2 + 48;

c3 = n3 + 48;

c4 = n4 + 48;

c5 = n5 + 48;

if(n1==0)

s[0] = ' ';

else

s[0] = n1;

if((n2==0)&(n1==0))

s[1] = ' ';

Page 119: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

108

else

s[1] = c2;

if((n3==0)&(n1==0)&(n2==0))

s[2] = ' ';

else

s[2] = c3;

if((n3==0)&(n1==0)&(n2==0)&(n4==0))

s[3] = ' ';

else

s[3] = c4;

s[4] = c4;

s[5] = '\0';

return(s);

void cursor_init_erase(void)

GpioDataRegs.GPACLEAR.all = 0x01FE0000;

GpioDataRegs.GPASET.all = 0x04010000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

void cursor_init(void)

GpioDataRegs.GPACLEAR.all = 0x01FD0000;

GpioDataRegs.GPASET.all = 0x04020000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

void cursor_init_l2(void)

GpioDataRegs.GPACLEAR.all = 0x013F0000;

Page 120: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

109

GpioDataRegs.GPASET.all = 0x04C00000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

void cursor_desloc(Uint16 desl)

GpioDataRegs.GPASET.all = 0x00140000;

GpioDataRegs.GPACLEAR.all = 0x00EB0000;

j=0;

while(j<desl)

GpioDataRegs.GPASET.bit.GPIO26 = 1;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

j++;

void cursor_desliga(void)

GpioDataRegs.GPACLEAR.all = 0x01F30000;

GpioDataRegs.GPASET.all = 0x040C0000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

void cursor_liga(void)

GpioDataRegs.GPACLEAR.all = 0X01F00000;

GpioDataRegs.GPASET.all = 0X040F0000;

dela(delay_value);

GpioDataRegs.GPACLEAR.bit.GPIO26 = 1;

// Test 1,SCIA DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity

void scia_echoback_init()

// Note: Clocks were turned on to the SCIA peripheral

// in the InitSysCtrl() function

SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback

// No parity,8 char bits,

// async mode, idle-line protocol

SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,

Page 121: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

110

// Disable RX ERR, SLEEP, TXWAKE

SciaRegs.SCICTL2.all =0x0003;

SciaRegs.SCICTL2.bit.TXINTENA =1;

SciaRegs.SCICTL2.bit.RXBKINTENA =1;

#if (CPU_FRQ_150MHZ)

SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.

SciaRegs.SCILBAUD =0x00E7;

#endif

#if (CPU_FRQ_100MHZ)

SciaRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 20MHz.

SciaRegs.SCILBAUD =0x0044;

#endif

SciaRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset

// Transmit a character from the SCI

void scia_xmit(int a)

while (SciaRegs.SCIFFTX.bit.TXFFST != 0)

SciaRegs.SCITXBUF=a;

void scia_msg(char *msg)

int i;

i = 0;

while(msg[i] != '\0')

scia_xmit(msg[i]);

i++;

// Initalize the SCI FIFO

void scia_fifo_init()

SciaRegs.SCIFFTX.all=0xE040;

SciaRegs.SCIFFRX.all=0x204f;

SciaRegs.SCIFFCT.all=0x0;

Page 122: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

111

ANEXO 2 – Código utilizado no CVI

#include <ansi_c.h>

#include <cvirte.h>

#include <userint.h>

#include <rs232.h>

#include <utility.h>

#include <formatio.h>

#include <string.h>

#include "serial_v2.h"

#include <time.h>

#include <stdio.h>

#include <stdlib.h>

#define HELP_MSG \

"This program serves as an example to illustrate the use of the \n"\

"Histogram and Mode functions in the Analysis libraries. The mode \n"\

"value is defined as the value that most often occurs in a given set \n"\

"of samples."

#include <cvirte.h> /* needed if linking executable in external compiler; harmless

otherwise */

#include <formatio.h>

#include <analysis.h>

#include <userint.h>

#include "mode.h"

int m_aux1=1;

int m_aux2=0;

double DataArray[2000];

int count00;

float maximo = 0;

static int panelHandle;

int contador2=1;

FILE *OutFile;

int chave2;

int aux6 = 0;

int w;

Page 123: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

112

int receive;

int chave;

char nome[520];

char diretorio[520];

char extensao[520];

int exten;

int aux2;

float periodo;

double coint2=0;

float freq;

float temp=1;

int parar;

long int count=1;

int RS232Error;

double std(char entrada[]);

double saida;

int aux1=0;

char te2[6];

double saida2;

int a, b, c, d;

double e;

char te[6];

int panel_handle,

config_handle,

comport,

baudrate,

portindex,

parity,

databits,

stopbits,

inputq, /* Sets input queue length in OpenComConfig */

outputq, /* Sets output queue length in OpenComConfig */

xmode,

ctsmode,

stringsize,

Page 124: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

113

bytes_sent,

bytes_read,

RS232Error,

config_flag,

breakstatus,

port_open,

com_status,

send_mode,

send_byte,

send_term_index,

read_term_index,

read_term,

inqlen, /* Stores result from GetInQLen */

outqlen; /* Stores result from GetOutQLen */

short read_cnt;

double timeout;

double teste;

char devicename[30];

char read_data[44];

static int serial;

int main (int argc, char *argv[])

if (InitCVIRTE (0, argv, 0) == 0)

return -1; /* out of memory */

if ((serial = LoadPanel (0, "serial_v2.uir", SERIAL)) < 0)

return -1;

DisplayPanel (serial);

RunUserInterface ();

DiscardPanel (serial);

return 0;

int CVICALLBACK OkCallback (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

switch (event)

case EVENT_COMMIT:

GetCtrlVal (serial, SERIAL_COMPORT, &comport);

Page 125: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

114

GetCtrlVal (serial, SERIAL_BAUDRATE, &baudrate);

GetCtrlVal (serial, SERIAL_PARITY, &parity);

GetCtrlVal (serial, SERIAL_DATABITS, &databits);

GetCtrlVal (serial, SERIAL_STOPBITS, &stopbits);

inputq = 64;

outputq = 64;

GetCtrlIndex (serial, SERIAL_COMPORT, &portindex);

aux1=1;

break;

return 0;

int CVICALLBACK QuitCallback (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

switch (event)

case EVENT_COMMIT:

QuitUserInterface (0);

break;

return 0;

int CVICALLBACK tempo (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

switch (event)

static int intervals;

static ssize_t hist[101];

static double axis[101];

double modeValue;

static double max, min;

static ssize_t imax, imin;

static int i;

static char message[64];

case EVENT_TIMER_TICK:

GetCtrlVal (serial, SERIAL_BINARYSWITCH, &chave);

GetCtrlVal (serial, SERIAL_BINARYSWITCH_2, &chave2);

Page 126: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

115

GetCtrlVal (serial, SERIAL_TOGGLEBUTTON , &parar);

if(chave2==0)

SetCtrlVal(serial,SERIAL_LED_2,0);

if((aux1==1)&(chave2==1))

DisableBreakOnLibraryErrors (); //desabilita aparecimento de erros

RS232Error = OpenComConfig (comport, devicename, baudrate, parity, databits,

stopbits, inputq, outputq); //configura porta

EnableBreakOnLibraryErrors ();

switch (RS232Error)

default :

if (RS232Error != 0) //mensagem padrão de erro

MessagePopup ("RS232 Erro", "Fonte de Entrada Serial Não encontrada");

aux1=0;

SetCtrlVal(serial,SERIAL_LED_2,0);

break;

case 0 :

SetCtrlVal(serial,SERIAL_LED_2,1);

bytes_read = ComRd (comport, read_data, 11);

te[0] = read_data[0] ;

te[1] = read_data[1] ;

te[2]= read_data[2] ;

te [3] = read_data[3] ;

te[4] = read_data[4] ;

saida = std(te);

te2[0] = read_data[5] ;

te2[1] = read_data[6] ;

te2[2]= read_data[7] ;

te2[3] = read_data[8] ;

te2[4] = read_data[9];

if((read_data[10]=='a')&&(m_aux1==1))

m_aux1=0;

m_aux2=1;

if((read_data[0]=='p')&(contador2==1))

Page 127: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

116

aux1=0;

SetCtrlVal(serial,SERIAL_LED_2,0);

contador2=0;

if((read_data[0]!='p'))

contador2=1;

if((chave==1)&(aux6==1)&(saida>0))

fprintf(OutFile,"%s\t%s \n",te,te2);

if((parar==1)&(saida>0))

if(te[2] == '.')

SetCtrlVal(serial,SERIAL_TEXTMSG_3,"m/s");

else

SetCtrlVal(serial,SERIAL_TEXTMSG_3,"mm/s");

if(te2[2] == '.')

SetCtrlVal(serial,SERIAL_TEXTMSG_4,"Hz");

else

SetCtrlVal(serial,SERIAL_TEXTMSG_4,"Rpm");

saida2 = std(te2);

coint2=coint2+1;

SetCtrlVal(serial,SERIAL_NUME,saida);

SetCtrlVal(serial,SERIAL_NUME2,saida2);

if(saida>0)

// DADOS ESTATÍSTICOS

DataArray[count00] = saida;

count00++;

intervals=35; //RESOLUÇÃO DO HISTOGRAMA

if(count00>10)

MaxMin1D (DataArray,count00, &max, &imax, &min, &imin);

Page 128: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

117

Mode (DataArray, count00, min, max, intervals, &modeValue);

Histogram (DataArray, count00, min, max, hist, axis, intervals);

SetCtrlVal (serial, SERIAL_HISTMIN, min);

SetCtrlVal (serial, SERIAL_HISTMAX, max);

SetCtrlVal (serial, SERIAL_MODE, modeValue);

DeleteGraphPlot (serial, SERIAL_GRAPH, -1, VAL_DELAYED_DRAW);

PlotXY (serial, SERIAL_GRAPH, axis, hist, intervals,

VAL_DOUBLE, VAL_SSIZE_T, VAL_VERTICAL_BAR,

VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);

if(count00==1999)

count00=0;

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

if((read_data[10]=='b')&&(m_aux2==1))

m_aux1=1;

m_aux2=0;

if((read_data[0]=='p')&(contador2==1))

aux1=0;

SetCtrlVal(serial,SERIAL_LED_2,0);

contador2=0;

if((read_data[0]!='p'))

contador2=1;

if((chave==1)&(aux6==1)&(saida>0))

fprintf(OutFile,"%s\t%s \n",te,te2);

if((parar==1)&(saida>0))

if(te[2] == '.')

SetCtrlVal(serial,SERIAL_TEXTMSG_3,"m/s");

else

SetCtrlVal(serial,SERIAL_TEXTMSG_3,"mm/s");

Page 129: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

118

if(te2[2] == '.')

SetCtrlVal(serial,SERIAL_TEXTMSG_4,"Hz");

else

SetCtrlVal(serial,SERIAL_TEXTMSG_4,"Rpm");

saida2 = std(te2);

coint2=coint2+1;

SetCtrlVal(serial,SERIAL_NUME,saida);

SetCtrlVal(serial,SERIAL_NUME2,saida2);

if(saida>0)

// DADOS ESTATÍSTICOS

DataArray[count00] = saida;

count00++;

intervals=35; //RESOLUÇÃO DO HISTOGRAMA

// DataArray

if(count00>10)

MaxMin1D (DataArray,count00, &max, &imax, &min, &imin);

Mode (DataArray, count00, min, max, intervals, &modeValue);

Histogram (DataArray, count00, min, max, hist, axis, intervals);

SetCtrlVal (serial, SERIAL_HISTMIN, min);

SetCtrlVal (serial, SERIAL_HISTMAX, max);

SetCtrlVal (serial, SERIAL_MODE, modeValue);

DeleteGraphPlot (serial, SERIAL_GRAPH, -1, VAL_DELAYED_DRAW);

PlotXY (serial, SERIAL_GRAPH, axis, hist, intervals,

VAL_DOUBLE, VAL_SSIZE_T, VAL_VERTICAL_BAR,

VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);

if(count00==1999)

count00=0;

Page 130: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

119

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

break;

return 0;

double std(char entrada[])

int a=0, b=0, c=0, d=0,f=0;

double e;

if(entrada[2]=='.')

a= entrada[0]-48;

b = entrada[1]-48;

c= entrada[3]-48;

d = entrada[4]-48;

e = a*10+b + c/10.0 + d/100.0;

else

if(entrada[0]!=' ')

a= entrada[0]-48;

if(entrada[1]!=' ')

b = entrada[1]-48;

if(entrada[3]!=' ')

c= entrada[3]-48;

if(entrada[4]!=' ')

d = entrada[4]-48;

f = entrada[2]-48;

e = a*10000+b*1000 + f*100 + c*10 + d;

return e;

Page 131: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

120

int CVICALLBACK OkCallback2 (int panel, int control, int event,

void *callbackData, int eventData1, int eventData2)

switch (event)

case EVENT_COMMIT:

GetCtrlVal (serial, SERIAL_STRING, diretorio);

GetCtrlVal (serial, SERIAL_STRING_2, nome);

GetCtrlVal (serial, SERIAL_EXTENS, &exten);

if(exten==0)

strcpy(extensao,".txt");

if(exten==1)

strcpy(extensao,".csv");

if(exten==2)

strcpy(extensao,".dat");

strcat(diretorio,"\\");

strcat(diretorio,nome);

strcat(diretorio,extensao);

GetCtrlVal (serial, SERIAL_BINARYSWITCH, &chave);

if((chave==1)&(aux6==0))

OutFile=fopen(diretorio,"w");

SetCtrlVal(serial,SERIAL_LED,1);

aux6=1;

if((chave==0)&(aux6==1))

fclose(OutFile);

SetCtrlVal(serial,SERIAL_LED,0);

aux6=0;

break;

return 0;

Page 132: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

121

ANEXO 3 – Função ADC_isr utilizando o

critério de Lewis e Davidson

Nas linhas de código a seguir, seguem as variáveis a serem inicializadas e a função de

interrupção ADC com o critério de Lewis e Davidson adicionado.

#include "DSP28x_Project.h"

#include "DSP2833x_Device.h"

#include "DSP2833x_Examples.h"

char *msg;

void scia_echoback_init(void);

void scia_fifo_init(void);

void scia_xmit(int a);

void scia_msg(char *msg);

#include <string.h>

#include <stdlib.h>

#include <math.h>

float c_velocidade;

Uint16 envia =1;

Uint16 envib = 0;

Uint16 c_aux3=0;

Uint16 m_aux1=0;

Uint16 c_aux4=0;

Uint16 c_aux5=0;

Uint16 c_auf1=0;

Uint16 c_auf2=0;

Uint16 c_count3=0;

Uint16 c_count4=0;

Uint16 c_count1;

Uint16 c_count2;

Page 133: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

122

float c_velocidade2;

float c_s1;

float c_s2;

float c_time_bolha2;

float c_time3;

float c_tanx;

float c_tanx2;

Uint16 c_aux7=0;

float distson = 3.5;

Uint16 aux10=0;

Uint16 aux11 =0;

Uint16 aux9=0;

Uint16 aux12=0;

Uint16 countt=0;

float T0=0.00020;

float wc = 0.628;

float ttf;

Uint16 count_freq=0;

float fVoltage1=0;

float escala = 10;

Uint16 auxc=1;

float fVoltage2;

float ytk[3] = 0,0,0;

float utk1[3] = 0,0,0;

float ytk2[3] = 0,0,0;

float utk2[3] = 0,0,0;

float der1;

float der2;

float der11;

Page 134: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

123

float der22;

float Dx = 0.0035;

float c_time2;

float time_bolha;

float freq;

float velocidade=0;

float tamanho;

float corda;

float Velx;

float medi=0;

float DP;

float vari=0;

float tsup;

float tinf;

Uint16 couta=1;

Uint16 aux6=0;

Uint16 count4=0;

extern Uint16 RamfuncsLoadStart;

extern Uint16 RamfuncsLoadEnd;

extern Uint16 RamfuncsRunStart;

Uint16 Frequencia=0;

Uint16 Velocidade=0;

Uint16 result[3] = 0,0,0;

Uint16 result2[3] = 0,0,0;

Uint16 Contador=0;

Uint16 dif1;

Uint16 dif2;

Uint16 Voltage1;

Uint16 Voltage2;

Page 135: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

124

Uint16 aux1=0;

Uint16 aux2=0;

Uint16 aux4=0;

Uint16 count1 = 0;

Uint16 count2 = 0;

Uint16 count3 = 0;

Uint16 var22 = 0;

Uint16 tam=0;

Uint16 Ok = 0;

Uint16 Up = 1;

Uint16 Down = 0;

Uint16 Return = 0;

Uint16 var=0;

Uint16 tam2=0;

Uint16 i=0;

Uint16 j=0;

Uint16 var2=0;

Uint16 tamanh(char strd[]);

Uint16 jjj;

Uint16 ConversionCount=0;

Uint16 aux5=0;

Uint16 N=0;

int bite[]= 0,0,0,0,0,0,0,0;

int delay_value=20;

void disp_vel(float veloc, Uint16 Par);

void disp_freq(float corda, Uint16 Par);

void dela(float del);

void cursor_init_erase(void);

void cursor_init(void);

Page 136: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

125

void cursor_init_l2(void);

void cursor_desloc(Uint16 desl);

void cursor_liga(void);

void cursor_desliga(void);

void stri(char entrada[]);

interrupt void adc_isr(void);

char* fti(float num, Uint16 parametro);

char rt2[6]=" ";

char rt4[6]=" ";

char rt6[4]=" ";

char *univel = "m/s";

char *unicor = "Hz";

char *rt;

char *rt3;

char car;

char entrad[16]="Vel.:";

char entrad2[16]="Freq.:";

float C;

Uint16 N2=0;

interrupt void adc_isr(void)

Voltage1 = AdcRegs.ADCRESULT0 >>4;

Voltage2 = AdcRegs.ADCRESULT1 >>4;

fVoltage1 = ((float)(Voltage1))*3.169/4095;

fVoltage2 = ((float)(Voltage2))*3.169/4095;

if((aux4==0)&&(ConversionCount<2)) //aux4 serve para preencher as condições

iniciais apenas uma vez

if(ConversionCount==0) utk1[0]= fVoltage1;

if(ConversionCount==1) utk1[1]= fVoltage1;

if(ConversionCount==0) utk2[0]= fVoltage2;

if(ConversionCount==1) utk2[1]= fVoltage2;

Page 137: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

126

else

if ((aux4==0)&&(ConversionCount==2))

utk1[2]= fVoltage1;

utk2[2]= fVoltage2;

aux4=1; //desabilito aux4

else

utk1[0]=utk1[1];

utk1[1]=utk1[2];

utk1[2]=fVoltage1;

utk2[0]=utk2[1];

utk2[1]=utk2[2];

utk2[2]= fVoltage2;

ytk[2] = (2*utk1[2] - 2*utk1[1]+((ytk[1])*(2-T0*wc)))/(2 + T0*wc);

//der1 = (ytk[2]-ytk[1])/(T0*800);

//der2 = (ytk[2]-2*ytk[1]+ytk[0])*(0.0000004)/T0;

//result[2]=((der1>0.1)||result[1])&&(1-((der1>-

0.12)&&(der1<0)&&(der2>0)&&(ytk[2]<0.2)));

ytk2[2] = (2*utk2[2] - 2*utk2[1]+((ytk2[1])*(2-T0*wc)))/(2 + T0*wc);

//der22=(ytk2[2]-2*ytk2[1]+ytk2[0])*(0.00000015)/T0;

//der11 = (ytk2[2]-ytk2[1])/(T0*800);

//result2[2]=((der11>0.1)||result2[1])&&(1-((der11>-

0.12)&&(der11<0)&&(der22>0)&&(ytk2[2]<0.2)));

if(ytk[2]>0.5)

result[2] = 1;

else

result[2] = 0;

Page 138: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

127

if(ytk2[2]>0.5)

result2[2] = 1;

else

result2[2] = 0;

dif1 = result[2]-result[1];

dif2 = result2[2]-result2[1];

if((dif1==1)||(aux1==1)) //aux1 habilita a entrada neste if após o primeiro dif1=1

if(aux1==0) //após entrar no if eu habilito aux1 para que a partir de agora se entre no

if através do aux1

aux1=1;

Contador = Contador + 1; //esse é o meu contador principal habilitado quando entro

no if e zerado quando eu saio

count1 = count1 + 1;//esse é o meu contador principal habilitado quando entro no if

e zerado quando eu saio

if((dif2==1)&&(aux2==0)) //quando a bolha 2 começa pela primeira vez eu entro

aqui (pois aux2=0)

c_time2 = (Contador-1)*T0; //é o tempo de atraso entre frente de bolha1 e 2

c_velocidade = Dx/(c_time2); //a velocidade é a distância entre sondas dividido

pelo tempo

// c_time2=0; //reseto meu tempo, pois já calculei a velocidade

count2 = count2+1; //esse é o meu contador de bolhas

aux2=1 ; //desabilito a entrada nese if, caso apareça mais de uma bolha2

c_aux3=1; //auxiliar que habilita contagem de tamanho da bolha2

c_aux4=1; //auxiliar que habilita entrar em if de final da bolha2

if (c_aux3==1)

c_count4++;

Page 139: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

128

//contagem de bolha2

if((dif1==-1)&&(c_aux7==0)) //final da bolha1

c_aux7=1;

m_aux1=1;

if(c_velocidade != 0) //se ao final da bolha1, alguma velocidade tiver sido definida,

ou seja, se tiver tido ocorrencia da bolha2

time_bolha = (count1-1)*T0; //tempo de duração da bolha1 é função do contador

principal

//tamanho = velocidade*time_bolha;

c_tanx=time_bolha; //guardo essa duração de bolha1 nesta variavel

//aux2=0;

//c_velocidade = 0;

c_auf1=1;//auxiliar de final de bolha1

c_s1=(count1-1)*T0;//tempo do fim da bolha1

else //se não tiver tido ocorrência de bolha2, eu zero tudo e espero a próxima

count1=0;

aux2=0;

Contador=0;

c_velocidade=0;

aux1=0;

c_aux3=0;

c_aux4=0;

c_aux5=0;

c_aux7=0;

c_auf1=0;

c_auf2=0;

c_count3=0;

c_count4=0;

c_velocidade2=0;

m_aux1=0;

if ((dif2==-1)&&(c_aux4==1)) //se chega o final da bolha2

Page 140: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

129

if(m_aux1==1)

c_time_bolha2=(c_count4-1)*T0; //define duração da bolha2

c_aux4=0;

c_auf2=1; //auxiliar que bolha 2 acabou

c_count4=0; //contador de tamaho de bolha2

c_aux3=0;

c_s2=(count1-1)*T0; //tempo do fim da bolha 2;

if(c_s1>c_s2)

c_velocidade2=Dx/((c_s1-c_s2)); //velocidade2 definida pela diferença entre

parte trazeira da bolha

c_time3=((c_s1-c_s2)); //time3 é o tempo de atraso entre costas das bolhas

if(c_s2>c_s1)

c_velocidade2=Dx/((c_s2-c_s1));

c_time3=((c_s2-c_s1));

if (((c_time3>c_time2*0.85)&&(c_time3<c_time2*1.15)))

velocidade = (c_velocidade+c_velocidade2)/2

tamanho= (c_tanx+c_tanx2)*velocidade/2;

c_tanx2=c_time_bolha2;

aux1=0;

aux2=0;

c_aux3=0;

c_aux4=0;

c_aux5=0;

c_aux7=0;

c_count1=0;

c_count2=0;

c_count3=0;

c_count4=0;

Page 141: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

130

c_auf1=0;

c_auf2=0;

count1=0;

Contador=0;

c_velocidade=0;

c_velocidade2=0;

m_aux1=0;

if(velocidade<escala)

count_freq++;

Velx = velocidade; //guardo velocidade numa auxiliar

aux6=1;

if(aux5==0)

ttf = ttf+Velx; //vou somando as velocidades

N++; //vou incrementando numero de bolhas boas

N2=0;

if(aux5==1)

ttf = ttf+Velx;//vou somando as velocidades

vari = (Velx-medi)*(Velx-medi) + vari;

N++;//vou incrementando numero de bolhas boas

N2=0;

if((aux5==2)&(Velx<tsup)&(Velx>tinf))

N2=0;

ttf = ttf+Velx;

vari = (Velx-medi)*(Velx-medi)+vari;

N++;

else

Page 142: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

131

aux1=0;

aux2=0;

c_aux3=0;

c_aux4=0;

c_aux5=0;

c_aux7=0;

c_count1=0;

c_count2=0;

c_count3=0;

c_count4=0;

c_auf1=0;

c_auf2=0;

count1=0;

Contador=0;

c_velocidade=0;

c_velocidade2=0;

m_aux1=0;

//aux2=1;

//Contador=0;

ytk[0]=ytk[1];

ytk[1]=ytk[2];

ytk2[0]=ytk2[1];

ytk2[1]=ytk2[2];

result[0]=result[1];

result[1]=result[2];

result2[0]=result2[1];

result2[1]=result2[2];

if(couta*T0>4) //se meu overtime ultrapassa 4s

if(N==0) //se eu no tiver contado nenhuma bolha til em 4s

Page 143: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

132

//zero todas as minhas variaveis

aux5=0;

Velx=0;

freq=0;

medi=0;

ttf=0;

vari=0;

aux6=0;

aux9=0;

aux10=0;

aux11=0;

count2=0;

tinf = 0;

tsup = 0;

DP=0;

count_freq=0;

count4=0;

if(N2==1)

N=0;

N2=1;

couta=0; //zero meu contador de overtime

if(N>4)

if(aux5==0)

aux5=1; //jogo a ficha pra aux5

medi=ttf/N;

N=0;

count2=0; //

count_freq=0; //zero meu contador de frequencia

Page 144: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

133

count4=0; //

if(aux5==1&N!=0)

medi=ttf/N;

DP = sqrt(vari/(N-1));

C = 1.65;

tsup = C*DP+medi;

tinf = medi-C*DP;

aux5=2;

N=0;

count2=0;

count_freq=0;

count4=0;

if(aux5==2&N!=0)

medi = ttf/N;

DP = sqrt(vari/(N-1));

C = 1.65;

tsup = C*DP+medi;

tinf = medi-C*DP;

N=0;

auxc=0; //a partir daqui eu posso indicar os valores de velocidade e frequencia

freq = count_freq/((count4-1)*T0);

count_freq=0;

count4=0;

couta=0; //contador de overtime zera

ttf=0;

var=0;

vari=0;

if(aux6==1)

Page 145: SISTEMA ELETRO-RESISTIVO BASEADO EM DSP …monografias.poli.ufrj.br/monografias/monopoli10015222.pdf · 2.7 – Teclado Matricial e Display LCD de caracteres ..... 16 2.7.1 – O

134

couta++;//incremento contador de overtime

count4++; //contador de tempo para frequencia

if(ConversionCount == 2)

ConversionCount = 0;

else ConversionCount++;

AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1;

AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

return;