Autor Tema: Paso a paso lo haré; Caudalimetro electronico  (Leído 8964 veces)

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

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Paso a paso lo haré; Caudalimetro electronico
« en: 28 de Noviembre de 2009, 08:23:41 »
Hola chicos que tal?? :)
No sabia bien donde iba a escribir el tema (lenguage C, Foro Tecnico, o aqui) pero al final me decidi por este por que en realidad es un proyecto.

Bueno voy a detallar un poco que es lo que tengo.
Esto realizando el prototipo de un caudalimetro electronico y he conseguido estos sensores de SENSORTECHNICS


Estos sensores son lineales, entregan una tension como he dicho lineal en la salidas 4 y 2 del sensor. Esta tension es proporcional a la alimentacion con la que este alimentado el sensor. Este puede ser alimentado con una tension de +3,5v  a +12v (+3,5 es lo menos con lo que lo he alimentado). Por lo que a la salida tendremos una tension lineal que rondaria de los 1,42 mV a 228,2 mV con una alimentacion de 4,5v.


La manera "analogica" de medir el caudal seria con mecanismo que consta de dos cilindros milimetreados uno que muestra un 0 cm en columna de agua y otro con metro y medio para medir la cantidad de agua en columna de agua que pasa por la acequia. Si sube el volumen de agua en la acequia va subiendo el nivel de agua en el segundo cilindro con lo que tendremos el volumen de agua en columna de agua que circula por la acequia.

Cuando el volumen de agua esta en 0cm el sensor nos entrega 1,42mV y cuando esta a metro y medio de volumen el sensor entrega 228,2mV.

Claro esta que esta tension entregada tengo que amplificarla para que el pic mediante el ADC pueda trabajar mejor con ella.

Lo que he hecho es con un amplificador operacional el LM741 en configuracion de amplificador de ganacia no inversor:

Con lo que consigo una ganancia de 21 a su salida.
AV = 1 + R2 / R1
AV = 1 + 200K / 10K = 21

  • Con lo que conseguimos que cuando este en 0 cm:
          1,42mV * 21 = 0.029mV
  • Y en un metro y medio :
          228,2mV *21 = 4.79 V

Lo que no se es si me aconsejariais poner un seguidor de tension entre el sensor y el amplificador de ganancia?

Actualmente tengo esto montado en la placa:


solo tomo referencia del valor amplificado positivo y creo que es aqui el fallo que estoy teniendo. El programa que tengo cargado en el PIC es el siguiente:


Código: C
  1. #include <16f876A.h>
  2. #device adc=10           //pic a utilizar
  3. #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP      //ordenes para el programador
  4. #use delay (clock=4000000)         //Fosc=4Mhz
  5. #define use_portb_lcd TRUE         //definir portb lcd
  6. #include<lcd.c>
  7.                  //libreria manejo lcd
  8. #use rs232(baud=19200, xmit=pin_c6, rcv=pin_c7)
  9. ///PROGRAMA
  10.  
  11. void main()
  12.    {
  13.    int16 q;
  14.    float mm,p,mv,h,x;
  15.  
  16.    setup_adc_ports(AN0);
  17.    setup_adc(ADC_CLOCK_INTERNAL);
  18.    lcd_init();
  19.    while(1)
  20.       {
  21.       set_adc_channel(0);
  22.       delay_us(20);
  23.  
  24.       q = read_adc();
  25.       p = 5 * q / 1024.0;
  26.  
  27.       mm = p * 1000.0; //paso voltios a milivoltios
  28.       mv = mm / 21; // divido el 21 de ganancia del operacional
  29.  
  30.       x = mv / 4.5 * 29.762; // ecuacion para pasar de milivoltios a cm en
  31.       h = x - 9.4018; // columna de agua.
  32.  
  33.  
  34.      /* printf("\r\n ADC = %4ld",q);
  35.       printf("\r\n Voltage = %01.2f mV",mv);
  36.       printf("\r\n altura = %01.2f milimetros",h);
  37.       DELAY_MS(200);
  38.       printf("\f");*/
  39.  
  40.  
  41.       //lcd_gotoxy(1,1);
  42.       //printf(lcd_putc,"ADC = %4ld",q);
  43.       lcd_gotoxy(1,1);
  44.       printf(lcd_putc,"Voltage = %01.2f mV",p); // muestro voltage de entrada adc
  45.       //DELAY_MS(500);
  46.       lcd_gotoxy(1,2);
  47.       printf(lcd_putc,"Altura = %01.2fcm",h); // muestro altura en cm.
  48.       DELAY_MS(500);
  49.       //printf(lcd_putc,"f " ) ;   //borra pantalla del lcd
  50.  
  51.       }
  52.    }

Despues de probarlo todo el fallo es el siguiente: La salida del amplificador la mido con el tester y el pic lee perfectamente el voltage (entre output + amplificado y gnd). Despues haciendo yo con el voltage obtenido los calculos me sale la altura y el pic la hace tambien bien. Pero el problema es que yo solo estoy cogiendo el valor positivo que entrega el amplificador con respecto a gnd y esto me da un voltage distinto a si yo cojo el valor + amplificado y el output - del sensor. Por lo que la ecuacion no me da la altura real en la columna de agua.

Por lo creo que el PIC esta midiendo entre gnd y output amplificado +, cuando en realidad tenia que estarlo haciendo entre output - y output amplificado +.

Puede ser ese mi error??

Espero haberme explicado lo mejor posible y siento haberme extendido demasiado.

Espero vuestra ayuda.

GRACIAS
« Última modificación: 28 de Noviembre de 2009, 14:54:31 por samshiel_pic »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Ayuda con Caudalimetro electronico
« Respuesta #1 en: 28 de Noviembre de 2009, 08:47:14 »
Yo estoy en algo parecido, pero a diferencia tuya utilizo el MPXV7025DP de Freescale, que tiene salida amplificada directamente del sensor.
Esta salida ira desde 2,62 volts hasta 4,85 volts en el rango positivo.
Funciona muy bien, a pesar que aun no lo conecte al pic ya tengo pruebas de campo que me confirman la estabilidad de su lectura y estoy muy conforme con el.

Elegi esto porque ya aprendi que se reniega mucho implementando un amplificador operacional a la entrada del PIC, ya que hay que tener en cuenta muchas caracteristicas de diseño que hacen funcionar mal tu proyecto.

Es mas caro para produccion, pero tambien tienes menos componentes en tu placa y menos problemas para estabilizar tu medicion.

Te lo recomiendo.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Ayuda con Caudalimetro electronico
« Respuesta #2 en: 28 de Noviembre de 2009, 08:54:24 »
Gracias MGLSOFT . Este proyecto es para un cliente el cual busco los sensores y en vez de pedirlos con la salida amplificada lo pidió sin amplificar. Como veras ya tengo que ajustarme a ellos.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #3 en: 29 de Noviembre de 2009, 14:27:05 »
Pensando bien podria comprobar que voltajes me entrega el output+ amplificado y masa y hacer una nueva grafica. No es lo suyo pero puedo comprobar con los otros sensores (ya que tengo varios) y comprobar esas graficas haver si son iguales o proximas.

No se me ocurre otra forma de poder medir la tension entre output+ amplificado y output- amplificado para poder medir correctamente el voltaje que entrega el sensor.

Haber si alguien me puede orientar un poco.

Gracias

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #4 en: 29 de Noviembre de 2009, 14:47:51 »
Hola.

Yo te recomendaría un amplificador de instrumentación como el AD620.
El papel lo aguanta todo

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #5 en: 29 de Noviembre de 2009, 14:56:40 »
Hola MLO__ que tal??
estoy mirando en estos momentos el datasheet. Tu lo has usado alguna vez? esplicame un poco su funcionamiento ya que no lo he utilizado nunca.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #6 en: 29 de Noviembre de 2009, 15:39:42 »
Ya encontre la ecuacion para obtener la ganancia del AD620, que es la siguiente:
G = (49K4 /RG)+ 1
o lo que es lo mismo:
RG = 49K4 /(G -1)

Osea para una ganancia de 20 que es lo que yo necesito para que el pic lo pueda leer con mas o menos buena resolucion seria

RG = 49K4 /(20 -1) = 2K6
Que en resistencias normalizadas seria 2k7

lo que no entiendo muy bien voy a intentar verlo es el pin 5 (referencia) por que no se si tendria que ponerlo a masa o que.

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #7 en: 29 de Noviembre de 2009, 15:51:24 »
me contesto a mi mismo:
ORIGINAL DEL DATASHET:
Citar
REFERENCE TERMINAL
The reference terminal potential defines the zero output voltage,
and is especially useful when the load does not share a precise
ground with the rest of the system. It provides a direct means of
injecting a precise offset to the output, with an allowable range
of 2 V within the supply voltages. Parasitic resistance should be
kept to a minimum for optimum CMR.

Y san GOOGLE translator:
Citar
TERMINAL DE REFERENCIA
El potencial de la terminal de referencia define el cero de tensión de salida,
y es especialmente útil cuando la carga no comparte una precisa
suelo con el resto del sistema. Proporciona un medio directo de
la inyección de un preciso compensar a la salida, con un rango permitido
de 2 V de las tensiones de alimentación. Resistencia de parásitos deben ser
reducirse al mínimo para los efectos CMR óptima.

que en mi caso seria que el - del sensor no es el mismo - que despues tendra de referencia el PIC.
No es asi??? luego no se si tendria que poner el REF a GND o por el contrario al output - del sensor.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #8 en: 29 de Noviembre de 2009, 22:08:12 »
El pin 5 va conectado a GND, este amplificador de instrumentación usa una fuente doble, es decir +v y -v, por lo que la referencia es GND. Yo lo he usado con muy buenos resultados.

Para la resistencia de la ganancia, yo use un trimer multivuelta, con lo que pude asignar muy bien la ganancia.

Saludos
El papel lo aguanta todo

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #9 en: 06 de Diciembre de 2009, 15:42:42 »
Hola chicos no he conseguido encontrar el ad620 por ningun lado y voy a ver como lo hago sin el.
ustedes como conectariais la salida del sensor al PIC???


Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #11 en: 06 de Diciembre de 2009, 16:00:00 »
Si vas a conectarlo directo al PIC, te recuerdo que solo dispones de 10 bits de resolucion (solo hay uno o dos de 12 bits) y que tus referencias en el valor minimo de tension solo llegan a la mitad de la tension de alimentacion del PIC.
Mira las hojas de datos del PIC a usar y corrobora esto que digo.

Yo usaria un conversor externo, con ganancia programable y para puentes resistivos, de ese modo evitas ambos problemas:
  • Una alta ganancia en un operacional proporciona inestabilidad en la lectura y en casos un offset que es dificil quitar
  • La inestabilidad propia del Conversos A/D interno del PIC, debido a diversos factores, entre ellos la alimentacion del PIC

Creo que si quieres seguir una linea, te recomendaria usar el MCP3551, que filtrando y todo, puedes sacar una resolucion de 18 bits en forma muy aceptable.
Por supuesto hay muchos mas, de Microchip y de otras marcas tambien, solo que este lo conozco mas o menos bien.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Drod

  • PIC16
  • ***
  • Mensajes: 136
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #12 en: 07 de Diciembre de 2009, 08:17:43 »
Hola! Puedes usar el INA128! Muy bueno!

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #13 en: 08 de Diciembre de 2009, 11:59:15 »
Hola chicos!!
el INA128 si lo he podido encontrar aqui en sevilla y es practicamente igual al AD620 en la practica.
He estado leyendo mucho sobre este en internet y en su datasheet la manera de conectarlo al sensor creo que es la siguiente:


Y la formula para conseguir la ganancia es la que he puesto tambien en la imagen.
Esta salida en principio podria ingresarla al pic directamente y que este sense el voltaje que esta entregando el sensor sin nada mas entre medias no???

Citar
Si vas a conectarlo directo al PIC, te recuerdo que solo dispones de 10 bits de resolucion (solo hay uno o dos de 12 bits)

MGLSOFT en principio no necesito tanta resolucion con 10 bits es mas que suficiente, pero por si acaso he estado mirando el MCP3201 para comunicarme por SPI, pero ya te digo no con los 10 bits del PIC en principio es mas que suficiente.

Otra cosa si podeis ver en el dibujo que he realizado al INA128 lo he alimentado a +5v y gnd en vez de +/-5v puede haver algun problema¿¿??? ya que el AD620 si me permitia esta conexion

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Paso a paso lo haré; Caudalimetro electronico
« Respuesta #14 en: 08 de Diciembre de 2009, 13:26:17 »
Hola.

Eso esta en el datasheet. Si dice que se puede no hay problema, de caso contrario, hay que usar fuente dual.

Saludos
El papel lo aguanta todo