Página 1 de 1

Entrada analogica

MensagemEnviado: 28 Ago 2011 12:46
por antonio
Pessoal tudo bem!

Pessoal tenho um duvida em relação ao conversor analogico¨
fiz um programa bem simples com ajuda da net pra testar o conversor AD de 8 bits do Micro 18F4520 està funcionada direito com a voltage de 5V na entrada do conversor PIN_A0 atravez de um POT de 10K!
Agora eu pertendo fazer testes com 12V na entrada do conversor do PIC, ou seja fazer os mesmos testes mas agora com 12V na entrada do conversor,mais o pic soh aceita o maximo 5V
Algem me pode darh umas dicas

Agradeço

#include <18f4520.h>
#fuses HS,NOLVP,NOWDT,PUT
#use delay(clock=20000000)

#define LED_0 PIN_B5
#define LED_1 PIN_B4
#define LED_2 PIN_A5

#define lowoff 77 // 1.5V
#define highoff 230 //4.5V

void main(void) {

int read=0;

setup_adc_ports(AN0_ANALOG);
setup_adc( ADC_CLOCK_INTERNAL );

set_adc_channel( 0 );

output_high(LED_0);
output_high(LED_1);
output_high(LED_2);

while(TRUE) {



read = read_adc();
delay_ms(20);

if(read<=lowoff)
output_low(LED_0);
else
if((read>=lowoff)&(read<=highoff))
output_low(LED_1);
else
if(read>=highoff)
output_low(LED_2);
}
}

MensagemEnviado: 28 Ago 2011 13:21
por jorgeluiz
uma maneira e' fazer um divisor resistivo, onde os 12 volts vao representar 5 volts para a entrada analogica.

MensagemEnviado: 28 Ago 2011 16:10
por luisf.rossi
Não conecte um divisor resitivo direto no AD.. pode dar problema por causa da impedancia.. o ideal é colocar um AMPOP como um buffer entre o divisor e o PIC.

Abs

MensagemEnviado: 28 Ago 2011 17:05
por antonio
luisf.rossi escreveu:Não conecte um divisor resitivo direto no AD.. pode dar problema por causa da impedancia.. o ideal é colocar um AMPOP como um buffer entre o divisor e o PIC.

Abs


Luis neste assunto soh novato meso serah que pode dar mais alguma ajuda por favor??

Pesquisei na net e não encontrei nada que vc falou!!
Agradeço

MensagemEnviado: 28 Ago 2011 20:57
por marcelo campos
usa divisor resistivo mesmo: eu costumo colocar 3 resistores em serie de 3k3
ligue o AN do pic no rersistor que vai pro terra
12v-----|
R1
|
R2
|
R3------->AN do PIC
|
gnd

MensagemEnviado: 28 Ago 2011 22:10
por MOR_AL
Imagem

MensagemEnviado: 28 Ago 2011 22:16
por rona123
Belo exemplo MOR_AL.

Lembro que em determinadas aplicações é conveniente proteger a entrada analógica do processador de sobretensões. Para isso bastam alguns simples diodos posicionados e forma a conduzir em situação extremas(Van > 5V ou Van < 0V).

[]'s rona123

MensagemEnviado: 29 Ago 2011 07:41
por ze
olá. se for pra medir 12v de bateria p.ex., calcule os R´s para 16V=>5V pois ela ultrapassa facilmente 12V. (Com o trimpot do moris fica melhor mesmo).
para acionar os 3 leds na mesma proporção do sinal an, veja esta alternativa:
...
an=adc_read(0);//10 bits
PORTB=1<<(an/341));//341=1023/3 só 3 bits (do mesmo port)
...
abç

MensagemEnviado: 29 Ago 2011 10:01
por luisf.rossi
Vamos la... de modo geral todos os A/Ds tem uma impedancia máxima de entrada admissível.. e essa tem um impacto direto na estabilidade da medida assim como no tempo de acumulo de carga do capacitor interno.... Aém disso a entrada do A/D tem uma impedancia váriavel.. ficando muito complicado ter precisão no divisor resistivo. Para finalizar, se você estiver utilizado o A/D para a leitura de algum sensor, a saida deste pode ser influenciada por essa carga do circuito do A/D. De modo geral é interessante colocar um Amplificador Operacional para "isolar" o seu sinal Analógico do conversor... Idealmente, colocando um AMP OP como um seguidor de tensão você tera uma fonte quase ideal suprindo o conversor A/D e uma impedancia quase infinita de entrada para o seu sinal analógico....

Apenas como comentário extra.. caso você queira atingir amáxima precisão de um conversor A/D.. você precisária calcular um circuito de entrada...

Um artigo que descreve isso pode ser visto aqui: LINK

Abs

MensagemEnviado: 29 Ago 2011 22:26
por MOR_AL
PIC18F4520 aceita uma impedância máxima de entrada de 2k5 ohms.
O circuito que apresentei possui impedância de saída, de no máximo 2k9, de acordo com o equivalente Thévenin entre os pontos R2 com VR1 e terra.
Sugeri estes valores porque me baseei nos PIC16, que permitem resistência da fonte com até 10k.
Para corrigir os valores dos componentes para respeitar o valor máximo de 2k5 de impedância da fonte do PIC18F4520, faça:
1 - Substitua R1 de 6k8 para 5k6.
2 - Substitua R2 de 220 para 390
3 - Coloque um resistor de 39k em paralelo com o potenciômetro VR1, que permanece nos 5k.

4 - Se os seus 12V vierem de uma bateria de automóvel, a observação do Lellis é importante e a do rona123 também. Nese caso, inclua dois diodos comuns de sinal. Anodo no terra e catodo no pino central do potenciômetro. E outro com anodo no pino central do potenciômetro e o catodo na fonte de +5V.
Mas atenção. Se você quiser precisão na conversão, não use o Vcc de 5V como referência, porque essa fonte tem precisão para níveis TTL e não para um conversor com 8 ou 10 bits.
MOR_AL

MensagemEnviado: 31 Ago 2011 15:32
por antonio
Pessoal brigado por Atenção a mim dedicada!

Vou fazer testes com o esquema do colega MOR_AL e as devidas altereçõs dos componentes e depois passo cà pra comentar o resultado!


O circuito e mesmo pra ligar a bateria de carro mesmo!

lellis esta (PORTB=1<<(an/341));//341=1023/3 só 3 bits (do mesmo port))formula não entendi direito dà pra vc exemplificar mais um pouco!

Gratos

MensagemEnviado: 01 Set 2011 09:34
por ze
pois não amigo. << é operação de deslocamento a esquerda (em c puro não contaminado pelo ccs. Procure ver o C tipo hitech c ou mikroc ou sdcc que pode usar PORTB=x). No caso 1<<x - o mesmo que 0b00000001 - deslocado x vezes, note que desloca-se apenas o 1º bit. imagine-o caminhando pelos zeros no caso de x variar de 0 a 7. No seu caso de só 3 leds, só 3 deslocamentos dentro da variação do ad 10bits 1023. portanto 1023/3=341. (repensando, talvez melhor ser por 4 ou /256). Note que a variação vai ser linear. Se voce quer liberdade no ajuste de acionamento dos leds e usar pinos de ports diferentes, é melhor com os if´s mesmo.

abç