Autor Tema: Dudas varias sobre convertidor A/D  (Leído 4639 veces)

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

AABHGA

  • Visitante
Dudas varias sobre convertidor A/D
« en: 30 de Septiembre de 2006, 20:20:15 »
Gracias a ustedes, estoy logrando avanzar a pasos agigantados con esto de los microcontroladores, se puede aplicar el dicho (eso si para bien) de "el que anda entre la miel algo se le pega" y que en vez de miel sea conocimiento.

El asunto es el siguiente, segun he visto en los datasheet, los pics 16F6x8(A) no tienen convertidor A/D (corrijanme si me equivoco) pero otros como el 12F629, el 16F877 si lo traen (y menos mal porque con estos es que estoy trabajando), ahora, como mi proyecto siempre ha sido ir sumandole opciones y demas a cosas hechas, estoy trabajando con el 16F877, el teclado, el lcd y estoy haciendo un lector con unas fotoresistencias infrarojas, las cuales varían su Ohmiaje dependiendo de cuanta superficie tengan expuestas al emisor de luz, hasta ahí todo va bien, ahora lo que quiero es reconocer los voltajes que salen de esta y convertirlas a datos digitales dentro del pic y trabajar con ellos para controlar otras cosas.

Si algunos no recuerdan el proyecto del teclado y el LCD, estoy utilizando un 16F877, usando los 6 PORTA para el LCD y los 8 PORTB para el teclado matrixial de 4x4, entre las primeras lineas del programa tengo un ADCON1=7 lo que convierte el PORTA en un puerto Digital.

Ahora el asunto es que necesito que los PORTE sean análogos para hacer la conversión ya de manera interna con el ADCIN para poder leer los sensores, estuve mirando el datasheet, en la página que me dijo Lord hace tiempo cuando estaba jodiendo con lo del LCD que no me trabajaba, pero la verdad no entendí ni J, según pude ver, se pueden configurar cualquier puerto como análogo pero ni idea de como hacerlo.

Bueno eso es todo, como siempre disculpen tanta joda y de antemano mil gracias.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Dudas varias sobre convertidor A/D
« Respuesta #1 en: 01 de Octubre de 2006, 00:49:55 »
Hola.

No puedes configurar cualquier puerto como analógico, solo los que internamente maneja el µicro; en tu caso son el puerto A y puerto E.


Para lo que tú quieres tienes tres opciones:

1.- ADCON1=X000 0000
2.- ADCON1=X000 0001
3.- ADCON1=X000 1000

La 1 es todo el canal analógico, lo cual no es posible porque tienes entradas digitales ahi.

La 2 es todo el canal analógico pero con diferentes Vrefs +-. Ya tienes entradas digitales ahi.

La 3 es todo el canal analógico pero con diferentes Vrefs +-. Y también tienes entradas analógicas ahi.

Lo siento, no puedes hacer lo que quieres, revisa la hoja de datos para que veas lo que digo.


Recuerda que no puedes colocar los canales analógicos donde quieras, están en un solo lugar, lo que puedes es activar unos y otros no (digitales) pero no puedes mover los canales analógicos del Puerto A a el Puerto B o C.  :(


La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Dudas varias sobre convertidor A/D
« Respuesta #2 en: 01 de Octubre de 2006, 01:07:08 »
Pues por aqui si no mal recuerdo Gio te dejo una tabla donde esta como configurar el ADC con el registro ADCON1, y si te quedan los del puerto E.

La tabla la volvemos a meter aqui:
 

Bueno en esa tabla te indican como poner los puertos disponibles como analogos o digitales donde A= analogico y D= Digital, como veras AN7,An6 y AN5 coresponden al puerto E que tambien es un ADC.

como tu tienes es ADCON= 7 que corresponde a la 7 fila donde vex 011x y si tienes ADCON1=%0111 quiere decir que es digital todos, para tu desgracia no puedes poner analogicos solo los 3 del puerto E ya que no hay una configuracion que lo indique.
por ejemplo puedes poner ADCON=%1111 y te resultara solo el RA0 comom analogico  RA1 digital RA2 y RA3 Vrefs y los demas digitales.


Como usas el 877 yo te recomiendo que cambies el lcd a el puerto C o al D ya que usar el A para un lcd como que no va, por lo mismo de que es el que contiene el ADC del pic, ademas no hay ningun problema en usar el PORTC  y el PORTD

"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

AABHGA

  • Visitante
Re: Dudas varias sobre convertidor A/D
« Respuesta #3 en: 01 de Octubre de 2006, 02:19:41 »
Gracias por la info, ahora he logrado entender un poco la tabla esa, el problema mio en si radica es que no tengo ningún título de electrónica, la estaba estudiando y llegué a 2do semestre y me tuve que retirar por causas agenas.

Lo de usar el LCD en el PORTA fue por el hecho que necesito 6 Puertos para este y el PORTA en este micro solo tiene 6 y dije los ocupo y quedo satisfecho.

Entonces, según entiendo con la tabla, no puedo tener esta configuración, y para salir de dudas voy a poner un ejemplo haber si la logré decifrar como era utilizando las mismas columnas: (aclaro es un ej para corroborar si la entendí bien)

1000    A    A    A    D    D    D    D    D    VDD    VSS

Si la tabla me mostrara esto, y usase este comando:

ADCON1=%1000 Entonces lograría tener la configuración que necesito?

Eso es todo y gracias nuevamente.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Dudas varias sobre convertidor A/D
« Respuesta #4 en: 01 de Octubre de 2006, 02:32:52 »
Pues no te preocupes AABGHA yo tampoko se nada de electronica(y tambien abandone la ingenieria), bueno lo basico no mas, y de pics pufff si no es por PBP no sabria nada de nada, asi que no te preocupes como bien dices yo he aprendido muchoi en este foro por eso casi no me despego de aqui. Asi que sin lamentaciones malo seria que te quedaras de paria commo yo sin hacer nada :D

pero bueno retomando. Pues no con el ejemplo que pones tampoco conseguirias eso de usar el porte como adc.

Mira cada numero en binario de la Tabla corresponde a toda la fila que le sigue y asi como lo ves es como se configura el adc. Tomando tu ejemplo de ADCON1=%1000 lo que obtienes es

A   A    A   A   VREF+    VREF-      A     A                        OSEA


RE2, RE1, RE0, RA5 = ANALOGICOS,      RA3 y RA2 = VOLTJES DE REFERENCIA  ,  RA1 y RA0 = ANALOGICOS

si me explico? osea el valor de la primer columna es la configuracion de la fila
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

AABHGA

  • Visitante
Re: Dudas varias sobre convertidor A/D
« Respuesta #5 en: 01 de Octubre de 2006, 05:02:21 »
Si, eso es lo que muestra la tabla, pero me refiero que la tabla en vez de mostrar eso hipotéticamente hablando, mostrara:

Código: [Seleccionar]
1000    A    A    A    D    D    D    D    D    VDD    VSS
Entonces si eso estuviera realmente en la configuración me daría lo que yo necesito no?
« Última modificación: 01 de Octubre de 2006, 05:05:01 por AABHGA »

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Dudas varias sobre convertidor A/D
« Respuesta #6 en: 01 de Octubre de 2006, 08:31:53 »
Asi es, hipotéticamente lo tendrías.

Mueve todo al puerto C como lo propone navaismo.

De esta manera tendrás mas canales analógicos si asi lo deseas.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

AABHGA

  • Visitante
Re: Dudas varias sobre convertidor A/D
« Respuesta #7 en: 02 de Octubre de 2006, 01:35:50 »
Put... me cargue el 877, lo que no entiendo es porque, tenía una resistencia fija de 820K entre la entrada análoga y GND, y tenía una resistencia variable (solo con 2 patas por eso use la resistencia fija) entre 5V+ y la entrada, y en el momento en que la resistencia llegó a ser 0, todo se fue al traste, el MPLAB IDE cuando lo pongo a grabar me muestra este bello error:

Program Memory Errors

Address  Good  Bad

001D:    13BF  3FFF
001E:    1BBF  3FFF
0023:    1008  3FFF
0115:    0CA0  3FFF
0206:    2021  3FFF

Alguien sabe que paso o que hize que no debí hacer?

Otra cosa que no estoy muy seguro es si el 16F628 tiene alguna manera de leer datos de forma análoga sin usar un convertidor.
« Última modificación: 02 de Octubre de 2006, 01:43:32 por AABHGA »

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Dudas varias sobre convertidor A/D
« Respuesta #8 en: 02 de Octubre de 2006, 02:18:39 »
Trata primero de borrar el µicro dentro del MPLAB.

Erase flash algo y luego lo verificas.

A mi me pasaba eso a menudo.

El 16F628 puede recibir señales analógicas pero no es un convertidor AD, es un comparador.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

AABHGA

  • Visitante
Re: Dudas varias sobre convertidor A/D
« Respuesta #9 en: 02 de Octubre de 2006, 02:21:12 »
Ya hize lo de borrar y verificar y me tira esto:

Device is NOT blank:
   Program Memory
   Configuration Bits
   Data Memory


 

anything