Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

27/05/2015 #1


Convertir señal analógica de 4V de rango a 3,3V de rango
Buenas, quería hacer una consulta a ver que les parece la solución que quiero implementar.

El tema es que estoy trabajando con un pic24f (alimentado a 3,3V aprox) y quiero usar un sensor de humedad relativa de salida analógica (HIH 4010).

Dicho sensor tiene una salida de voltaje proporcional a la humedad relativa. El rango de dicha salida es de 0V a casi 4V según la curva del datasheet (varia según la temperatura existente).

El tema es que las entradas del conversor ADC toleran como mucho 3,6V, y aunque es próximo a la salida del sensor no quiero arriesgarme, por lo que quería "bajar" la salida del sensor para que estuviera en un rango de 0V a 3,3V.

Mi idea era hacer un divisor de tensión, lo único es que no se si debería poner un amplificador operacional por el tema de impedancias.

También, según el datasheet, en la salida del sensor hay que poner una resistencia de mínimo 80k, por lo que no se si debería también poner un amp operacional para separarla del divisor de tensión, aunque creo que no hace falta ya que está en "paralelo" con el sensor, por lo que no afecta a la tensión de este, y por lógica al posterior divisor de tensión.

Adjunto el datasheet.

Gracias.
27/05/2015 #2

Avatar de pandacba

Un divisro de tensión es la forma adecuada, podes utuilzar valores para que te queden en el rango de los 80k lo del operacional no es para nada mala idea

Para el caso de no utillizarlo hace que la suma de las dos ssea => que 80k por ejemplo 56K + 27k total 83k y para 4V vas a tener 2.7V, solo es una idea
27/05/2015 #3

Avatar de Gudino Roberto duberlin

Hola, chequea la hoja de datos del microcontrolador, normalmente la impedancia de entrada es de 10k, de igual manera chequea la impedancia de salida del sensor. Si es posible utiliza sólo un divisor resistivo, pues mientras menos etapas intermedias existan, menos distorsionada será la señal.
28/05/2015 #4


Ok. Gracias a los dos por las sugerencias.

Voy a probarlo y ya os diré.

Gracias de nuevo!!
28/05/2015 #5


Cuidado con el divisor resistivo, al tener en cuenta la impedancia del puerto de entrada se modifica la medición. Para descartar el error (dependiendo del rango de precisión que quieras manejarte) deberias colocar resistencias 10 veces menor en el divisor.
Es decir: Si el puerto se comporta como una R de 10K, la resistencia que colocas en paralelo con el puerto no debe ser mayor a 1K. La pregunta es si el sensor es capaz de proporcionar dicha intensidad.
No estoy muy familiarizado con PIC, ya que trabajo en arduino pero mira, si la impedancia de entrada es de 10k, directamente al colocar una resistencia en serie se transforma en un divisor de tensión.
recuerda que el sensor mide con una resistencia Pull-Up/Down.

Disculpa si no soy del todo claro. Si no se entiende, puedo realizarte un diagrama. Saludos y suerte
30/05/2015 #6


Hola Djnanno,

Justamente por lo que comentas sobre la impedancia de entrada (a la que ya se refería Gudino) comentaba lo de poner un operacional, para que no afectara al divisor.

No se si acabo de entender bien lo que propones utilizando la impedancia del pin. Si no entiendo mal sugieres utilizarla como parte del divisor de tensión? Eso es posible?

He mirado el datasheet del pic24fj64gb002 (que es el que utilizo) pero no he visto que impedancia tienen los pines (seguro que lo pone pero no lo he encontrado... ).

Mirando el Reference Manual de Microchip referente al ADC si que sale lo que parece un esquema del pin de entrada analógico (adjunto esquema), que indica una resistencia menor o igual a 3k, aunque no se si es realmente la impedancia de entrada del puerto...

No lo tengo muy claro.

Como bien dices, el sensor mide con una resistencia pull-down (según lo que sugiere el datasheet). Esta resistencia no afectaría a un divisor de tensión posterior no?

Lo del diagrama no estaría nada mal... (por pedir ... )

Muchas gracias por la respuestas, son de gran ayuda
Imágenes Adjuntas
Tipo de Archivo: png esquema.png (40,5 KB (Kilobytes), 13 visitas)
01/06/2015 #7


El operacional se justifica si tienes impedancias muy desparejas o tensiones muy bajas. En este caso donde todo esta pensado para operar con niveles lógicos no le veo mucho sentido.
Desgraciadamente no trabajo pic y desconozco su implementación en las entradas, pero te orientare al respecto de lo que yo hice una vez.
Arduino trabaja con resistencia pulldown colocada entre la entrada y gnd. Midiendo la tensión en el extremo de dicha resistencia. El valor de esa resistencia es de 10k. Por lo que al colocar una resistencia de 10k en serie genera un divisor de tensión donde la tensión vista por el micro es la mitad de la aplicada. Cuando llegue a casa te hago un diagrama con un valor de resistencia aproximado. Saludos y si me equivoco por favor corrijan!

---------- Actualizado después de 48 minutos ----------

Ahí esta logrado un divisor de tensión suponiendo que la resistencia es Pull-Down y de 10k. Como en el caso de arduino. Esta es la solución mas sencilla, también en caso de que temas que el sensor puede elevar mas la tensión puedes colocar un zener de 3.3V en paralelo con la R Pull-Down y así asegurar que la tensión no sobrepasará ese límite.

Si esta solución no te convence pues buscamos otra. Saludos
Imágenes Adjuntas
Tipo de Archivo: jpg Sin título.jpg (27,5 KB (Kilobytes), 9 visitas)
01/06/2015 #8

Avatar de pandacba

Momento hay un error de concepto, he visto infinidad de micro que tienen un A/D y no pasa nada de lo que decis, un ejemplo muy sencillo en el cual hay involucrado un AD, si fuera tal y como dices seria imposible con un tester medir un divisro resistivo, por ejemplo un tester tiene una impedacia de 10M según tus porpoas palabras no podria hacer un divivor con por ejemplo una R 8k2 y una de 1k8 por lo tanto no podria hacer ningún tipo de medición.........
La impedancia de salida de una fuene de tensión no afecta al conversor, y considerar la impedancia de entrada para utilzar como parte de un divisor es otro error
Haciendo el divisor tal como lo dije le funcionaria perfecto y sin problemas, trabajo con sensores de todo tipo, desde lo que te dan una gran señal como los que son muy bajas y hay que amplificar como una celda de carga por ejemplo, y nada de lo que dices pasa y los leso cun AD dedicado o con el AD de un micro o cualquiera que necesite como los AD multiples, Circuitos AD para trabajar con un micro que no tiene esa posibidad, etc etc
01/06/2015 #9

Avatar de chclau

Si la impedancia de entrada es alta, de varios MOhm como en un tester, es mas facil que no afecte a la medida.

Si la impedancia de entrada de un tester fuera de solo unos pocos kOhm, no se podria medir con el un divisor resistivo que incluye resistencias de esa magnitud
01/06/2015 #10


Por eso depende, el tester al cambiar de escala coloca resisten las en serie para acoplarse. En base a la escala utilizada es la impedancia que ofrece. En general se puede decir que si la resistencia a medir es 10 veces menor que la del multímetro el error es despreciable. Pero cuando estas son similares hay que sacar algunas cuentas. Por eso un buen tester indica la resistencia que ofrece en cada escala. De hecho te comento una experiencia que hicimos en la facu hace un tiempo. Medimos la corriente de saturación. Inversa en un bjt, que es del orden de micro amper(depende de que bjt y la temperatura) medirla con amperímetro es imposible y si utilizas resistencia de derivación menos aun ya que esta debe ser mayor a 1 mega. Entonces conociendo la resistencia del tester en la escala lo conectamos en serie como voltímetro. Haz un divisor de tensión con dos resistencias de 10M y veras como se altera al menos en un 30℅

---------- Actualizado después de 2 minutos ----------

Y si realizas un divisor para esta aplicación con R del orden de 1k, no solo introducirás vas ante error(aunque en el caso de programar puede considerarse en el código) sino que posiblemente exijas demasiada corriente a un sensor provocándole un esfuerzo que no es necesario. Saludis
17/08/2015 #11


Hola de nuevo.
Perdón por no decir nada hasta ahora
Agradezco mucho todas vuestras respuesta. Estuve unos días fuera y pensaba que ya había respondido.

Al final puse un divisor resistivo utilizando resistencias de 24 kΩ y 100 kΩ y parece que funciona bien.

Hoy pero, estaba mirando diferente documentación y me ha aparecido una duda (por eso he buscado el tema en el foro y he visto que no había dicho nada...)

El tema es que mirando he visto varios sitios que indican que en un convertidor ADC de los pic no hay que poner un circuito o sensor con una impedancia de salida mayor a 2.5 kΩ ya que eso puede introducir errores en los valores convertidos por el ADC a causa de que puede que el condensador interno no le de tiempo a descargarse o cargarse completamente.

Ahí me ha entrado la duda. En mi circuito la impedancia de salida es superior a 2.5 KΩ (divisor de tensión de 100 y 24 kΩ me da una impedancia de unos 20 kΩ).

En la info de microchip del adc también no recomienda valores de impedancia de salida del sensor de más de 2.5 kΩ pero por corrientes de fuga.

Ahí me ha entrado la duda. Aunque a mi me parece que funciona bien ya que leo la tensión de da en el sensor con un voltimetro i corresponde a la que lee el pic.

Probé de hacerlo con resistencias de 2,4 kΩ i 10 kΩ però entonces me modificaban la tensión del sensor.

No se. Una opción seria poner un operacional después del divisor, ya que tiene una impedancia de salida muy baja, pero claro, si ya me funciona no se porque modificarlo.

Mas que nada quería entenderlo ya que es por un trabajo y me gustaría saber el porque.

Muchas gracias de nuevo
17/08/2015 #12

Avatar de Scooter

Si, a mi me parece una barbaridad esos valores.
Yo habría puesto del orden de 10k o algo menos.
17/08/2015 #13


Adjunto esquema del divisor de tensión. También hay una resistencia de 100 kΩ entre Vin i tierra

Scooter dijo: Ver Mensaje
Si, a mi me parece una barbaridad esos valores.
Yo habría puesto del orden de 10k o algo menos.
Si

Yo pensé lo mismo pero entonces me bajaba la tensión del sensor. Podría ser por la resistencia de 100 Ωk de la entrada (la que no he dibujado)?

Por esto las puse de estos valores
Imágenes Adjuntas
Tipo de Archivo: png Captura de pantalla 2015-08-17 a les 20.17.40.png (7,0 KB (Kilobytes), 11 visitas)
17/08/2015 #14

Avatar de Scooter

Pues menuda M de sensor (con perdón)
Pues siempre tendrás que ver las impedancias de uno y otro lado a ver que pasa.
Ir irá pero seguramente estarás distorsionando.
18/08/2015 #15

Avatar de Scooter

Pues pensando un poco, si la impedancia de entrada es menor que la de salida del sensor, me parece que deberías de poner un operacional o amplificador de instrumentación no inversor con ganancia 3.3/4 y así seguro que va bien.
Otra opción que se me ocurre es que recalibres el sensor con otro que sepas que va bien haciendo una tabla para corregir la distorsión. Bueno ahora que pienso más esto sería lo primero, ver que distorsión hay porque lo mismo en el rango que tu usas no afecta o bien no distorsiona en ese punto. Una vez que sepas cuanto distorsiona decides.
18/08/2015 #16


Scooter dijo: Ver Mensaje
Pues pensando un poco, si la impedancia de entrada es menor que la de salida del sensor, me parece que deberías de poner un operacional o amplificador de instrumentación no inversor con ganancia 3.3/4 y así seguro que va bien.
Otra opción que se me ocurre es que recalibres el sensor con otro que sepas que va bien haciendo una tabla para corregir la distorsión. Bueno ahora que pienso más esto sería lo primero, ver que distorsión hay porque lo mismo en el rango que tu usas no afecta o bien no distorsiona en ese punto. Una vez que sepas cuanto distorsiona decides.
Hola Scooter.

La opción de recalibrarlo lo tengo difícil ya que no dispongo de otro sensor con que compararlo.

Creo pero que la medida la toma bien.

A ver, el sensor és un sensor de humedad. Da una tensión de salida proporcional a la humedad relativa. He montado el sensor, con el divisor de tensión, sin conectarlo al pic y la tensión que da en ese momento es la misma que si la conecto al pic, por lo que no afecta al sistema que esté conectado o no al pic.

Si realizo la lectura con el pic a través del ADC y muestro el valor en pantalla me da la tensión que he medido (la del divisor de tensión claro), por lo que intuyo que adquiere bine el valor. Por eso en su día lo di por bueno.

Lo que pasa es que hoy leyendo he visto lo de las impedancias para las entradas analógicas y me he "rallado". Mirandolo después bien, creo que lo de las impedancias tiene que ver con que si es elevada no da tiempo al condensador interno del ADC a descargarse o cargarse, dando lecturas erróneas.

Puede ser que a mi me dé bien porque al ser un sensor de humedad no tiene cambios ràpidos de salida i puse un tiempo de muestreo alto. Puse el máximo que son 31 Tad, con un Tad de 0,5 µs (freq de 8MHz y seleccioné Tad = 2TCY)

Imagino que con esos tiempos el condensador tiene tiempo de cargarse totalmente. Como no hago lectura hasta al cabo de mínimo 1 minuto imagino que se descarga totalmente de sobras.

El tema es que es para un trabajo y no tengo muy claro que contestar si me preguntan el porque...
18/08/2015 #17

Avatar de Scooter

Pues contestas que has verificado durante X días la humedad relativa medida por una estación meteorológica 'que tiene tu agüela en su casa de La Coruña' y el PIC al lado y leía bien.
A ver, guasas aparte yo habría hecho algo así, con un higrómetro conocido verificar cuatro o cinco puntos y si no se va escandalosamente es que va bien.
También depende de para que uses el dato y como afecte a tu problema/proceso.

Muchas veces los circuitos funcionan dura de sus especificaciones , pero como comentas, está bien tener una respuesta pensada si preguntan.
18/08/2015 #18


Scooter dijo: Ver Mensaje
A ver, guasas aparte yo habría hecho algo así, con un higrómetro conocido verificar cuatro o cinco puntos y si no se va escandalosamente es que va bien.
También depende de para que uses el dato y como afecte a tu problema/proceso.
Es lo que tenía pensado hacer... pero el tiempo aprieta y no se si me dará tiempo... siempre a última hora, no aprendo

Seguro que encuentro alguna pagina web con datos de alguna estación meteorológica cercana y puedo comparar.

Lo que pasa es que a parte de poder decir y confirmar que va bien (muy importante claro) me gustaría poder decir (y sobretodo entender) el porque va bien.

Estoy muy oxidado en eso de la electrónica...

Nada, que después de 10 años uno decide terminar la carrera y claro... a ver quien se acuerda...
18/08/2015 #19


Es cierto que un sensor de humedad requiere una baja frecuencia de muestreo por lo que te funcionará bien, el tema de una impedancia tan alta es que te produce tambien un nivel de ruido que puede alterar la medición. Te recomiendo que reduzcas un poco esos valores de impedancia a valores menores a 50k para reducir la probabilidad de ruidos, o que implementes algún filtro por hardware o por software para evitarlos.

Si la freuencia de muestreo fuera un poco mas alta, puedes implementar un pequeño retardo antes y despues de cada lectura. No trabajo pic y por eso no te lo puedo indicar en programación, pero en arduino sería:

delay(5);
variable=analogRead(0);
delay(5);

Para prevenir ruidos te recomiendo dos posibilidades:
1) realizar un filtrado con las muestras para que si aparece un valor muy grande sea descartado, es decir que si aparece una variación muy brusca, sea reducida. Esto se puede lograr promediando.

2) colocar un pequeñisimo capacitor cerámico en paralelo con la entrada del pic (el valor deberías calcularlo, o estimarlo para que no modifique la lectura).

Me parece mas adecuada la primera, si quieres mas información solo pregunta. Saludos
18/08/2015 #20


djnanno dijo: Ver Mensaje
Es cierto que un sensor de humedad requiere una baja frecuencia de muestreo por lo que te funcionará bien, el tema de una impedancia tan alta es que te produce tambien un nivel de ruido que puede alterar la medición. Te recomiendo que reduzcas un poco esos valores de impedancia a valores menores a 50k para reducir la probabilidad de ruidos, o que implementes algún filtro por hardware o por software para evitarlos.
Podría probar. En principio con un divisor con valores de 10 i 2,4 kΩ deberia funcionar pero me pasaba que me bajaba la tensión. Supongo que era por problema con impedancias del sensor y el divisor o el pic. Poniendo un operacional en medio serviría no?


djnanno dijo: Ver Mensaje
Si la freuencia de muestreo fuera un poco mas alta, puedes implementar un pequeño retardo antes y despues de cada lectura. No trabajo pic y por eso no te lo puedo indicar en programación, pero en arduino sería:

delay(5);
variable=analogRead(0);
delay(5);
En principio la aplicación no necesita aumentar la frecuencia de muestro, no es un tema importante la velocidad


djnanno dijo: Ver Mensaje
Para prevenir ruidos te recomiendo dos posibilidades:
1) realizar un filtrado con las muestras para que si aparece un valor muy grande sea descartado, es decir que si aparece una variación muy brusca, sea reducida. Esto se puede lograr promediando.
Imagino que te refieres a hacer varias medidas seguidas, compararlas y eliminar las que se desbien mucho. La encuentro muy buena idea

djnanno dijo: Ver Mensaje
2) colocar un pequeñisimo capacitor cerámico en paralelo con la entrada del pic (el valor deberías calcularlo, o estimarlo para que no modifique la lectura).
Lo vi recomendado en una apliación de lecutra de un potenciòmetro. No me acordava. Es otra posibilidad.

Muchas gracias a todos por las respuestas
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.