duvida conversor ad pic 16f877

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

duvida conversor ad pic 16f877

Mensagempor diogo_18sp » 24 Nov 2009 17:36

ola amigos boa tarde, estou com uma duvida .
*tenho o valor do conversor em binario em 10 bits exemplo 1100011110 depois converto ele para 8 bits , a duvida e a seguinte estou medindo uma tensao de 24 vcc que varia de 0 a 24 vcc dai faço um,a malha de resistor para 0 a 5 vcc para o pic fazer esta leitura e devo mostrar em 3 display como pego este valor em binario e coloco ele no display como sei qu e um valor 182 em binario equivale a 15 vcc da minha fonte que varia, programo em asm. obrigado.
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Mensagempor Djalma Toledo Rodrigues » 24 Nov 2009 18:17

Você faz um Divisor de Tensão 5 ---> 1

25 V / 5 = 5 V

Então o resultado após a Conversão deverá ser Multiplicado por 5

Mediu 4 ---> 4 x 5 = 20

Para o Display é necessário antes converter cada Digito para o Código ASCII

0 -----> ASCII 0x0 + 0x30 = 0x30
2 -----> ASCII 0x2 + 0x30 = 0x32

A desvantagem desse método é que o ERRO também é Multiplicado

Então coisa melhor é fazer o Divisor 10 --- > 1

A Faixa de Medição se extende a 50 V

No Display desloca o Ponto Decimal

Ver:
http://asm51.eng.br/phpbb/viewtopic.php ... +seu#63647

.




.
Editado pela última vez por Djalma Toledo Rodrigues em 24 Nov 2009 18:46, em um total de 2 vezes.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor fabim » 24 Nov 2009 18:45

Djalma Toledo Rodrigues escreveu:Você faz um Divisor de Tensão 5 ---> 1

25 V / 5 = 5 V

Então o resultado após a Conversão deverá ser Multiplicado por 5

Mediu 4 ---> 4 x 5 = 20

Para o Display é necessário antes converter cada Digito para o Código ASCII

0 -----> ASCII 0x0 + 0x30 = 0x30
2 -----> ASCII 0x2 + 0x30 = 0x32

.


heheheeh, tûma safado !!!
Usa Vref externo de 2.5V.
Usa divisor no pino AD de 10:1.

float a;
int b, resu;

b = adc_read();
a = b * (2500.00/1024);
resu = a/10;

olha o resultado em resu.

Dispois..

char resu_adc[6];

inttostr(a, &resu_Adc);

descarta o LSB do array, ou joga a msb pra esquerda, e coloque o ponto aonde quiser...

hehehehehe :twisted:

ááá mais quero usar VREF do proprio pic..
se for um vortimetu vagaba pode ser intão.

use a mesma técnica, mais como o DJ disse use um atenuador 5:1..

abraços

e para o DJ um grande beijunda !!
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 Djalma Toledo Rodrigues » 24 Nov 2009 18:56

Olá Fabim

Outra opção para Tensão de Referêcia é de 2.048 V ou 4.096 V já que resulta em valor inteiro em mV para Bit do ADC

Ex.: 4,096 / 1024 (10 bits) = 4 mV/bit

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

Mensagempor fabim » 25 Nov 2009 19:21

BEM LEMBRADO DJ.
MCP1541... 4.096V, eu uso aqui é muito preciso.

mais não é tão simples pra achar como uma VREF de 2.5V.

eu como nao uso ADC de pic, sempre SPI de 12bit ou >.

sempre uso ele, tenho uns 5 aqui ainda..

abçs
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 renatokodaira » 26 Nov 2009 10:24

Use um fim de escala de 25,5 V, assim voce pode usar diretamente o registrador ADRESH (em modo justificado para a esquerda - defina o bit ADFM) com o resultado da conversao em 8 bits.

Usando o Vdd de 5V como Vref, monte um divisor de tensao de 1:5,1 (um resistor de 3k9ohm + 1 trimpot de 1kohm ajustado para +- 950ohm).

Dessa forma 24V serah dividido por 5,1 que resulta em 4,7058V. Isso dentro do conversor do PIC vai resultar em: 4,7058/(5V/255) = 240 (decimal) no registrador ADRESH. Ai soh precisa da rotina de mostrar os digitos no display, coloque o led do ponto decimal sempre aceso no segundo display. Nao precisa fazer multiplicaçao alguma (claro que voce precisa fazer a conversao do ADRESH para digitos decimais - divide por 100 e terah o valor do display mais significativo, pega o resto e divide por 10 e terah o valor do display do meio, o resto eh o valor do display menos significativo).
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15


Voltar para PIC

Quem está online

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

cron

x