Autor Tema: Leer ADC  (Leído 4729 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado diazpd

  • PIC10
  • *
  • Mensajes: 13
Leer ADC
« en: 18 de Agosto de 2009, 14:51:07 »
Hola a todos !    les comento que estoy realizando MI PRIMER proyecto y es el termometro digital con 16f84a ... para guiarme un poco estoy siguiendo este proyecto :

Termometro

 en el cual esta el circuito pero no el codigo , lo cual me BENEFICIA ya que quiero hacerlo solito para aprender bien la programacion en assembler ... pero no es facil y me he estancado en la parte de LECTURA DEL ADC ..

 
La pregunta es ... ¿ como puedo realizar en assembler el paso LECTURA DEL ADC ???  :shock:

Gracias por adelantado !!  :-/

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Leer ADC
« Respuesta #1 en: 19 de Agosto de 2009, 20:14:08 »
para empezar tu diagrama de flujo no correponde a lo q quieres hacer, el 16f84a no tiene conversor AD, pero ese lado se puede solucionar con un ADC0804 pero de esta forma te tocaria ocupar todo el puertoB y practicamente te quedarias sin puerto para el LCD(a no ser q compartar LCD y ADC0804), puedes utilizar el 16F88 que es pequeño, tiene conversor AD y asi te ahorras mas hardware..cual es el problema con la lectura del ADC?
saludos
« Última modificación: 19 de Agosto de 2009, 21:02:15 por jhozate »
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado diazpd

  • PIC10
  • *
  • Mensajes: 13
Re: Leer ADC
« Respuesta #2 en: 20 de Agosto de 2009, 11:11:21 »
Gracias por responder ! y por la paciencia con los " PRINCIPIANTES " como YO ....

les envio el circuito .... el problema con el cual me encuentro es que no se como hacer en aseembler para interpretar lo que leo en el ADC .... leer el adc seria  movfw PORTB ; movwf tmp ... pero ¿ como interpreto la medicion ?

yo se que a 0 grados = 0 volt , a  150 grados = 1.5 volt ; cada 10 mv tengo un grado centigrado ... ¿ como interpreto eso en assembler ?   no se por donde empezar ... y me gustaria desarrolar el codigo YO SOLITO .. sin copiarlo ... ¿ se entiende ?

Cualquier ayuda seria BIENVENIDA !!!


GRACIAS !! :-/

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Leer ADC
« Respuesta #3 en: 20 de Agosto de 2009, 12:14:16 »
El conversor analógico digital que utilizas tiene una resolución de 8 bit, osea que la tensión analógica la representará en un numero entre 0 y 255.
En donde 0 indica que el valor analógico convertido en 0 Volts y 255 que es igual al valor de referencia establecido que en este caso se fija con el pin Vref/2. Entonces por ejemplo si Vref = 5V y leyendo el conversor obtenemos 94 en binario, la tensión analógica valdrá:

     5 V    ------ >>    255
     x V    ------ >>     94   => x = 1.84 Volts en donde la resolución de la medida es 5V/255 = 0.020 V.


Si necesitas mayor resolución se debe disminuir el valor de Vref. Aquí algo de teoria sobre conversión AD.

Aquí hay algunas rutinas para multiplicar, dividir y conversión a BCD que te van a ser muy útiles.


Saludos!
« Última modificación: 20 de Agosto de 2009, 12:20:27 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Leer ADC
« Respuesta #4 en: 20 de Agosto de 2009, 13:55:04 »
exacto..como dice suky y como vas a utilizar el LM35 creo yo q es mejor utilizar un voltaje de referencia de 2,56V, por que?
de este modo tienes una sensibilidad: 2,56/255=10mV y esta es precisamente la respuesta del LM35:10mV/ºC. Entonces cuando tengas 1ºC tendras en binario el 1 y asi sucesivamente.
saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado diazpd

  • PIC10
  • *
  • Mensajes: 13
Re: Leer ADC
« Respuesta #5 en: 22 de Agosto de 2009, 13:51:02 »
Gracias Gente ! muy clara su explicacion ...

Ahora,  si bien el LM35 tiene una resolucion de 10mv/ºC , no puedo poner en el ADC una  Vref 2.55 volt ya que le el LM entrega como maximo 1.50 volt  ... eso implica que tengo que hacer Vref 1.50v y en el pin 9 del ADC 0.75 volt (vref/2) ...  y eso me dará un resolucion de 1.50/255 = 5.8 mV    ¿ estoy equivocado ?  :?

luego de este paso que me ayudaron a dar ...

 lo que me resta hacer en assembler  ( y no es poco )  seria :

 1- leer el portB
 2- cargarlo en un registro Temporal
 3- dividir esa lectura por 10mv
 4- el resultado serian los grados que esta leyendo el LM35
 5- displayarlo en el LCD


es correcto ??  :?

 
MUCHAS GRACIAS A TODOS !!  :-/ :-/ :-/

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Leer ADC
« Respuesta #6 en: 22 de Agosto de 2009, 14:02:24 »
claro pero fijate q con un voltaje de referencia de 2.56V la resolucion del ADC concuerda con el voltaje q te entrega el LM35...obviamente te sobra resolucion pero te ahorras tener q multiplicar por 10mV...en cambio con un voltaje de referencia de 1.5V la sensibilidad será de 5.8mV y el LM35 varia cada 10mV..entonces debes interpretar por software q cada 2 cambios en el ADC equivale a un(1) cambio en la temperatura.

saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA