Relatório Final Microcontroladores
-
Upload
bruno-santos -
Category
Documents
-
view
53 -
download
1
description
Transcript of Relatório Final Microcontroladores
Microprocessadores e Microcontroladores II
Relatório de Projeto
Final
TEMA
MANÔMETRO DIGITAL
Professor: Danilo Carlos Rossetto Minhoni Data: 10/12/2013
Nome R.A.
Bruno Rodrigues dos Santos 65220
Vinicius Brunelli Vallim 65125
Willian Luan Bonfanti 62419
1
Sumário
LISTA DE FIGURAS ......................................................................................... 3
LISTA DE SIGLAS ............................................................................................ 4
LISTA DE TABELAS ......................................................................................... 6
1. INTRODUÇÃO ........................................................................................... 7
1.1. Sistema Geral de Medição ................................................................... 7
1.2. Sistema de Medição de Pressão .......................................................... 8
1.3. Sensores utilizados na medição de pressão ...................................... 11
1.4. Transdutor de pressão piezoelétrico .................................................. 11
1.5. Conversor Analógico/Digital (A/D) ...................................................... 12
2. PROPOSTA DO PROJETO...................................................................... 14
3. DESCRITIVO DO PROJETO .................................................................... 15
4. DIAGRAMA DE BLOCO ........................................................................... 17
5. ESQUEMÁTICO DO CIRCUITO ............................................................... 18
6. MATERIAIS E MÉTODOS ........................................................................ 19
6.1 Materiais ................................................................................................ 19
6.2 Métodos ................................................................................................. 19
6.2.1 1ª ETAPA – SIMULAÇÕES EM SOFTWARE ............................. 20
6.2.1.1 Esquema sensor - conversor A/D ........................................................................20
6.2.1.2 Esquema micro 8051 – LCD ................................................................................22
6.2.1.3 Conversão da pressão .........................................................................................23
6.2.2 2ª ETAPA – SIMULAÇÕES EM BANCADA ................................ 26
6.2.2.1 Circuito de teste com LED’s ................................................................................26
6.2.2.2 Curva Bits x Pressão Real ....................................................................................29
7. RESULTADOS ......................................................................................... 32
2
8. CONCLUSÃO ........................................................................................... 38
9. REFERÊNCIAS ........................................................................................ 39
ANEXO A ........................................................................................................ 40
ANEXO B ........................................................................................................ 44
ANEXO C ........................................................................................................ 47
3
LISTA DE FIGURAS
Figura 1: Esquema geral de um sistema de medição genérico. ....................................................7
Figura 2: Escala de pressão...........................................................................................................9
Figura 3: Principais unidades de conversão de pressão. ............................................................10
Figura 4: Transdutor de pressão piezoelétrico. ..........................................................................12
Figura 5: Sensor de pressão piezoelétrico. .................................................................................12
Figura 6: Interface entre conversor A/D e microprocessador. ...................................................13
Figura 7: Esquemático do circuito. .............................................................................................17
Figura 8: Layout do circuito no PROTEUS v7.7 SP2. ....................................................................18
Figura 9: Esquema de ligação do sensor e do conversor A/D. ....................................................20
Figura 10: Gráfico Tensão de saída x Pressão de entrada. .........................................................21
Figura 11: Esquema de ligação micro 8051 e LCD. .....................................................................23
Figura 12: Tensão mínima e máxima de operação do sensor. ....................................................24
Figura 13: Gráfico Vsaída_sensor x Pressão ...............................................................................25
Figura 14: Gráfico do número de Pressão x Bits. ........................................................................25
Figura 15: Circuito de teste do ADC0804. ...................................................................................27
Figura 16: Circuito de teste. .......................................................................................................29
Figura 17: Gráfico Pressão Real x BITS. .......................................................................................30
Figura 18: Pressão de 12KPa. .....................................................................................................32
Figura 19: Pressão de 40 KPa......................................................................................................33
Figura 20: Pressão de 93 KPa......................................................................................................34
Figura 21: Pressão de 200 KPa....................................................................................................35
Figura 22: Medições finais. .........................................................................................................36
Figura 23: Unidades de medição. ...............................................................................................36
Figura 24: Circuito completo implementado. .............................................................................37
4
LISTA DE SIGLAS
LCD – Liquid Cristal Display
LED – Diodo Emissor de Luz
ABS – Pressão Absoluta
A/D – Conversor Analógico Digital
/WR – Pino de escrita do A/D
/INTR – Pino de verificação do estado da conversão
/CS – Pino do A/D
/RD – Pino de leitura do A/D
MPX5700GP – Modelo do sensor piezoresistivo utilizado
KPa – Unidade de pressão [N/m2]
atm – Unidade de pressão (atmosferas)
mmHg – Unidade de pressão (milímetros de Mercúrio)
PSI – Unidade de pressão
V – Unidade de tensão
ADC 0804 – Modelo do A/D utilizado
Vin+ - Pino de entrada do A/D para a tensão mensurada
C – Linguagem de Programação
AT89C51RD2 – Família de processadores 8051
AT89C51ED2 – Família de processadores 8051
P1_4_bit – Pino 1.4 do Microcontrolador 8051
P1_5_bit – Pino 1.5 do Microcontrolador 8051
P1_6_bit – Pino 1.6 do Microcontrolador 8051
P1_7_bit – Pino 1.7 do Microcontrolador 8051
P3_6_bit - Pino 3.6 do Microcontrolador 8051
P3_7_bit - Pino 3.7 do Microcontrolador 8051
P2_4_bit - Pino 2.4 do Microcontrolador 8051
5
P2_5_bit - Pino 2.5 do Microcontrolador 8051
P2_6_bit - Pino 2.6 do Microcontrolador 8051
P2_7_bit - Pino 2.7 do Microcontrolador 8051
sbit – Set bit
LCD_RS – Pino do registrador de seleção do sinal Alto (High) / Baixo (Low)
LCD_EN – Pino do registrador de Habilitção do Sinal
LCD_D4 – Pino de dados do LCD
LCD_D5 – Pino de dados do LCD
LCD_D6 – Pino de dados do LCD
LCD_D7 – Pino de dados do LCD
6
LISTA DE TABELAS
Tabela 1: Resumo dos dados para o cálculo da conversão.
Tabela 2: Valores binários reais.
Tabela 3: Cálculo do erro.
7
1. INTRODUÇÃO
1.1. Sistema Geral de Medição
Um sistema de medição é uma ferramente, que através da leitura de uma
variável física (grandeza física), é capaz de expressar a magnitude daquela
grandeza, podendo armazená-la (memória) e/ou apresentá-la (e.x.: LCD
(Liquid Cristal Display)).
Um padrão geral para um sistema de medição está ilustrado na Figura 1.
Basicamente, um sistema de medição consiste em quatro estágios:
Estágio do sensor-transdutor;
Estágio de condicionamento de sinal;
Estágio de saída;
Estágio de controle e realimentação.
Figura 1: Esquema geral de um sistema de medição genérico.
Fonte: Livro “Teoria e Projeto para Medições Mecânicas”.
No estágio do sensor-transdutor, o sensor é o responsável por captar a
variável que está sendo medida, no caso, ele é sensível à sua magnitude. Já o
8
transdutor converte essa informação em um sinal (mecânico ou elétrico, por
exemplo).
Por exemplo, o líquido contido no interior de um bulbo no termômetro de
bulbo troca energia com a sua vizinhança até que os dois estejam em equilíbrio
térmico. Nesse ponto, líquido e vizinhança estão à mesma temperatura. Essa
troca de energia é o sinal de entrada para esse sistema de medição. O
fenômeno da expansão térmica do líquido resulta em seu deslocamento para
cima e para baixo na haste, que nesse caso é o sinal de saída a partir do qual
determinamos a temperatura. O líquido no bulbo age como sensor. Forçando o
líquido em expansão em um tubo capilar estreito, esse sistema de medição
transforma uma informação térmica em um deslocamente mecânico. Deste
modo, o tubo capilar interno age como transdutor.
O estágio de condicionamento de sinal recebe o sinal do transdutor e
pode, se necessário, modificar a sua magnitude. Por exemplo, a relação entre
o diâmetro do tubo capilar de um termômetro e o volume do bulbo determina
quanto o líquido subirá na haste com o aumento da temperatura. Ele
“condiciona” o sinal por meio da amplificação do deslocamento do líquido.
Também pode remover parte do sinal indesejada, como ruídos.
O estágio de saída indica ou registra o valor medido. Este pode ser um
simples mostrador de saída, uma escala graduada ou mesmo um dispositivo de
registro, como a unidade de um computador. Nos sistemas de medição
envolvidos no controle de um processo, um quarto estágio, o estágio de
controle da realimentação, contém um controlador que interpreta o sinal
medido de uma decisão referente ao controle do processo. Essa decisão
resulta num sinal que modifica o parâmetro do processo que afeta a magnitude
da variável captada.
1.2. Sistema de Medição de Pressão
A medição de pressão, foco deste trabalho, é de grande importância em
sistemas de controle de processos na indústria porque através dela podemos
avaliar outras grandezas, como densidade, volume, força, velocidade, entre
tantas outras. Além disso, a pressão é uma grandeza de fácil medição.
9
A Figura 2 representa uma escala de pressão manométrica. Podemos ver
que existem três classificações para a pressão: manométrica, absoluta e
diferencial (ou relativa). De forma geral, a diferença básica entre elas é a
referência com a qual elas trabalham.
Figura 2: Escala de pressão.
Fonte: Livro “Teoria e Projeto para Medições Mecânicas”.
A definição desses três tipos de pressão pode ser vista a seguir:
Pressão absoluta: essa pressão é obtida em relação ao vácuo
total, ou seja, a referência é o zero absoluto. É comum encontrar a
notação ABS, indicando que se trata da pressão absoluta (e.x.:
PABS).
Pressão diferencial: essa pressão toma como referência uma
outra pressão diferente de zero. O seu uso é comum quando
deseja-se, por exemplo, tomar a diferença de pressão entre dois
tanques desnivelados.
Pressão manométrica (Gauge): essa é a pressão tomada com
referência a pressão atmosférica. Em outras palavras, ela é a
10
diferença entre a pressão absoluta (componente a ser medido) do
local e a pressão atmosférica. Veja que ela não deixa de ser uma
pressão diferencial, porém, recebeu esse nome para
intrinsicamente que a pressão de referência é a pressão
atmosférica, a qual sabemos o valor.
A Figura 3 traz as principais unidades de conversão de pressão.
Figura 3: Principais unidades de conversão de pressão.
Fonte: http://www.smar.com/newsletter/marketing/index23.html
11
1.3. Sensores utilizados na medição de pressão
Um transdutor de pressão, basicamente, converte a pressão em um sinal
elétrico ou mecânico. O transdutor pode ser definido como um sensor-
transdutor híbrido. O sensor se trata de um dispositivo com características
elásticas, que se deforma ao receber uma carga (pressão). Eles podem ser o
tubo de Bourdon, o fole, a cápsula e o diafragma. Já o transdutor converte a
deflexão mecânica em um sinal como, por exemplo, uma tensão elétrica. Os
transdutores de pressão estão sujeitos aos erros de: resolução, deslocamento
do zero, linearidade, sensibilidade, histerese.
Os tipos diferentes encontrados de sensores de pressão são listados
abaixo:
Capacitância variável (capacitivos);
Peizoresistivo (String Gage);
Potenciométrico
Piezoelétrico;
Relutância variável;
Ressonante, entre outros.
Esse trabalho utilizará um transdutor do tipo piezoelétrico. A descrição do
funcionamento do mesmo segue a diante.
1.4. Transdutor de pressão piezoelétrico
Um transdutor de pressão piezoelétrico possui um cristal piezoelétrico
que, sob a ação de um força se deforma e gera uma carga (elétrica) na sua
superfície, que é proporcional à força aplicada sobre ele. Em um transdutor de
pressão piezoelétrico, um cristal pré-carregado é instalado no sensor de
diafragma conforme indicado nas Figuras 4 e 5. A pressão age normalmente ao
eixo do cristal e varia a espessura do cristal, gerando a carga elétrica.
12
Figura 4: Transdutor de pressão piezoelétrico.
Fonte: Livro “Teoria e Projeto para Medições Mecânicas”.
Figura 5: Sensor de pressão piezoelétrico.
Fonte: Livro “Teoria e Projeto para Medições Mecânicas”.
1.5. Conversor Analógico/Digital (A/D)
Como vimos anteriormente, quando trabalhamos com a medição de uma
grandeza física, normalmente lidamos com um sinal analógico, que seria o
sinal enviado pelo sensor/transdutor. Porém, para que o sinal possa ser
“trabalhado” pelo microcontrolador (dispositivo digital), é necessário que esse
sinal chegue como um sinal digital. Basicamente, a diferença entre um sinal
analógico para um digital é a de que o analógico é contínuo na amplitude e no
tempo, e o digital é discreto na amplitude e no tempo. Portanto a interface
necessária entre o dispositivo analógico e o digital é o conversor A/D.
13
Vale fazer um paralelo entre o funcionamento do conversor A/D e a forma
de controle do mesmo. Como ele converte os dados para um sinal discreto, o
funcionamento dele não é contínuo, mas sim em intervalos de tempo pré-
definidos. Por esse motivo que, como veremos mais à frente, é necessário
controlar o intervalo de tempo em que o conversor A/D faz a leitura do sinal
analógico e o intervalo de tempo em que ele envia os dados “coletados”
adiante.
A Figura 6a ilustra a interface entre um conversor A/D e um
microprocessador. Na Figura 6b podemos ver o esquema de ligação
necessário para controlar o disparo para a leitura e o envio de dados pelo
conversor A/D através de uma chave, que controla o momento em que são
enviados os pulsos para as portas /WR e /INTR.
Figura 6: Interface entre conversor A/D e microprocessador.
Fonte:
www.projetostecnologicos.com/Componentes/CIsAnalogicos/ADC0804/ADC0804.html.
14
2. PROPOSTA DO PROJETO
Construir o protótipo de um manômetro digital utilizando o Kit 8051 Study
(8051LS V3.0) e um transdutor de pressão modelo MPX5700GP. Haverão 4
botões que permitirão a escolha da unidade em que a pressão será exibida
(KPa, atm, mmHg, PSI). Não haverá precisão decimal no projeto.
15
3. DESCRITIVO DO PROJETO
O sensor de pressão escolhido para o projeto, MPX5700GP, é um
transdutor piezoelétrico projetado para várias aplicações. Esse sensor possui
uma saída do tipo analógica.
O sensor MPX5700GP será conectado à saída pneumática do sistema do
qual deseja-se medir a pressão. A sua saída varia de 0 a 5V. Esse sinal será
convertido pelo conversor A/D em valores binários, pois o micro 8051
reconhece apenas valores binários.
Dessa forma, será necessário o uso de um conversor A/D para que a
entrada analógica decimal (sensor) possa ser convertida para binário (micro
8051). O conversor A/D que será utilizado nesse trabalho é o modelo
ADC0804.
Após o micro 8051 receber os dados (binários) do conversor A/D, será
feita a conversão dos dados de binário para decimal para que seja feita a
conversão e o respectivo cálculo da pressão. Mais à frente será descrito o
procedimento de conversão do valor recebido pelo micro 8051 em pressão
(KPa, bar, PSI, mmHg).
É importante observar que o controle da leitura e envio de dados do
conversor A/D será realizado pelo micro 8051, assim como a conversão dos
dados recebidos no valor da pressão propriamente dita. O código em
linguagem C do projeto será apresentado posteriormente. O software utilizado
para a programação será o MikroC Pro for 8051 v3.5.0.
O projeto foi dividido, basicamente, em duas etapas:
1ª Etapa: desenvolvimento do projeto no software PROTEUS v7.7 SP2
para análise e simulação do protótipo.
2ª Etapa: desenvolvimento do projeto “físico”, no protoboard, utilizando o
kit 8051.
Uma observação importante a se fazer é de que no software PROTEUS
V7.7 SP2 não há o modelo de sensor utilizado nesse projeto, no caso, há
16
apenas o modelo MPX4250. Por isso, a faixa de pressão lida no PROTEUS
V7.7 SP2 será de 0 a 250KPa. No entanto, isso não gera nenhum problema na
construção do projeto, pois a única coisa que mudará será o código de
conversão da pressão (linguagem C).
17
4. DIAGRAMA DE BLOCO
A Figura 7 traz o fluxograma de funcionamento do manômetro digital do
projeto. Veja que não há um ciclo envolvendo o sensor, pois não existe um
sistema de controle sobre o processo.
Basicamente, o sensor será responsável por realizar a medição da
pressão. Essa medição gerará um sinal que será enviado para o conversor
A/D.
O conversor A/D realizará a conversão do sinal que chega até ele para um
valor binário que posteriormente será enviado para o micro 8051.
O micro 8051 será responsável pelo controle do conversor A/D (momento
de conversão e momento de envio de dados) e também pelo processamento
do sinal recebido pelo conversor A/D e a transformação desse valor em
pressão que será enviado para o display LCD.
Figura 7: Esquemático do circuito. Fonte: Próprio autor.
18
5. ESQUEMÁTICO DO CIRCUITO
A Figura 8 mostra o esquemático completo do circuito montado no
PROTEUS v7.7 SP2 para a realização da 1ª Etapa do projeto.
Figura 8: Layout do circuito no PROTEUS v7.7 SP2.
Fonte: Próprio autor.
19
6. MATERIAIS E MÉTODOS
6.1 Materiais
1x Kit 8051 Study (8051LS V3.0);
1x Transdutor de pressão modelo MPX5700GP;
1x Conversor A/D modelo ADC0804;
1x Protoboard;
1x Fonte de celular de 5.1V;
1x Capacitor de 220µF;
1x Resistor de 10KΩ;
2x Resistores de 1KΩ;
4x botões PUSH-BOTTON;
8 LED’s vermelhos;
8 Resistores de 330Ω;
Conexão de engate rápido para mangueira de pressão;
20 cm mangueira de pressão PU 6x4.
6.2 Métodos
Aqui será descrito todo o procedimento de desenvolvimento do projeto.
A 1ª Etapa consiste na parte computacional, onde foi desenhado todo o
circuito no software PROTEUS v7.7 SP2 e também realizadas as simulações
necessárias.
A 2ª Etapa consiste na montagem do circuito em protoboard, teste de
ajuste do circuito e, por fim, na medição propriamente dita. No caso, a fonte de
pressão escolhida foi a linha de pressão do Centro de Usinagem da Oficina do
20
Núcleo de Engenharia. A escolha se deu porque a faixa de pressão com que a
máquina trabalha é justamente a faixa de pressão de leitura do sensor.
6.2.1 1ª ETAPA – SIMULAÇÕES EM SOFTWARE
6.2.1.1 Esquema sensor - conversor A/D
O software utilizado foi o PROTEUS V7.7 SP2.
A Figura 9 mostra o esquema de ligação do sensor MPX5700GP e o
conversor ADC0804. Os esquemas de ligação do sensor e do ADC0804 (e
seus componentes) foram retirados dos respectivos datasheets. Segundo o
datasheet do sensor, os pinos 4, 5 e 6 nunca são utilizados.
Figura 9: Esquema de ligação do sensor e do conversor A/D.
Fonte: Próprio autor.
21
O pino 1 do sensor deve ser conectado ao pino Vin+ do ADC0804. Esse
pino enviará o valor da leitura da pressão dentro de uma escala de 0.2V a 4.7V
(conforme seu datasheet), o pino 2 é controlado pelo 8051 (código em C) e o
pino 3 recebe uma tensão de entrada de 5V. A Figura 10 mostra o gráfico de
tensão de saída em função da pressão de entrada.
Figura 10: Gráfico Tensão de saída x Pressão de entrada.
Fonte: Datasheet MPX5700 SERIES (Motorola).
Na Figura 9 (sensor e conversor A/D), podemos ver os pinos /CS, /RD,
/WR, /INTR do ADC0804, que serão conectados ao micro 8051. Esses 4 pinos
são responsáveis pela conversão da tensão recebida do sensor e o posterior
envio dos dados para o micro 8051. De acordo com o datasheet do ADC0804,
para que obtenhamos uma conversão contínua no decorrer do tempo, são
necessárias as seguintes condições dos 4 pinos em questão:
O pino CS ficará sempre em nível lógico baixo, ou aterrado;
O pino /INTR é o responsável pela verificação do momento em que a
conversão começa e termina. No caso, quando a conversão está
ocorrendo, esse pino verificador fica em nível lógico alto, quando a
conversão acaba, ele vai para nível lógico baixo. Na lógica de
programação, o controle desse pino ficará em um laço com o controle do
pino /WR;
22
O pino /RD ficará em nível lógico alto, e no momento em que ele receber
um pulso para nível lógico baixo, serão enviados os dados do A/D para o
micro 8051.
O código que contém o trecho responsável pelo controle do A/D pode ser
visto ANEXO A.
6.2.1.2 Esquema micro 8051 – LCD
Será utilizado o kit 8051 que já possui, também, o LCD. Porém, na fase de
simulação em software, se fez necessário a montagem desses dois
componentes na simulação para a realização dos testes de “impressão”, no
LCD, da pressão lida. Os componentes ligados às portas do micro 8051,
conforme Figura 11, foram retirados do seu respectivo datshseet.
Vale observar que o micro 8051 utilizado no PROTEUS v7.7 SP2 foi o
modelo da família AT89C51RD2, pois não há o modelo AT89C51ED2 em sua
biblioteca. Enquanto que o micro do kit 8051 é o modelo da família
AT89C51ED2. Isso não ocasionará nenhum problema já que os dois modelos
são equivalentes, e o código em C rodará normalmente.
23
Figura 11: Esquema de ligação micro 8051 e LCD.
Fonte: Próprio autor.
O esquema de ligação entre os pinos do LCD e do micro 8051 foram
retirados do “Help” do software MikroC Pro, assim como a linguagem para a
“impressão” de dados no LCD. Conforme dito, esse esquema já está “montado”
no kit 8051, tornando desnecessários comentários à respeito deste tópico.
6.2.1.3 Conversão da pressão
Aqui, veremos como foi feito o cálculo da pressão no PROTEUS v7.7 SP2.
O processo para encontrar a fórmula da conversão é feito em três etapas.
Na primeira, é feita a conversão da tensão de entrada para uma escala
24
decimal. Na segunda, é feita a conversão desse valor decimal para binário, que
será enviado para o micro 8051. Na última etapa, é feita a conversão do valor
binário para o cálculo da tensão de acordo com a fórmula que será
demonstrada a seguir. Lembrando que, nessa fase do projeto, o sensor que
está sendo simulado é o MPX4250, portanto, as fórmulas aqui apresentadas
serão referentes à sua escala. Posteriormente, as equações serão alteradas
para a escala do sensor que será utilizado no projeto (MPX5700GP).
O PROTEUS v7.7 SP2 fornece uma tensão mínima do sensor de 0.26V e
máxima de 4.87V, conforme a Figura 12.
Figura 12: Tensão mínima e máxima de operação do sensor.
Fonte: Próprio autor.
A Figura 13 mostra o gráfico da tensão de saída do sensor em função da
pressão lida pelo mesmo. A Figura 14 mostra o gráfico da pressão lida pelo
sensor versus a tensão de saída do sensor convertida em Bits.
25
Figura 13: Gráfico Vsaída_sensor x Pressão.
Fonte: próprio autor.
Figura 14: Gráfico de Pressão x Bits.
Fonte: próprio autor.
Tabela 1: Resumo dos dados para o cálculo da conversão.
TABELA RESUMO
Tensão (V) Pressão (KPa) Bits Pressão (KPa)
0.26 0 10 0
2.57 125 128 125
4.87 250 249 250
26
De acordo com a Tabela 1, podemos encontrar a seguinte relação entre o
número de bits e o valor da pressão, conforme segue:
Na equação acima, “x” representa o número de bits, e “y” o valor da
pressão desejada em KPa.
O cógido completo em C do projeto pode ser visto no ANEXO A.
Foram retiradas imagens da simulação no PROTEUS v7.7 SP2, onde
podem ser vistas a pressão no sensor e a respectiva pressão convertida
mostrada no LCD. Vide ANEXO B.
6.2.2 2ª ETAPA – SIMULAÇÕES EM BANCADA
6.2.2.1 Circuito de teste com LED’s
Foi montado um circuito de teste com o conversor ADC0804 e 8 LED’s
com dois objetivos:
Teste do ADC0804;
Retirada da curva Pressão Real x BITS.
O teste do ADC0804 consistiu apenas em verificar o correto
funcionamento do componente. O teste foi feito aplicando-se um tensão de
entrada que “simulava” a tensão do sensor e comcomitantemente foi conferida
a sequência de LED’s acesos e apagados. Esse teste foi importante por dois
motivos:
1. Na simulação em software é necessária a aplicação de um clock
nas portas 3 e 5 do ADC0804. Os testes em software foram feitos
com um clock de 1Hz nessas portas. No entanto, quando foram
feitos os testes práticos em bancada, o ADC0804 não funcionava.
27
Como solução, foi adotado o circuito da Figura 15 encontrado em
um site sobre eletrônica. Esse circuito funcionou, e foi possível dar
continuidade ao andamento do projeto. É importante observar que
o capacitor aqui usado é de 220pF e não de 150pF, como
recomendado no datasheet.
Figura 15: Circuito de teste do ADC0804.
Fonte: http://www.newtoncbraga.com.br/index.php/artigos/54-dicas/1234.
2. Um segundo ponto, ainda mais importante, foi constatar que a
tensão VREF/2 é importantíssima para o correto funcionamento do
ADC0804, pois, na prática, uma diferença de aproximadamente
0.2V resultava em uma conversão incorreta feita pelo A/D. A fonte
de alimentação disponível para os testes não conseguia manter a
tensão constante sobre essa porta, levando a um constante erro na
conversão. Para minimizar esse problema, foi utilizada uma fonte
de alimentação de celular que possui uma saída de tensão
constante de 5.1V. Essa tensão está dentro do permitido pelo
sensor.
28
É importante salientar que esse mesmo circuito será utilizado
posteriormente para retirada da curva real de Pressão x BITS.
No Anexo D podemos ver algumas figuras com os resultados dos testes
com LED descrito neste tópico comparados com uma simulação idêntica no
PROTEUS V7.7 SP2. Embora o circuito de simulação em software tenha seuas
diferenças em relação ao circuito real, conforme já discutido, essa comparação
serviu de validação para o teste proposto.
29
6.2.2.2 Curva Pressão Real x Bits
De acordo com o datasheet, a faixa de tensão de saída do sensor
MPX5700GP vai de 0.2V a 4.7V (0 a 700KPa). No entanto, devemos lembrar
que na simulação realizada em software foi utilizado um sensor que suporta até
250KPa. Dessa forma, foram necessárias medições em bancada para retirada
da curva real de Bits x Pressão.
Essa medição foi feita com um circuito composto por 8 LED’s conectados
a cada uma das saídas de um ADC0804. Podemos ver o circuito de teste na
Figura 16.
Figura 16: Circuito de teste.
Fonte: próprio autor.
O procedimento realizado é bem simples. Através de um registro na linha
de pressão, variou-se a pressão de 20 em 20 PSI, até a pressão máxima, no
caso, 101.5 PSI (≈ 100 PSI).
30
A cada pressão selecionada, conferia-se a sequência dos LED’s que
estavam acesos e apagados. Isso porque cada um deles representava o nível
lógico em que estava cada porta do ADC0804. Feito isso, era feita a conversão
da sequência binária para um valor decimal, obtendo-se assim o gráfico que
podemos ver na Figura 17.
Figura 17: Gráfico Pressão Real x BITS.
Fonte: próprio autor.
Como podemos ver, embora a curva obtida seja linear, como deveria ser,
ela não cruza a origem (em (0,0)). Isso aconteceu porque os parâmetros da
equação utilizada no código em C não eram adequados. É importante salientar
que esse erro não foi aleatório, visto que a equação foi baseada nos dados do
sensor utilizado nas simulações no PROTEUS v7.7 SP2, e que nesses
simulações em software não houve erro entre a pressão do sensor e a pressão
convertida. A Tabela 2 traz os dados obtidos no experimento.
Tabela 2: Valores binários reais.
Bits Pressão Real (PSI)
8 0
49 20
97 40
145 60
189 80
Vale observar que a pressão real medida foi até 80 PSI, e não até 100
PSI, pois nessa pressão, o valor dos Bits não resultava na correta conversão
31
da pressão. Como as 5 medições obtidas foram lineares, decidiu-se ignorar
esse último valor.
Para correção da curva obtida no primeiro teste, foi calculado, de maneira
iterativa, quais seriam os melhores parâmetros da equação que resultasse no
menor erro até obter um erro total de 0.01%, conforme a Tabela 3. Esse valor
foi considerado aceitável, dada a proposta do projeto de um protótipo.
Tabela 3: Cálculo do erro.
Pressão (PSI) Erro Parcial
1.3 1.3%
19.0 -1.0%
39.7 -0.3%
60.5 0.5%
79.5 -0.5%
Erro Total
0.01%
Dessa forma, chegou-se na equação abaixo. Os valores que foram
“otimizados” estão destacados em verde.
A constante 0.1450377 é apenas para converter a pressão de KPa para
PSI, pois seria a forma mais fácil de obter o valor em PSI por conta do código
em C que calcula primeiramente a pressão em KPa.
Veja que a equação encontrada é expressa em PSI, pois essa escala, no
caso do sensor utilizado, vai até 100. Como o A/D é de 8 bits, a sua resolução
é de 256 números. Como a escala em PSI é até 100, nós conseguimos
trabalhar com um passo de 1 PSI por leitura do A/D.
No ANEXO C podemos ver o código final em C que foi implementado no
projeto.
32
7. RESULTADOS
Os primeiros resultados obtidos foram comparados com os resultados em
simulação, para verificação do correto funcionamento do projeto. Foram
realizadas algumas medições com valores de pressão aleatórios e comparados
com a pressão na simulação em software. Também é possível a comparação
entre a tensão de saída do sensor em ambos os casos. Essas comparações
são a primeira etapa da validação do sistema de leitura de pressão.
Figura 18: Pressão de 12KPa.
Fonte: próprio autor.
33
Figura 19: Pressão de 40 KPa.
Fonte: próprio autor.
34
Figura 20: Pressão de 93 KPa.
Fonte: próprio autor.
35
Figura 21: Pressão de 200 KPa.
Fonte: próprio autor.
36
Após essas medições aleatórias para comparação com o software, foram
medidas e comparadas as pressões na linha de pressão e a pressão
convertida pelo circuito. As imagens podem ser vistas na Figura 22.
Figura 22: Medições finais.
Fonte: próprio autor.
Por fim, na Figura 23, temos uma medição onde podemos ver a leitura
apresentada em 4 unidades diferentes, conforme a proposta do projeto.
Figura 23: Unidades de medição.
Fonte: próprio autor.
37
A Figura 24 nos traz uma foto do circuito completo implementado.
Figura 24: Circuito completo implementado.
38
8. CONCLUSÃO
A 1ª Etapa do projeto correu de maneira relativamente tranquila, onde o
maior desafio foi compreender o ciclo de funcionamento do conversor A/D
(leitura e conversão) para que o código de controle em C pudesse ser
implementado. No entanto, o código construído funcionou muito bem.
A 2ª Etapa transcorreu sem grandes problemas. Sendo que o maior
obstáculo foi o funcionamento do ADC0804. Após isso, o grupo montou o
circuito em protoboard e iniciou os testes com pressão obtendo bons
resultados.
Por fim, o resultado ao qual o projeto se propôs foi cumprido com
sucesso.
As fotos das medições realizadas podem ser vistas no ANEXO D.
39
9. REFERÊNCIAS
FIGLIOLA, Richard S.; BEASLEY, Donald E..Teoria e Projeto para Medições
Mecânicas: Conceitos Básicos de Métodos de Medição. 4. ed. Rio de Janeiro:
Ltc, 2007. Cap. 1, p. 1-2.
FIGLIOLA, Richard S.; BEASLEY, Donald E..Teoria e Projeto para Medições
Mecânicas: Amostragem, Instrumentos Digitais e Aquisição de Dados. 4. ed.
Rio de Janeiro: Ltc, 2007. Cap 7, p.204.
FIGLIOLA, Richard S.; BEASLEY, Donald E..Teoria e Projeto para Medições
Mecânicas: Medições de Pressão e Velocidade. 4. ed. Rio de Janeiro: Ltc,
2007. Cap 9, p.310.
CASSIOLATO, César. MEDIÇÃO DE PRESSÃO: Características,
Tecnologias e Tendências. Disponível em:
<http://www.smar.com/newsletter/marketing/index23.html>. Acesso em: 19 set.
2013.
PROJTEC. ADC0804 (CONVERSOR A/D). Disponível em:
<http://www.projetostecnologicos.com/Componentes/CIsAnalogicos/ADC0804/
ADC0804.html>. Acesso em: 22 set. 2013.
BRAGA, Newton C.. Conversor A/D de 8 bits (ART171). Disponível em:
<http://www.newtoncbraga.com.br/index.php/artigos/54-dicas/1234..>. Acesso
em: 08 out. 2013.
TODAY, Circuits. Interfacing ADC to 8051. Disponível em:
<http://www.circuitstoday.com/interfacing-adc-to-8051>. Acesso em: 27 ago.
2013.
40
ANEXO A
///////////////////////////Interface com o ADC0804//////////////////////////////
void Interface_ADC0804()
int INTR = 1;
P1_0_bit = 0; // porta CS=0 sempre em nível 0
P1_1_bit = 0; // RD em nível 0 (baixo)
P1_2_bit = 0; // WR em nível 0 (baixo)
Delay_ms(10);
P1_2_bit = 1; // WR em nível 1 -> início conversão
P1_3_bit = INTR;
if ( INTR = 0 )
P1_2_bit = 0;
///////////////////////////Controle do LCD//////////////////////////////////////
// Lcd module connections
sbit LCD_RS at P2_2_bit;
sbit LCD_EN at P2_3_bit;
sbit LCD_D4 at P2_4_bit;
sbit LCD_D5 at P2_5_bit;
41
sbit LCD_D6 at P2_6_bit;
sbit LCD_D7 at P2_7_bit;
// End Lcd module connections
char txt1[] = "Kpa";
char txt2[] = "atm";
char txt3[] = "PSI";
char txt4[] = "mmHg";
///////////////////////////Conversões///////////////////////////////////////////
char pressao_dec;
float pressao;
char press[5];
int botao;
void Calcula_pressao()
pressao_dec = (P3_0_bit)*1 + (P3_1_bit)*2 + (P3_2_bit)*4 + (P3_3_bit)*8 +
(P3_4_bit)*16 + (P3_5_bit)*32 + (P3_6_bit)*64 + (P3_7_bit)*128;
if (P0_0_bit = 1)
botao=1;
if (P0_1_bit = 1)
botao=2;
if (P0_2_bit = 1)
botao=3;
if (P0_3_bit = 1)
42
botao=4;
switch (botao)
case 1:
pressao = (250 * ((pressao_dec - 13)/235.)); // valor em KPa
Lcd_Out(1,7, txt1);
break;
case 2:
pressao = (0.009869233 * (250 * ((pressao_dec - 13)/235.))); // valor em
atm
Lcd_Out(1,7, txt2);
break;
case 3:
pressao = ( 0.1450377 * (250 * ((pressao_dec - 13)/235.))); // valor em
PSI
Lcd_Out(1,7, txt3);
break;
case 4:
pressao = ( 7.500617 * (250 * ((pressao_dec - 13)/235.))); // valor em
mmHg
Lcd_Out(1,7, txt4);
break;
default:
break;
43
///////////////////////////Programa principal///////////////////////////////////
void main()
Lcd_Init(); // inicializa o LCD
Lcd_Cmd(_LCD_CLEAR); // limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); // desliga o cursor
do
Interface_ADC0804(); // chama a função responsável pelo controle do AD
Calcula_pressao(); // chama a função responsável pelo cálculo e conversão da
pressão
IntToStr(pressao, press);
Lcd_Out(2,5, press);
while(1);
////////////////////////////////////////////////////////////////////////////////
44
ANEXO B
45
46
47
ANEXO C ///////////////////////////Interface com o ADC0804//////////////////////////////
void Interface_ADC0804()
int INTR = 1;
P1_4_bit = 0; // porta CS=0 sempre em nível 0
P1_5_bit = 0; // RD em nível 0 (baixo)
P1_6_bit = 0; // WR em nível 0 (baixo)
Delay_ms(10);
P1_6_bit = 1; // WR em nível 1 -> início conversão
P1_7_bit = INTR;
if ( INTR = 0 )
P1_6_bit = 0;
///////////////////////////Controle do LCD//////////////////////////////////////
// Lcd module connections
sbit LCD_RS at P3_6_bit;
sbit LCD_EN at P3_7_bit;
sbit LCD_D4 at P2_4_bit;
sbit LCD_D5 at P2_5_bit;
sbit LCD_D6 at P2_6_bit;
sbit LCD_D7 at P2_7_bit;
48
// End Lcd module connections
char txt1[] = "KPa "; // note que há um espaço após KPa
char txt2[] = "atm "; // note que há um espaço após atm
char txt3[] = "PSI "; // note que há um espaço após PSI
char txt4[] = "mmHg"; // note que não há um espaço após mmHg
///////////////////////////Conversões///////////////////////////////////////////
char pressao_dec;
float pressao;
char press[5];
int botao;
void Calcula_pressao()
pressao_dec = (P3_0_bit)*1 + (P3_1_bit)*2 + (P3_2_bit)*4 + (P3_3_bit)*8 + (P0_4_bit)*16 +
(P0_5_bit)*32 + (P0_6_bit)*64 + (P0_7_bit)*128;
if (P1_0_bit == 0)
Delay_ms(1);
P1_0_bit == 0;
botao=1;
if (P1_1_bit == 0)
Delay_ms(1);
P1_1_bit == 0;
49
botao=2;
if (P1_2_bit == 0)
Delay_ms(1);
P1_2_bit == 0;
botao=3;
if (P1_3_bit == 0)
Delay_ms(1);
P1_3_bit == 0;
botao=4;
switch (botao)
case 1:
pressao = (700 * ((pressao_dec - 5)/235.)); // valor em KPa
Lcd_Out(1,7, txt1);
break;
case 2:
pressao = ( 0.009869233 * (700 * ((pressao_dec - 5)/235.))); // valor em atm
Lcd_Out(1,7, txt2);
break;
case 3:
pressao = ( 0.1450377 * (700 * ((pressao_dec - 5)/235.))); // valor em PSI
50
Lcd_Out(1,7, txt3);
break;
case 4:
pressao = ( 7.500617 * (700 * ((pressao_dec - 5)/235.))); // valor em mmHg
Lcd_Out(1,7, txt4);
break;
default:
break;
///////////////////////////Programa principal///////////////////////////////////
void main()
Lcd_Init(); // inicializa o LCD
Lcd_Cmd(_LCD_CLEAR); // limpa o display
Lcd_Cmd(_LCD_CURSOR_OFF); // desliga o cursor
do
Interface_ADC0804(); // chama a função responsável pelo controle do ADC
Calcula_pressao(); // chama a função responsável pelo cálculo e conversão da pressão
IntToStr(pressao, press); // realiza a conversão de inteiro para char para poder ser mostrado
no LCD
Lcd_Out(2,5, press);
while(1);
////////////////////////////////////////////////////////////////////////////////
51
ANEXO D