Autor Tema: REGISTROS ADCON Y ENTRADAS ANALOGICAS...  (Leído 2920 veces)

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

Desconectado er_clemen

  • PIC10
  • *
  • Mensajes: 42
REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« en: 31 de Julio de 2003, 04:29:00 »
Hola amigos:

Un par de dudas, a ver si podeis solucionármelas por favor:

-Me gustaria saber como se utilizan por completo los registros ADCON0 y ADCON1.

-Necesito utilizar una entrada analogica (potenciómetro en RA0), y guardar el valor decimal en una variable (no enviarla a ningun sitio). Esta variable la utilizara el programa como referencia de "tiempo maximo" a contar.
¿Como deberia ser la rutina que leyera y almacenara la variable?

MUCHAS GRACIAS A TODOS.

Desconectado Ledroj

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 159
RE: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #1 en: 31 de Julio de 2003, 10:00:00 »
Hola, aqui mismo tienes la solucion :
http://www.todopic.com.ar/pbp/adcin8.txt

en RA0 conectas una entrada analogica entre 0 y 5 v, ejemplo un potenciometro de 10k conectados los extremos: uno a +5  el otro a masa y el central es la salida que va a RA0, moviendo el cursor del potenciometro obtienes en la variable adval (de ese programa) valores entre 0 y 255 (8 bits).
por supuesto con una pic que tenga entradas con conversor analogico.. ej. 16f876.

Un saludo.  
   

Desconectado er_clemen

  • PIC10
  • *
  • Mensajes: 42
RE: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #2 en: 31 de Julio de 2003, 19:05:00 »
Gracias por la respuesta, pero el archivo que me indicas ya me lo he estudiado.

Mi problema es que en ese ejemplo, se envia el valor a una pantalla LCD y yo lo que necesito es almacenarla en una variable.

He probado a modificar el programa a tal efecto pero no me funciona. (Soy un "negao" para la programación).

¿Podrias darme informacion especifica (codigo) de como tendria que hacerlo? ¿Es necesario incluir los parametros ADCIN? La verdad es que he visto ejemplos parecidos y cada uno "son de su madre y de su padre..."

UN MONTON DE GRACIAS.

Desconectado Ledroj

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 159
RE: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #3 en: 01 de Agosto de 2003, 07:52:00 »
Hola. Te comento que ese ejemplo es perfecto, yo lo he utilizado y funciona al 100%, si no quieres utilizar un lcd no utilices los parametros de inicializacion y las instrucciones del LCD. En cuanto a dejar el valor en una variable para luego operar con ella, puedes utilizar la variable que desees esa del ejemplo es adval si quieres la dejas tal cual o en la instruccion addcin pones la variable que quieras, un ejemplo:
ADCIN 0, DATO
en DATO tendras el valor leido, lo puedes dejar ahí hasta que lo necesites dentro de tu programa, y operar con ella como cualquier otra varible
No se si te estoy respondiendo a tu pregunta, si no dimelo y te doy mas detalles.
Un saludo  

Desconectado er_clemen

  • PIC10
  • *
  • Mensajes: 42
RE: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #4 en: 03 de Agosto de 2003, 04:11:00 »
Muchas gracias Ledroj:

Me has respondido bastante bien, pero un par de preguntas para zanjar el tema:

1) ¿Es imprescindible definir los parametros ADCIN?

2) Al mover el potenciometro conectado, la variable tomará valores entre 0 y 255, al hacer la conversión. Este rango de valores me viene bien como variable en segundos de "tiempo a contar".

¿Pero debo obtener el valor decimal de la variable que lee el micro, o puedo asumir el rango 0-255 como un rango decimal a utilizar? El problema es que si no utilizo el comando LCD, sentenciastales como: adval = DEC adval  o similares me dan error.

MUCHAS GRACIAS. UN SALUDO.

Desconectado Ledroj

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 159
RE: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #5 en: 03 de Agosto de 2003, 05:38:00 »
Hola, en primer lugar es logicamente imprescindible definir los parametros ADCIN yo utilizo los siguientes:
(siguiendo el ejemplo de la pag. que hablamos)

DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
Y tambien ADCON1=%00000010
 
La variable ADVAL o la que uses la utilizas tal cual, no tienes que hacerle  nada, puedes operar con ella directamente ya que el valor que contiene es un valor numerico entre 0 y 255.
Otra cosa es que quieras tener valores entre 0 y 100 que para una medida en grados Cº puede ser mas logico,  tienes que hacer para ello un calculo que seria:
ADVAL=(ADVAL*100): ADVAL=(ADVAL/255)                  (previamente definela var word)
Con esta operacion la variable ADVAL toma valores entre 0 y 100 entre extremos del potenciometro, y aproximadamente al centro del cursor tendras un 50

No se si te he aclarado algo, o te he liado  mas, jejejeje. (dimelo por favor). Un saludo...



Desconectado er_clemen

  • PIC10
  • *
  • Mensajes: 42
RE: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #6 en: 04 de Agosto de 2003, 18:24:00 »
HOLA LEDROJ:

ME HAS ACLARADO TODO PERFECTAMENTE. TE AGRADEZCO MUCHO LA DEDICACION Y PACIENCIA QUE HAS TENIDO CONMIGO.

UN MONTON DE GRACIAS. CON GENTE COMO TU, ES UN PRIVILEGIO DISPONER DE ESTE FORO.

UN SALUDO.

Desconectado TREMENS

  • PIC16
  • ***
  • Mensajes: 125
Re: REGISTROS ADCON Y ENTRADAS ANALOGICAS...
« Respuesta #7 en: 19 de Agosto de 2006, 11:52:18 »
Soy un novato en el picbasic pro, pero me gustaría comentar respecto a que siempre hay que usar
Citar
DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50

que yo hice una adquisición sin usar los define,simulé en proteus y funciona bien. Era sólo una aclaración, no sé exactamente cual es la diferencia de usarlo o hacerlo de otra forma. :-)