Autor Tema: Pregunta sobre coversor analógico digital  (Leído 5342 veces)

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

Desconectado guille1234

  • PIC10
  • *
  • Mensajes: 33
Pregunta sobre coversor analógico digital
« en: 03 de Marzo de 2011, 19:01:52 »
Hola muchachos, estoy haciendo un amperímetro sensillo para una fuente, colocando una resistencia de bajo valor (1 OHM)  entre la tierra del pic y el borne negativo de mi fuente, de esta forma utilizo la ley de ohm. (V=IxR)
pero  en la entrada del conversor analógico digital,  tengo como valor máximo 1.7V en vez de 5V. Yo quiero que este valor me indique en pantalla 3.5A (cuando en realidad hay 1.7V) o sea mi fondo de escala. Intenté con escalares y no logro esa lectur. Se les ocurre algo??

saludos y gracias como siempre

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Pregunta sobre coversor analógico digital
« Respuesta #1 en: 04 de Marzo de 2011, 04:44:02 »
Si estás utilizando la referencia del conversor entre 5 y 0V debes de tener una lectutra aproximada de 0.0196mV por Bit. LO que se supone es que si tienes a la entrada del conversor:

 Vin=1.7V=> una lectura en binario de 0110111. Valor que en principio seria el que deberias de ver en tu display.

Si te das cuenta como lo que necesitas ver a fondo escala para 1.7V una cantidad de 3,5A, si te fijas es un poco superior al doble.
 Para conseguir ese valor creo que lo que se podria hacer es rotar un bit a la derecha con lo cula ya tienes duplicada tu medida(al rotar un bit a la dercha se multiplica por 2).
Una vez hecho esto ya lo puedes llevar al display. Ahora bien como es un poco superior al doble antes de llevarlo al display lo puedes escalar realizando una reduccion hasta conseguir el valor deseado.

F. ;-)
Todos los días se aprende algo nuevo.

Desconectado irukza

  • PIC12
  • **
  • Mensajes: 87
Re: Pregunta sobre coversor analógico digital
« Respuesta #2 en: 04 de Marzo de 2011, 19:22:17 »
Hola
No se que que exatitud buscas para tu amperímetro pero por si te interesa te comento algunas cosas que deberías tener en cuenta al trabajar con ADC y resistencias tan bajas.
Supongo que entre el ADC y la R de 1 Ohm debes tener alguna circuitería porque no me explico como tenes 1.7V con 3.5A. Al margen de esto, fijate que en la hoja de datos del micro tenés el valor de resistencia que debe "ver" el canal ADC, la verdad que no me acuerdo pero creo que anda alrededor de los 2K, te va a funcionar igual, pero no al maximo.
Al sensar 1.7V sobre un alcance de 5V estas desperdiciando resolucion, estas usando menos del 50% de la escala disponible, vos sabes, "no estas viendo todos los decimales que podrias ver", no se si me explico.
Para aprovechar la maxima resolucion podrias amplificar esa señal hasta 5V y dps hacer el escalado por software, o podrías llevar tus 1.7V a 3.5V y asi tendrias lectura directa en el ADC (seguirias desperdiciando resolucion, aunque un poco menos).
El problema de amplificar es que tambien se amplifican los errores, es decir, si tu resistencia en realidad es de 1.1OHM (error de 0.1) al amplificar la señal, digamos por 2, la lectura seria de 2.2OHM(error de 0.2, el doble que antes).
Pero, a diferencia de amplificar por software, si amplificas tu señal, supongamos con un AO no inversor, y le pones un preset, podrias poner tu fuente a funcionar a 3.5A, midiendo con un instrumento fiable, y ajustar la ganancia de tu AO para tener los 3.5V a la entrada del ADC y así salvas todos los errores de conversion.
Espero haberte ayudado mas de lo que te pude haber confundido, si queres subo un circuito para explicarlo mejor.

Desconectado lesr

  • PIC10
  • *
  • Mensajes: 49
Re: Pregunta sobre coversor analógico digital
« Respuesta #3 en: 04 de Marzo de 2011, 19:38:36 »
. . .
Espero haberte ayudado mas de lo que te pude haber confundido, si queres subo un circuito para explicarlo mejor.

Creo que a muchos nos ayudarías si subes el circuito, ya que una imagen vale más que mil palabras!

Desconectado irukza

  • PIC12
  • **
  • Mensajes: 87
Re: Pregunta sobre coversor analógico digital
« Respuesta #4 en: 04 de Marzo de 2011, 22:38:10 »
Bueno, voy a tratar de aclarar lo que dije antes

Primero pongamonos de acuerdo en la forma en que trabaja el ADC
En la imagen de abajo esta el circuito del que hablaba para amplificar, no se bien como obtiene guille1234 sus 1.7V porque no dio detalles de su circuito, pero es lo de menos.
El punto es que el quiere mostrar 3.5A cuando tenga 1.7V a la entrada del ADC.
Si en tu microcontrolador pones VDD como referencia para el ADC, le estas diciendo que compare la tension de entrada con VDD y te dara un valor de 10bits que representa esa relacion, veamoslo con numeros.

El ADC tiene 10 bits => puede representar 1024 valores posibles (2^10)
Entonces si VDD=5V el numero mas chico que puede representar el ADC es 5V/1024 = 4.8mV

Es decir, si el ADC devuelve el numero 512 es porque a la entrada tiene 2.5V (512*4.8mV)
Se dice que la resolucion de tu conversor es de 4.8mV.

Hasta aca todo bien. Ahora, si el valor maximo que vas a medir es de 1.7V, el maximo numero que el ADC necesita para representarlo es 348, por lo que estas desperdiciando todos los demas.
Fijate que si la referencia del ADC fuera 1.7V, la resolucion seria 1.7V/1024 = 1.6mV. Es decir que ahora el ADC puede distinguir valores 3 veces mas pequeños que cuando la referencia estaba en 5V.

Para que quede más claro
Supongamos que tenes la referencia en 5V y tenes 1V en la entrada => el ADC te dara el valor 205.
si ahora tu entrada varía a 1.0016V el ADC no ve la variacion y te da el mismo valor 205
si continua variando          1.0032  => 205
                                     1.0048 => recien aca (con suerte) el ADC te dara 206

mientras que si tu referencia hubiese estado en 1.7V, en la primera variacion ya te hubiese arrojado el valor 206.

Pueden parecer variaciones muy pequeñas, pero si la señal que quieres medir es de por ejemplo 50V debes atenuarla para poder leera con el pic ya que soporta 5V como maximo. Luego, unos pocos mV en el ADC pueden estar representando 1 o mas voltios.

Volviendo al problema, una solucion rapida sería poner la referencia del micro a 1.7V y todos felices, de hecho esto se puede hacer, yo no lo hice nunca, y por lo que lei en este foro, trae muchos problemas de estabilidad.
Entonces?
Entonces amplificamos la maxima tension de entrada (1.7V) para que cubra todo el rango del ADC (5V).
Esto lo puedes hacer de varias maneras, yo propongo el circuito de abajo, porque es facil, y porque no necesitas fuente negativa.
Es un AO configurado como "sumador no inversor", en esta configuracion la tension de salida Vo se relaciona con la de entrada Ve segun la siguiente ecuacion

Vo=Ve(1+R2/(R3+Rv1))

entonces, si quieres tener 5V en la salida cuando tengas 1.7V en la entrada, de la ecuacion anterior puedes ver que te queda R2=1K8 y R3+Rv1=947. Debes adoptar el valor de una de las resistencias y luego sacas el valor de la otra.

En la imagen se ve que con 1.7V en la entrada tengo 5V en la salida.
Ahora aprovecho toda la potencia del ADC, solo debo tener en cuenta que cuando el ADC arroje el valor 1024 para mi significa 1.7V, y si arroja 512 seran 0.85V. Y si mi entrada varia en 1.6mV lo voy a detectar.
Resumiendo, debes multiplicar el valor que arroje el ADC por 0.0016 para obtener el valor correcto de la tension.
Para el caso que plantea guille1234 el quiere obtener 3.5 cuando tenga 1.7V, o sea que debe multiplicar lo que arroje el ADC por 0.0034 (3.5/1024)

Faltaria agregar una resistencia de 1K5 a la salida del AO directamente al ADC del micro, para limitar la corriente de entrada



Una ventaja que tiene esta configuracion es que puede absorver los errores propios de cualquier montaje, en la siguiente imagen varie el valor de la resistencia de 1 OHM a 1.4, es decir, introduje un error del 40%. Puede parecer mucho error, pero hablamos de 400mOhm. Entre la tolerancia de la R, mas contactos, mas pistas, mas la cola del diablo, esto puede pasar, y aun con menos, la salida se irá por encima de 5V y puede quemar el micro.
Por supuesto que se ponen protecciones para que esto no pase, pero mejor prevenir que curar.
Volviendo al tema, a pesar del error del 40%, moviendo el preset volvi a llevar la salida a 5V y listo para funcionar.
Aca esta el circuito con el error en la resistencia.



Bueno, espero que haya quedado un poco mas claro.
Por supuesto que esto se puede mejorar mucho (siempre se puede) pero es una buena manera de aprovechar al maximo el ADC, sin demasiadas complicaciones.

Quiero dejar algo en claro. Fer_TACA en el post anterior propuso una manera muy sencilla de solucionar el problema, no es mi intencion venir a complicar las cosas solo porque si, Fer_TACA propone sencillez sacrificando resolucion (20mV), yo propongo aprovechar mejor los recursos logrando 1.6mV de resolucion (nada es gratis, comlique un poco las cosas).
SIEMPRE si la solucion mas sencilla sirve, esa es la mejor.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: Pregunta sobre coversor analógico digital
« Respuesta #5 en: 05 de Marzo de 2011, 04:22:31 »
Hola a todos
os adjunto circuito de medida para el shunt, debéis de tener en cuenta, que la resistencia de carga, a la salida del amperímetro, estará, respecto a masa, en serie con el shunt, por lo tanto ,  de la caída de tensión sera la suma de las dos.
Yo en mis montajes, o bien uso un sensor de corriente hall, o monto este sistema, con un amplificador restador. Veréis un zener para , que en caso de sobre tensión proteger al pic.
Espero ser util

gracias a todos.

Desconectado guille1234

  • PIC10
  • *
  • Mensajes: 33
Re: Pregunta sobre coversor analógico digital
« Respuesta #6 en: 05 de Marzo de 2011, 10:05:09 »
Muchas gracias! Hace tiempo vengo haciendo una "super" fuente que mide tensión, temperatura, tiene timer off y con el tema de la corriente intenté varios circuitos con operacionales y nunca lograba que el valor max me lo amplificara a 5V, en la teoría andaba pero en la práctica no. Quería evitar fuente partida, compre operacionales de medicion, en fin, había desistido, medí la tensión de la R shunt cuando la corriente era máx y me dio 1.7V (también me pregunté por qué, según la ley de ohm no podía ser), entonces me dije cuando necesite precisión lo mido con un tester. Pero ahora voy a hacer este circuito así me queda perfecto.

saludos!!!

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Pregunta sobre coversor analógico digital
« Respuesta #7 en: 05 de Marzo de 2011, 17:47:47 »

Quiero dejar algo en claro. Fer_TACA en el post anterior propuso una manera muy sencilla de solucionar el problema, no es mi intencion venir a complicar las cosas solo porque si, Fer_TACA propone sencillez sacrificando resolucion (20mV), .....................

Hola amigo Irukza.
No existe polemica posible, la explicacion que has dado es soberbia y no la habria dado mejor.
Efectivamente la solucion que propuse era la mas sencilla, pues aunque en la conversion AD con Niple tambien se puede trabajar con 10bits, expuse solo la utilizacion de 8 bits a modo de ejemplo de como intentar solucionar el problema. Date cuenta que muchas veces al exponer el problema no solemos explicar muy bien con que recursos y con que conocimientos disponemos para poder llegar a buen fin con el problema.  De ahi que siempre trate de ir a lo mas facil, aunque no siempre sea lo mas correcto.
Asi mismo para una misma solucion siempre se pueden presentar varias opciones para resolverlas y una vez expuestas cada cual es muy libre luego de ir por un camino o por otro.

De todas formas no me siento enfadado, molesto,ni nada por el estilo, y agradecer tu gran explicacion

F.
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: Pregunta sobre coversor analógico digital
« Respuesta #8 en: 06 de Marzo de 2011, 04:52:28 »
Hola Guille.
Respecto a asunto de medir la caida de tension en el shunt, en mis experiencias (no en proteus sino en circuitos reales) me han funcionado según mis espectativas.
La primera tecnica es la que estas planteando.Se trata de medir la caída de tensión en el shunt y adecuar la escala, es conveniente multiplicar la V de caída para poder tener una lectura mas exacta, dado que la diff. de tensión entre las referencias del pic tienen que ser de un cierto nivel.Como os comente en el anterior post , debeis de apreciar que , a la salida de la fuente, como es lógico tendremos la carga, y como tambien es lógico , la carga no sera constante.La carga estala entre masa y la salida de la fuente, por lo que si medimos la caida de tension en la parte mas positiva del shunt tendremos la suma de loas dos caidas, la de shunt y la de la carga.Para solucionar este inconveniente te comente que midieras la caida con un amplicador restador, que ademas dotara de una ganancia de 10 al circuito.Este montaje lo he usado bastantes veces para medir la caida en sistemas de generación de corriente 4-20mha. y el resultado ha sido de una extrema precisión.

Otra manera , mas sencilla, y mas eficaz, dado que no hay necesidad de obligar a la corriente de salida a pasar por el sunt es ultilizar un sensor de corriente hall.Estos circuios, los hay para muchos rangos de corriente,  entregan una tension en funcion d el intensidad, y solo tienes que leerla y escalarla con el pic , este es un ejemplo
http://www.melexis.com/Assets/MLX91206-Datasheet-5942.aspx

Bueno ya he dejado i granito de arena

gracias a todos
juanfra

Desconectado irukza

  • PIC12
  • **
  • Mensajes: 87
Re: Pregunta sobre coversor analógico digital
« Respuesta #9 en: 06 de Marzo de 2011, 21:37:25 »
juanfra

si lees de nuevo el primer post verás que guille_1234 está poniendo el shunt en el borne negativo de la fuente, por lo tanto la variabilidad de la carga no afecta en lo más mínimo la lectura del shunt, la solución que propones es adecuada para un shunt en el borne positivo, si no mal entiendo.
Por mi parte, si te preocupa que el circuito que subí "en Proteus" no funcione, te cuento que funciona bastante bien "en la realidad", de hecho usando un AO "rail to rail" basta con alimetarlo con 5V, y es una configuración "bastante" conocida, básica diría yo, aunque su implementación tal vez no esté entre tus experiencias reales, claro.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: Pregunta sobre coversor analógico digital
« Respuesta #10 en: 07 de Marzo de 2011, 09:23:40 »
Hola Iruzka
Muchas gracias por tus magnificas explicaciones.
Tal vez no he sabido explicarme adecuadamente, cuando os dije "no en proteus si no en circuito real" no me estaba refiriendo a que no me funcionase en la simulación, todo lo contrario, funcionaba al 100%, ademas de coincidir plenamente con los resultados reales.

juanfra

Desconectado henryflash

  • PIC16
  • ***
  • Mensajes: 130
Re: Pregunta sobre coversor analógico digital
« Respuesta #11 en: 07 de Marzo de 2011, 18:17:11 »
hola, no entiendo si tenes una caida de tension de 1.75 V sobre una resistencia de 1ohm , la corriente circulante es 1.75 A. porque queres leer otro valor.

Desconectado guille1234

  • PIC10
  • *
  • Mensajes: 33
Re: Pregunta sobre coversor analógico digital
« Respuesta #12 en: 07 de Marzo de 2011, 19:08:18 »
Me dí cuenta recién que era una resistencia de 0.82Ohm, cuando tenga los valores correctos de tensiones de shunt según la corriente que pase por ella, les cuento
Estuve probando el circuito de irukza y funciona perfecto en el proteus
saludos
« Última modificación: 07 de Marzo de 2011, 21:54:18 por guille1234 »


 

anything