Você está na página 1de 9

MICROPROCESSADORES E MICROCONTROLADORES

Laboratório 1: Usando ADC do PIC

Felipe Cardoso A. de Araujo – F23DIB-7


João Paulo de Castro Corrêa – T9646D-0
Fernando Tomaz de Souza – G7324E-1
Matheus Nicolas Costa De Oliveira – N51755-7
Lucas de Oliveira Rodrigues – C767DD-7

RIBEIRÃO PRETO – SP
13/09/2023

1
Sumário

INTRODUÇÃO ................................................................................................................................ 3

DESENVOLVIMENTO...................................................................................................................... 3

RESULTADOS ................................................................................................................................. 6

CONCLUSÃO .................................................................................................................................. 9

BIBLIOGRAFIA ................................................................................................................................ 9

2
INTRODUÇÃO

Nessa prática buscou-se implementar um circuito que exiba em um display LCD


o valor de tensão aplicado a um pino de entrada do PIC16F877A. Esse valor de tensão
foi exibido no display de duas formas, a primeira forma foi correspondente ao valor digital
de tensão gerado pelo ADC presente no próprio PIC e a segunda forma foi esse valor de
tensão digital convertido em analógico, em mV. As alterações de valores de tensão eram
realizadas por meio do giro do knob de um potenciômetro.

DESENVOLVIMENTO

Na figura 1 é mostrado o circuito utilizado, que consiste em um PIC16F877A,


potenciômetro de 1kΩ, resistor de 10kΩ, voltímetro, uma fonte de tensão de 5V e um
display LCD. O resistor de 10kΩ é utilizado em configuração pull-up para manter o pino
de Masterclear em 1 e dessa forma desabilitá-lo.

Figura 1 - Circuito montado par teste no SimulIDE

3
Figura 2 - Ilustra a configuração dos pinos do LCD

A Figura 3 é a descrição de uma função que tomará o valor médio de 100 amostras.
Isso foi feito por meio de uma função de laço “for” com o intuito de que ruídos, os quais
podem elevar a grandes níveis os valores de tensão, sejam desconsiderados pois o número
de amostras tomadas será grande. Dentro da função “average_voltage” há a presença da
função “ADC_Read (0)” pertencente à biblioteca ADC, ativada no MikroC. Essa função
realiza a leitura do valor analógico de tensão no pino A0 do PIC e em seguida o converte
para um valor digital correspondente. A linha de código “temp_store= temp_store+
ADC_Read(0)” armazenará o valor da soma das 100 amostras e “return(temp_store/100)”
retornará o valor médio, quando a função for chamada.

Figura 3 - Função média das amostras

4
O primeiro bloco dentro da função void main( ) é responsável por limpar o LCD
e determinar em quais linhas e colunas serão escritas os textos fixos (“Tensao: ” e “mV”).
O segundo bloco configura o registrador referente aos pinos de I/O do PIC (TRISA),
configurando todos os pinos A como entrada, e o registrador Adcon1, responsável por
definir todos os pinos A para leitura analógica e ainda estabelecer como tensão de
referência a tensão de alimentação do PIC.
O terceiro bloco, dentro do while irá chamar a função average_voltage, explicada
anteriormente, e em seguida o valor digital de tensão será convertido em analógico e
impresso no display LCD. A Equação 1 realiza a conversão do valor digital de tensão para
analógico e a Equação 2 representa a resolução do ADC de 10 bits presente no PIC.

𝑣𝑎𝑛𝑎𝑙𝑜𝑔 = 𝑉𝑑𝑖𝑔𝑖𝑡𝑎𝑙 ∗ ∆ (1)


5
∆= = 4,887586𝑚𝑉 (2)
210 −1

Figura 4 – Exibição valor digital máximo de tensão

5
RESULTADOS

A Figura 5 representa o valor digital mínimo, quando o valor de tensão do terra


chega ao pino de entrada A0.

Figura 5 – Exibição valor digital mínimo de tensão

A Figura 6 representa o valor digital máximo, quando o valor de 5V chega ao


pino de entrada A0.

Figura 6 – Exibição valor digital máximo de tensão

6
A Figuras 7, 8 e 9 representam os valores de tensão analógicos máximo, mínimo e
aleatório.

Figura 7 – Valor analógico máximo de tensão

Figura 8 – Valor analógico mínimo de tensão

7
Figura 9 – Valor analógico aleatório de tensão

A Figura 10 representa um pequeno erro de quantização.

Figura 10 – Valor analógico aleatório de tensão

8
CONCLUSÃO

Através da utilização de um firmware específico juntamente com o Conversor


Analógico-Digital (ADC) integrado ao microcontrolador PIC, foi possível efetuar a
captura e processamento de valores analógicos provenientes do pino de entrada A0, os
quais são variáveis mediante o ajuste de um potenciômetro. Posteriormente, esses valores
foram convertidos em representações digitais e, em seguida, restaurados em formato
analógico. Vale destacar que, durante esse processo, foi observada uma discreta, porém
aceitável, margem de erro de quantização decorrente da conversão Digital-Analógica
(DA). A aplicação deste sistema revelou-se de notável utilidade, pois pode ser empregado
na leitura e monitoramento de diversas grandezas físicas, como temperatura, pressão,
radiação eletromagnética, entre outras, utilizando uma ampla variedade de sensores.

BIBLIOGRAFIA

[1] Microchip Technology Inc. 28/40/44-Pin Enhanced Flash Microcontrollers PIC16F87XA


Data Sheet

Você também pode gostar