Você está na página 1de 20

PROJETOS DE AUTOMAÇÃO

PROF.: ALAN KARDEK


Aula de hoje
• Revisão da Prática 7 – Dúvidas?
• Conversão A/D – Terminologia.
• Conversão A/D por aproximações sucessivas.
• Passos para a Conversão A/D: Configuração.
• Funções e Diretivas de Compilação da
Linguagem C para conversores A/D.
• Exemplo em Linguagem C.
• Prática 8.
Prática 7 – LCD, entradas e saídas.
• Tarefas:
• 1) Implemente o tratamento de bounce visto
nessa aula no arquivo “.c” da prática 6 e
verifique o que mudou.
• 2) Faça o motor 1 ser acionado apenas durante
20 segundos e o motor 2 durante 30 segundos.
• 3) Desafio 1: mostre a contagem de tempo de
forma decrescente no LCD.
• 4) Desafio 2: Implemente dois botões para o
ajuste de tempo de funcionamento de cada
motor.
Conversão A/D – Terminologia.

• Conversores A/D:
▫ Convertem uma voltagem analógica em um
número binário.
• Números binários são facilmente processados
por um MCU, valores analógicos não.
• Números binários são representados como
números inteiros naturais.
Conversão A/D – Terminologia.

• Faixa de operação (Input Range):


▫ A entrada analógica deverá estar dentro de uma
faixa de operação pré-estabelecida para que o
conversor A/D funcione corretamente.
• Configuração da Faixa de Operação:
▫ Através de voltagens de referência.
▫ Vdd e Gnd
▫ Referências Externas.
Conversão A/D – Terminologia.

• Erros de Quantização:
▫ Característica de conversores A/D que se refere a
subdividir o espaço de variação do valor
analógico em n divisões iguais.
▫ O erro máximo de quantização é a metade do
▫ valor do tamanho da divisão.
Conversão A/D – Terminologia.

• Resolução: Característica de conversores AD


que se refere ao número de estados diferentes
para uma saída digital.
▫ 2N estados
▫ N é o número de bits do conversor.
▫ N = 8 -> 28 = 256 estados diferentes (de 0 a 255).
▫ N = 10 -> 210 = 1024 estados diferentes (de 0 a
1023).
▫ N = 12 -> 212 = 4096 estados diferentes (de 0 a
4095).
• Quanto maior resolução, menor o erro de
quantização.
Conversão A/D – Terminologia.

• Período de Amostragem:
▫ Característica de conversores AD que se refere ao
tempo necessário para a carga e a descarga do
capacitor do conversor AD.
▫ Se esse tempo não for suficiente para o
conversor fazer a aquisição, o resultado da
conversão será impreciso e/ou incorreto!!
▫ O período de amostragem depende da
capacitância do multiplexador interno do
conversor AD e a impedância da carga.
Conversão A/D por aproximações sucessivas
• Tipo de Conversão:
▫ Nos MCUs PIC a conversão AD é realizada por
aproximações sucessivas.
▫ A conversão é de um bit por vez.
▫ Converte do MSB (Most Significant Bit) primeiro,
para o LSB (Less Significant Bit) último.
▫ Um período de clock do conversor AD necessário
para cada bit.
Conversão A/D por aproximações sucessivas
• Tempo de Conversão:
▫ Cada bit precisa de um clock do conversor A/D
para ser gerado.
▫ Dois ou três períodos de clock para estabilização
do valor.
▫ Após a estabilização o valor é escrito no
registrador específico que guardará o resultado.
Conversão A/D por aproximações sucessivas
• Clock:
▫ Múltiplas opções:
 2Tosc (Fosc/2)
 8Tosc (Fosc/8)
 32Tosc (Fosc/32)
 RC (clock interno)
▫ Deve atender o período mínimo para aquisição.
Passos para a Conversão A/D: Configuração.

• Configuração dos pinos de E/S.


• Seleção do canal para conversão A/D.
• Configurar e Habilitar o conversor A/D.
• Esperar pelo período de aquisição.
• Iniciar a conversão.
• Esperar para que a conversão se complete
• Ler o valor da conversão no registrador.
Funções e Diretivas de Compilação da
Linguagem C para conversores A/D
• #DEVICE ADC = xx
▫ Configura a resolução do conversor A/D.
▫ Para o PIC18F4550, xx = 8 ou 10 bits.
• setup_adc_ports(valor);
▫ Configura os pinos disponíveis em analógico ou digital.
▫ Valor =
 NO_ANALOGS
 ALL_ANALOG // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1 B4 B0
 AN0_TO_AN11 // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1 B4
 AN0_TO_AN10 // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1
 AN0_TO_AN9 // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3
 AN0_TO_AN8 // A0 A1 A2 A3 A5 E0 E1 E2 B2
 AN0_TO_AN7 // A0 A1 A2 A3 A5 E0 E1 E2
 AN0_TO_AN6 // A0 A1 A2 A3 A5 E0 E1
 AN0_TO_AN5 // A0 A1 A2 A3 A5 E0
 AN0_TO_AN4 // A0 A1 A2 A3 A5
 AN0_TO_AN3 // A0 A1 A2 A3
 AN0_TO_AN2 // A0 A1 A2
 AN0_TO_AN1 // A0 A1
 AN0 //A0
Funções e Diretivas de Compilação da
Linguagem C para conversores A/D
• SETUP_ADC(Valor)
• Valor =
▫ ADC_OFF // ADC Off
▫ ADC_CLOCK_DIV_2
▫ ADC_CLOCK_DIV_4
▫ ADC_CLOCK_DIV_8
▫ ADC_CLOCK_DIV_16
▫ ADC_CLOCK_DIV_32
▫ ADC_CLOCK_DIV_64
▫ ADC_CLOCK_INTERNAL
Funções e Diretivas de Compilação da
Linguagem C para conversores A/D
• SET_ADC_CHANNEL(x)
▫ Especifica qual canal realizará a leitura.
▫ X = 0 a 11.

• READ_ADC()
▫ Inicia a conversão e lê o valor

• Obs: deve-se esperar um pequeno instante de tempo entre a


especificação do canal e o início da conversão. Ex:
▫ SET_ADC_CHANNEL(0);
▫ DELAY_US(10);
▫ VALOR = READ_ADC();

• ADC_done()
▫ Retorna 1 se a conversão terminou.
Funções e Diretivas de Compilação da
Linguagem C para conversores A/D
• Interrupções relacionadas com o conversor A/D:
▫ #INT_AD
 A interrupção ocorre quando a conversão é
termidada.
▫ #INT_ADOF
 A interrpção occorre quando o tempo de conversão
expira.

• Obs.: as interrupções devem ser ativadas!


Exemplo em Linguagem C

#DEVICE ADC=10
...
long value;
...
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
set_adc_channel(0);
delay_us(10);
value=read_adc();
Prática 8 – Voltímetro
• Objetivo:
▫ Utilizar o Conversor Analógico-Digital do
PIC18F4550.
▫ Apresentar o valor da leitura em um LCD.
Prática 8 – Voltímetro
• Conhecimentos básicos necessários:
▫ Tudo que foi visto nas aulas práticas anteriores.
▫ Configuração de LCDs.
▫ Configurações de pinos de I/O.
▫ Diretivas de configuração do PIC.
▫ Configurações do Conversor A/D.
Prática 8 - Voltímetro
• Tarefas:
• 1) Monte no Proteus um circuito com um
microcontrolador PIC18F4550, um LCD 16x2 e
um divisor de tensão alimentado por 5V. A saída
do divisor de tensão deve alimentar o pino 2 da
porta A do microcontrolador.
• 2) Escreva um programa para o MCU utilizando
as configurações mínimas necessárias para o
funcionamento do conversor AD e do LCD.
• 3) Apresente no LCD o valor da conversão.
• 4) Converta esse valor para a unidade Volts.

Você também pode gostar