sistemas digitais e microcontrolados
Post on 24-Jul-2022
1 Views
Preview:
TRANSCRIPT
1 UTFPR – Campus Curitiba
Prof. Amauri Assef
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA
CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA – TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL
Sistemas Digitais e Microcontrolados Conversor Analógico para Digital - PIC16F877A
Prof. Amauri Assef
amauriassef@utfpr.edu.br
Conversor Analógico para Digital
2 UTFPR – Campus Curitiba
Prof. Amauri Assef
Características do módulo A/D 10 bits de conversão
8 canais de entrada
AN0 – RA0
AN1 – RA1
AN2 – RA2
AN3 – RA3
AN4 – RA5
AN5 – RE0
AN6 – RE1
AN7 – RE2
Tensões de referência config.
Vref+ (superior)
Vref- (inferior)
CHS2:CHS0
PCFG3:PCFG0
PCFG3:PCFG0
Conversor Analógico para Digital
3 UTFPR – Campus Curitiba
Prof. Amauri Assef
Diagrama em bloco do A/D
Conversor Analógico para Digital
4 UTFPR – Campus Curitiba
Prof. Amauri Assef
Modelo da entrada analógica Amostragem e retenção – sample and hold
Conversor Analógico para Digital
5 UTFPR – Campus Curitiba
Prof. Amauri Assef
Diagrama em blocos do tratamento do sinal analógico
Transdutor Condicionamento do sinal
A/D
PIC16F877A
Grandeza física de processo
(temperatura, umidade,
pressão, etc.)
Sinal analógico convertido em
tensão ou corrente
Sinal analógico condicionado
Conversor Analógico para Digital
6 UTFPR – Campus Curitiba
Prof. Amauri Assef
Definições O módulo conversor analógico-digital (A/D) realiza a conversão de uma tensão
analógica em valores digitais, isto é, números binários;
Para o PIC16F877A a conversão do valor analógico em digital é realizada com comprimento de 10 bits;
Quanto maior a quantidade de bits maior a resolução e precisão do A/D
Por exemplo: supondo que a tensão aplicada ao pino de A/D varia entre 0 a 5V (tensão de fundo de escala), e o conversor possui 8 bits (N), a resolução é de:
Alterando o conversor A/D para 10 bits, temos:
Conversor Analógico para Digital
7 UTFPR – Campus Curitiba
Prof. Amauri Assef
Conversão do sinal analógico em digital Parâmetros:
A/D de 8 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 19,61mV/bit
Parâmetros:
A/D de 10 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 4,88mV/bit
Níveis de Tensão (V) Representação binária
0 B’0000 0000’
19,61m B’0000 0001’
... ...
5 B’1111 1111’
Níveis de Tensão (V) Representação binária
0 B’00 0000 0000’
4,88m B’00 0000 0001’
... ...
5 B’11 1111 1111’
Conversor Analógico para Digital
8 UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplos de cálculo para conversão A/D Parâmetros:
A/D de 8 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 19,61mV/bit
2,5V = ?
Parâmetros:
A/D de 10 bits
+ Vref = Vdd = 5V
- Vref = Vss = 0V
Resolução de 4,88mV/bit
2,5V = ?
5V → 255 2,5V → X X = 127,5 ≈ 128
5V → 1023 2,5V → X X = 511,5 ≈ 512
Conversor Analógico para Digital
9 UTFPR – Campus Curitiba
Prof. Amauri Assef
Registradores de 8 bits do módulo A/D
ADCON0 (A/D Control Register 0):
Controla a operação do módulo A/D
ADCON1 (A/D Control Register 1):
Configura as funções do PORTA e PORTE, e como o resultado será armazenado
ADRESH (A/D Result High Register):
Parte alta do resultado do A/D
ADRESL (A/D Result Low Register):
Parte baixa do resultado do A/D
Conversor Analógico para Digital
10 UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON0 (Endereço 1FH – Banco 0)
ADCS1:ADCS0: Seleção do clock de conversão do A/D
em conjunto com o ADCON1
00 - Fosc/2
01 - Fosc/8
10 - Fosc/32
11 – Frc (clock derivado do oscilador interno RC)
CHS2:CHS0: Seleção do canal analógico
000 – canal 0 (AN0)
001 – canal 1 (AN1)
010 – canal 2 (AN2)
011 – canal 3 (AN3)
100 – canal 4 (AN4)
101 – canal 5 (AN5)
110 – canal 6 (AN6)
111 – canal 7 (AN7)
GO//DONE: Bit de status da conversão A/D
0 – conversor A/D em espera
1 – conversão A/D em progresso
(setar este bit para iniciar conversão)
ADON: Bit para ligar o módulo A/D
0 – conversão A/D desligado
1 – conversor A/D ligado
Conversor Analógico para Digital
11 UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON1 (Endereço 9FH – Banco 1)
ADFM: Seleção do formato do resultado do A/D
0 – justificado à esquerda
1 – justificado à direita
ADCS2: Seleção do clock em conjunto com os bits ADCS1: ADCS0 do registradorADCON0
Conversor Analógico para Digital
12 UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON1 (Endereço 9FH – Banco 1)
PCFG3:PCFG0: Bits de controle de configuração do PORTA e PORTE
Conversor Analógico para Digital
13 UTFPR – Campus Curitiba
Prof. Amauri Assef
Registrador ADCON1 (Endereço 9FH – Banco 1)
Resultado do A/D justificado
Conversor Analógico para Digital
14 UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo: 1) Escrever o firmware para mostrar o valor de conversor A/D do canal 0 através dos LEDS
conectados no PORTD. Utilizar Fosc/2 e dividir o valor lido por 4 para condicionar o resultado em 8 bits:
2) Escrever, simular e testar o firmware para ler o resultado da conversão do módulo AD, canal 0. Inicialmente piscar todos os LED do PORTD 5 vezes com atraso de 0,5 segundo. Na sequência, movimentar o motor de passo de acordo com o resultado da conversão (RC0,RC3,RC4 e RC5):
3) Escrever o firmware para digitalizar o valor analógico do sensor de temperatura LM35 (10mV/°C) e apresentar a temperatura equivalente no LCD 16x2:
Valor do ADC Descrição – Sentido 1 Valor do ADC Descrição – Sentido 2
<= 0,5V 4 passos de 4ms 2,5V < e <= 3,0V Motor parado
0,5V < e <= 1,0V 4 passos de 8ms 3,0V < e <= 3,5V 4 passos de 32ms
1,0V < e <= 1,5V 4 passos de 16ms 3,5V < e <= 4,0V 4 passos de 16ms
1,5V < e <= 2,0V 4 passos de 32ms 4,0V < e <= 4,5V 4 passos de 8ms
2,0V < e <= 2,5V Motor parado > 4,5V 4 passos de 4ms
Conversor Analógico para Digital
15 UTFPR – Campus Curitiba
Prof. Amauri Assef
CH_1 CH_2
ADC_POT
ADC_POT
ADC_LM35
ADC_LM35
CH_1
CH_2RA0/AN0
2
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
R1110k
VDD
X1CRYSTAL
C1
15pF
C2
15pF
R1330
R2330
R3330
R4330
R5330
R6330
R7330
R8330
D1LED-RED
D2LED-RED
D3LED-RED
D4LED-RED
D5LED-RED
D6LED-RED
D7LED-RED
D8LED-RED
R910k
VDD
R1010k
VDD
50%
RV1
1k
VDD
27.0
3
1
VOUT2
U2
LM35
VDD
Conversor Analógico para Digital
16 UTFPR – Campus Curitiba
Prof. Amauri Assef
Exemplo: 1)
unsigned int temp_res;
void main() {
TRISA = 0x01;
TRISD = 0X00;
while(1) {
temp_res = ADC_Read(0); // Le valor de 10 bits da conversão
PORTD = temp_res >> 2; // Normaliza em 8 bits
}
}
top related