Autor Tema: Entrada analogia CAD.  (Leído 1662 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Entrada analogia CAD.
« en: 05 de Septiembre de 2009, 17:40:41 »
Hola, estoy intentando diseñar n termometro, para ello uso:
-LM35
-Entrada analogica PIC18F442 RA0

Y el código es el siguiente:

//Programa principal
void main(){
   int16 value=0;
   setup_adc_ports(RA0_ANALOG);
   setup_adc(ADC_CLOCK_INTERNAL);

   while(1){
      delay_ms(1000);
      set_adc_channel(0);
      value=2*read_adc();
   }  
}

value es la variable donde almaceno el valor de temperatura...el caso es que el resultado que da en la mitad del que es (por eso lo multiplico por 2) y el problema es que para numeros impares no me da el valor correcto (por eso de mutiplicarlo por 2). He intentado declarar value como float, pero teno el mismo problema..alguien sabe por qué ocurre esto?supongo que esta relacionad con la resolucion del ADC, pero no se como configurarlo...
Gracias de antemano!

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Entrada analogia CAD.
« Respuesta #1 en: 05 de Septiembre de 2009, 18:05:23 »
creo que he subsanado el problema.
He puesto la entrada de referenca a 2.55V por lo que asi a 100 grados el valor de la variable es 100 y a 0 grados es 0. para ello he añadido la linea:
    setup_adc_ports(RA0_RA1_ANALOG_RA3_REF);
La pregunta ahora es si RA1 se convierte en otra entrada analogica o no tiene por qué?

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Entrada analogia CAD.
« Respuesta #2 en: 06 de Septiembre de 2009, 06:14:53 »
Hola jezus:

Estas pasando en la función setup_adc_ports que RA0 y RA1 se configuren como entradas analógicas y RA3 como referencias del CAD.

Pero por lo que veo en el dataheet del micro es imposible hacer que RA0 sea analógico, RA1 y RA2 sea digital y RA3 sea la referencia, fíjate en el datasheet en el punto 17, en el registro ADCON1 que es el que configura el puerto ADC en los bits del 0 al 3.

Un saludete y espero que te sirva  :)
« Última modificación: 06 de Septiembre de 2009, 06:27:58 por c4_esp_VR »

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Entrada analogia CAD.
« Respuesta #3 en: 06 de Septiembre de 2009, 20:06:22 »
Te pongo un codigo que en este momento estoy haciendo para el mismo sensor pero con el 16f876
Código: C
  1. int16 lectura;                                     ///RECOJE EL VALOR LEDIO DEL ADC
  2.    float cifra;
  3.   ///CODIGO PARA LEER LM35 USANDO VOLTAJE DE REFERENCIA DE 2.5 VOLT
  4.    set_adc_channel(0);
  5.    delay_us(10);
  6.    lectura = read_adc();
  7.    delay_us(10);
  8.    cifra = (float)lectura;      
  9.    cifra *= 0.244;        ////por que Vref / 1024 = 0.00244 luego x 100
  10.    printf(lcd_putc,"LM35 = %3.1f%cC  ",cifra,223);///223 = signo de grados

Saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Entrada analogia CAD.
« Respuesta #4 en: 07 de Septiembre de 2009, 11:09:28 »
Hola jezus:

Estas pasando en la función setup_adc_ports que RA0 y RA1 se configuren como entradas analógicas y RA3 como referencias del CAD.

Pero por lo que veo en el dataheet del micro es imposible hacer que RA0 sea analógico, RA1 y RA2 sea digital y RA3 sea la referencia, fíjate en el datasheet en el punto 17, en el registro ADCON1 que es el que configura el puerto ADC en los bits del 0 al 3.

Un saludete y espero que te sirva  :)

Muchas gracias!!ya me ha quedado mucho mas claro y tengo casi acabado el proyecto...
Un saludo!

Desconectado josegranada

  • PIC10
  • *
  • Mensajes: 16
Re: Entrada analogia CAD.
« Respuesta #5 en: 01 de Octubre de 2009, 15:55:44 »
me gustaria saber si el codigo que vos tiene es para un lm35 y una lcd,
necesito hacer un termometro con un lm35 y ke los datos los muestre por una lcd.

me podria pasar el codigo del programa que ha exo usted.


muchas gracias

saludos