formula comversor AD para volts

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

formula comversor AD para volts

Mensagempor cristian » 20 Nov 2009 23:29

estou fazendo um termometro e um voltimetro no mesmo pic

mas o conversor ad ta louco assim estou entrando com 522mv e ta mostrando 527 sempre o final é 7 ou 2 ta certo isso

a formula foi

val32=read_adc(); //ler o canal
val32+=1;
val32=val32*4+((int32)val32*113)/128;

e mais vou ter q ler de -15 a 5 graus coomo ler a tensao negativa
vi no forum q tenho de fazer um offset como seria isso
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor fabim » 21 Nov 2009 08:24

qual sensor esta utilizando ?
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor cristian » 21 Nov 2009 08:34

LM35
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor _blackmore_ » 21 Nov 2009 08:58

qual a referência de tensão? e quantos bits tu está usando de resolução no conversor AD? é necessário tb que se deixe um delay de aprox 20uS para estabilizar a leitura após ler o AD.

Se tu estiver utilizando 10bits no AD, uma boa referência de tensão é 5,115volts pois dividindo este valor pelos 1023 pontos (10 bits) de resolução do AD dá 0,005 volts, a leitura ficará muito mais precisa.

Quanto a fórmula fica bem mais simples:

Código: Selecionar todos
set_adc_channel(0); escolhe o canal 0 para ser utilizado
valor_AD = read_adc (); lê o AD
delay_us (20);
val_tensao = (((valor_AD+1) * 5115)/1024);


veja se ajuda ...
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor cristian » 21 Nov 2009 09:03

estou dando 10ms de tempo

e estou usando 10bits e referencia interna

val_tensao = 16bits é?
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 21 Nov 2009 09:03

e sobre a tensao negativa ???
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor _blackmore_ » 21 Nov 2009 09:51

bom ... dae tu faz uma pesquisa no fórum que tem tudo explicado ...
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor Djalma Toledo Rodrigues » 21 Nov 2009 10:04

Sugestão:

Ler Datasheet

Datasheet ADC µC

Datasheet LM35
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor cristian » 21 Nov 2009 13:26

qual topico fala sobre este assunto e leitura negativa q ja rodei tudo e nao acho ...so achei um q comentava mas nao tinha esquema nem nada
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor Djalma Toledo Rodrigues » 21 Nov 2009 13:56

Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor cristian » 21 Nov 2009 16:39

http://www.dm.ufscar.br/~waldeck/pic/thermopic/#fig2


achei este link pra testar falta ver a formula q nao entendi muito bem
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor fabim » 21 Nov 2009 17:00

cristian escreveu:qual topico fala sobre este assunto e leitura negativa q ja rodei tudo e nao acho ...so achei um q comentava mas nao tinha esquema nem nada


poracaso este post quem comentava como fazer era o mala do fabim?

Abraços
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor cristian » 21 Nov 2009 23:18

este mala esta em todas ....

ja resolvi vou postar mas nao é pra dar risada

lcd_escreve('\f');
temperatura=((valor_ad*5000)/2)/1023;
if(temperatura>455)
{
temperatura=(temperatura-455)/10;
printf(lcd_escreve,"T=%luC",temperatura);
}else
{
temperatura=(460-temperatura)/10;
printf(lcd_escreve,"T=-%luC",temperatura);
}


...sei q tem de melhorar mas da uma ideia ai pow

a precisao foi la pro espaço mas vai dar para o q quero
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor Djalma Toledo Rodrigues » 22 Nov 2009 00:37

Cristian admiro seu 'esforço' e sua 'criatividade'

mas, não é essa a Técnica

Para medir tensão maior que a Referência do ADC se faz um Divisor de Tensão.

Para Visualizar no Display não se multiplica diretamente a medição mas, se desloca
o Ponto Decimal .

Exemplo VTVM de 3 1/2 Digitos, Display 1999

( Medição pode ser 200 mV e em alguns 2 V)

Medir 199.9 mV ( ~200 mV ) Div não tem = 199.9

Medir 19.99 V (~20 V) Div de Tensão 99 / 1 = 199.9 mV Ponto Decimal 19.99
...
Medir 1 999 V (~2 000 V) Div de Tensão 9999 / 1 = 199.9 mV Ponto decimal apaga 1 999

Voltando a Visualizar o Delocamento do Ponto Decimal para indicação
de ~2V a ~2 000 V

1.999
19.99
199.9
1999

O Ponto Decimal se desloca automáticamente ao Selecionar a Escala

Obs.: Os Divisores de Tensão não foram colocados aqui de forma escalonável.
.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor cristian » 22 Nov 2009 08:29

temperatura=((valor_ad*5000)/2)/1023;//transfoma em tesao

pega o valor lido no AD x 5000 ( referencia ) / 2 ( o operacional com ganho=2 ) /1023 (10bits)

vc acha q devo colocar a ref em 2,5v??

if(temperatura>455)// se o valor for maior q 455 ( ref do LM35 ) temper positiva
{
temperatura=(temperatura-455)/10;// subtrae o tensao pelo ref assim fica a tensao no pino de saida do lm35 ...divido por 10 pq so quero 2 digitos
printf(lcd_escreve,"T=%luC",temperatura);
}else
{
temperatura=(460-temperatura)/10;//subtrae a ref pela tensao assim fica a tensao no pino de saida do lm35 ...divido por 10 pq so quero 2 digitos
printf(lcd_escreve,"T=-%luC",temperatura);
}


e ai o q achao
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

cron

x