PDA

Ver la versión completa : Ahora un voltímetro y un amperímetro



Aunolose
17/09/2010, 17:49
Pues eso, tengo una fuente con más años que Matusalen pero que entrega 5A y 20V, le tengo cariño porque es la primera seria que hice, como no tenía un duro, aproveché componentes de todas partes, el trafo es de un televisor a válvulas, de hecho tiene varias salidas "desaprovechadas", una de 100V otra de 6,3 para los filamentos de muchos amperios también.

El caso es que al no tener un duro como voltímetro aproveché un vumeter sacado de una radio también vieja, le pegué un papel blanco y con lápiz escribí la tensiones... amperímetro no tiene. El esquema está sacado, como no, de Elektor.

El caso es que ahora, aún disponiendo de algo más de dinero no quiero gastarme un duro en ella, y he pensado reutilizar un display de 4 digitos con un ICM7211AMIPL que tengo por aquí y algún PIC del cajón, ya puestos, le pondría también amperímetro, con un botón cambiaré de una indicación a otra.

No tengo claro si "ya que estamos" hacer el control de la tensión e intensidad digitalmente, es decir, con botones o con mando digital, me parece más rápido el analógico multivuelta de toda la vida, y si no es multivuelta, más rápido aún. Eso ya lo veré.

Si queréis os voy poniendo fotos y código.

Como tengo 4 digitos La idea es que el amperímetro tenga una resolución de 1mA y 5A de fondo de escala, el voltímetro 10mV, aunque esto aún estoy rondando si lo hago autoescala y llego al mV, dependerá de las ganas y sobre todo de los componentes que tenga, pues a esas escalas, la referencia debe ser muy precisa, aparte de los componentes asociados.
El primer problema es que si quiero medir 20V con 10 bits de resolución (que son los del A/D del PIC) la resolución es de 20mV, por eso, lo que haré será usar las multiples entradas y por una reducir la tensión a la mitad y con otra a 1/4, de está manera, de 0 a 10 mediré por una entrada y de 10 a 20 por otra, pero sigo con el problema de la resolución, para ello quería implementar un restador, así, si a 20 le resto 10, vuelvo a tener de 0 a 10, evidentemente con las debidas protecciónes, si solo pongo un divisor resisitivo de 1/2, cuando tenga 20 voltios al PIC me llegan 10V, así que a la entrada "directa" le pondré un zener de 5.1V, para limitarla, para no abusar del diodo interno de protección.
En la parte de "de 10 a 20", la tensión pasa a ser de -10 (cuando le resto 10V a 0) a 10, (cuando le resto 10 a 20), en este caso, además del divisor pondré también el zener, como polarizado "al revés" es un diodo normal, la tensión en la pata sería de -0.6 a 5V1 máximo, suponiendo que pase de 20V, sino, serían 5 exactos.


Para el amperímetro pensaba usar varias resistencias en paralelo, y amplificar lo necesario, lo bueno de esta fuente es que es "de cuatro terminales", dos para la corriente y dos "de medida", es decir, la tensión se mide por dos cables pero la corriente "gorda" va por otros dos, allí es donde se intercala el amperímetro y por eso no hace falta que la resistencia sea muy, muy pequeña, aunque para corrientes elevadas, mejor cuanto más pequeña, por la potencia.

¿Os parece que voy bien?

Dedalo
17/09/2010, 20:31
Pues yo para la medicion de tensiones con el PIC he utilizado el siguiente metodo. Como las tensiones a medir estan alrededor de 12V y con un limite mas o menos de 20 V, he dividido la tension por 5 con resistencias de 12K y 48K Ohmios. Como tenia un paquete de bastantes resistencias en casa estuven midiendo todas hasta encontrar parejas que incluido el error me diese valores en relacion un poco menor que 1:4 para provocar uina leve descalibracion. La suma en serie de 12K + 48 K da 60 K, por lo que en la resistencia de 12K tengo 1/5 de la tension de entrada. Como la medida la hago con la referencia de 5V de alimentacion del PIC el rango de medida es de 0 a 25V, pero con valores seleccionados con alguna desviacion el voltaje de fondo escala es de 25,5 V, que es un pequeño truco para despues evitar complejas conversiones por software.

Ademas, como no me hacía falta una lectura demasiado precisa, he utilizado la opcion de ajustar a la izquierda los 10 bits de resolucion, eso quiere decir que en lugar de tener un valor en dos bytes de "000000xx.xxxxxxxx" el valor devuelto es "xxxxxxxx.xx000000", es decir, que leyendo el byte alto ya tengo un valor de conversion de 8 bits perdiendo solo los dos bits bajos, lo que me ahorra faena en la conversion, solo uso un byte.

Con la lectura de un byte tengo un valor de 0 a 255, como mi rango de lectura es de 0 a 25,5V, tengo una precision de 0,1 V y lectura directa en binario (el truco de la descalibracion controlada) :lol:. La rutina de conversion supone apenas 10 o 12 intrucciones en assembler.

En tu caso, puesto que quieres mas precision, con 10 bits y utilizando el mismo sistema puedes obtenes un valor entre 0 y 25 voltios con precision de 25 mV, puedes utilizar el byte alto para los voltios con precision de 0,1 V, ese valor lo metes directamente en los tres digitos altos del display y en el digito bajo puedes poner un valor leyendo los dos bytes extras en el byte bajo del ADC para calcular un digito extra con los valores 0, 2, 5 y 7.

Dedalo
17/09/2010, 20:41
Para la medicion de intensidad yo tenía un grave problema con el cero, pues los amplificadores operacionales convencionales no me daban suficiente precision de offset de entrada. Al final he tenido que comprar unos amplificadores de instrumentacion con offset de unos pocos microvoltios y ganancia calibrada seleccionable con conexiones externas que he cableado para G=128.
He utilizado un shunt de 100 Amperios que me da 75 mV cuando la corriente es de 100 Amperios (es para la bateria de la AC) con el amplificador de instrumentacion, el voltaje que obtengo es de 96 mV por Amperio (75 * 128 / 100). Tomo como referencia para el operacional un valor central con un divisor resistivo que me sirve como cero, Con el PIC mido la tension de referencia, luego la tension de salida del operacional, las resto y ya tengo la intensidad que puede ser positiva o negativa, segun la batería esté cargando o descargando.

Aunolose
17/09/2010, 22:10
¿de donde sacaste la resistencia de 48k? :D

Yo intentaré usar resistencias "normales", usando 22K y 18K son 40K, junto con una 10K, tengo 1/5 de la tensión, para 1/4, tengo un "truco" con un operacional usando la entrada no inversora y aprovechando el +1, lo tengo que buscar, igual resulta que no sirve...

La resolución "mínima" es de 10mV, por tener 4 digitos, dos para las unidades y decenas y dos para los decimales, he estado revisando la documentación del ICM y no tiene punto decimal, así que si ando moviendo la escala, no voy a aclararme: 10mV.

La máxima resolución del AD depende en realidad de la tensión de referencia, si uso VDD, serían 5mV, pero me someto a que la alimentación tenga ruido y me "desmonte" toda la precisión. así que voy a mirar por los cajones por que me suena que tengo zeners de precisión de 2.5V con lo que la resolución podría ser de 2.5mV, más que suficiente.

Para la intensidad 0, había pensado alimentar el operacional con tensión negativa, o bien sumar una tensión para que no llegue a 0, lo malo va a ser el offest, pero creo que se puede salvar con el ajuste adecuado, la tensión de referencia precisa vuelve a ser importante, pero la verdad es que no creo que pueda llegar a 1mA de manera precisa, al fin y al cabo, solo los polímetros caros llegan ¿que pretendo yo con un PIC y componentes "de calle"? :D lo más probable es que acabe cediendo y aceptando o bien 10mA, por aquello de no marearme con los digitos al cambiar, o 2.5mA, por el limite de la precisión.

Ya veré, creo que estoy metiendo mucha circuitería para lo que yo pensaba...

Si tengo que pedir algo, se desmonta la cosa, pues "puestos a pedir", lo pido ya hecho...

Dedalo
20/09/2010, 10:53
Releyendo hoy tu primer mensaje me asalta una duda... ¿Porque vas a poner dos divisores de tension? pon uno que te de la suficiente precision y listo... Para la intensidad simplemente una resistencia de 0,01 Ohmio. Un operacional y listo, ajustas con dos potenciometros el cero y la ganancia... No es muy preciso pero puede servir.

En intensidad no te compliques la vida, toda la precision la vas a perder en el operacional, asi que no busques mas de esos 10 mA de precision.

Aunolose
20/09/2010, 13:05
Tienes razón, la precisión no puede ser muy buena, de echo me equivoqué al poner que la aumento con una referencia de 2.5V, si mido 20V (reducidos con un divisor o no) con 10 bits, tengo 20 mA máximo, se puede aumentar la precisión si cambio la referencia baja también, y hago que mida los 15V (por ejemplo) con una referencia baja de 14V y alta de 16.5V, así si que tengo precisión, pero eso no lo puedo hacer de manera sencilla con el PIC, tengo que meter mucha circuitería, como con lo de "restar" los 10 V, para llegar a los 10mV.

Las resistencias las pondría en paralelo, por ejemplo, 10 de 1 ohmio, esto da 0.1 a, 5A, 0.5V, que ya se pueden medir bien, gracias a los 4 hilos, la tensión en el punto de alimentación sería "la buena".

La idea era no tener que pedir/comprar componentes, hacerlo con lo que tengo, o como mucho que se pueda comprar en cualquier sitio, si la venden barata, vale, si no, pues no. Lo que pasa es que "ya que estamos"... ahora me planteo si va a ser cómodo eso del botón para una cosa u otra, es que rebuscando encontré un amperímetro de aguja con el cristal roto, pero que funciona....

Aunolose
20/09/2010, 13:17
Ah, los divisores de tensión, eso sería para la tensión, y para llegar a los 10mA, la tensión de salida la divido por 2, esto hace que pase en vez de 0 a 20, de 0 a 10, que sigue siendo demasiado la entrada de un PIC, pero pongo un zener y la protejo, ¿que consigo con esto?, que la medida de 0 a 10 sea más precisa, pues la mido con 10 bits, como solo puedo medir hasta 5V (que se corresponden con 10V de salida) serán 10mV de precisión, cuando desborde, mido por otra entrada.
A esa entrada le llega, la salida de la fuente (de 0 a 20) pero a la que le he restado (con un operacional) 10V justos, con esto consigo que a la entrada le lleguen de -10 a 10, pero paso de la parte negativa y me quedo otra vez con la de 0 a 10, que, o bien divido por la mitad para que "entre" en los 0 a 5 del operacional, o en el mismo operacional hago la división, eso lo tengo que calcular, a lo mejor puedo aprovechar el divisor de la otra entrada.
el caso es que ahora mido de 10 a 20 voltios, nuevamente 10 V, (transformados a de 0 a 5V) con 10 bits, 10mV, en el display solo tengo que sumarle los 10V al resultado y ya lo tengo.

Se puede hacer con una sola entrada y restándole o no los 10V, al final gasto dos patas igualmente, así que prefiero hacer uso de los recursos del PIC y no meter también otro circuito conmutador analógico, aunque sea un transistor.

Dedalo
20/09/2010, 17:56
Para minimizar la circuiteria lo mejor es poner todo resistencias fijas. Una vez terminado el circuito haces el programa de forma que puedas calibrar el propio PIC.

Una formula sería hacer un programa que multiplique el numero medido por una constante y le sume otra constante de forma que el resultado sea:

R=(M * K1) + K2;

De esa forma, si las variables las almacenas en la EEPROM puedes hacer unas cuantas medidas con un polimetro bueno y con el PIC, y en funcion de los resultados calcular las constantes K1 y K2 para calibrar el voltimetro, y lo mismo para el amperimetro. Y rizando el rizo, le habilitas el puerto serie y escribes una rutina para poder cambiar las constantes y hacer la calibracion de vez en cuando... Otro sistema sería poner unas patas del PIC a unos pulsadores y escribir una rutina que te permita hacer una calibracion desde un menu a traves de los pulsadores.

Aunolose
20/09/2010, 19:24
Me gusta esa idea, pero con USB :D así lo hago con cualquier PC de los nuevos.