Tengo una aplicación en la que necesito medir la caída de voltaje en una resistencia que varía entre 10 ohmios y 50 kohmios. Como tengo esto configurado como un divisor de voltaje, y un AtoD lee el resultado, pensé que la mejor manera de ser preciso es cambiar diferentes resistencias, dependiendo de la resistencia de la variable:
simular este circuito : esquema creado con CircuitLab
Algo como lo anterior. Esto debe ser controlado por un microcontrolador, y mi pensamiento inicial fue usar un multiplexor para cambiar las diferentes resistencias. Esto parecía una buena idea al principio, sin embargo, al mirar las hojas de datos de estos componentes, la resistencia ON era un problema. Para los rangos más altos, fue insignificante, pero si la resistencia 100R estaba activada, la resistencia del MUX era lo suficientemente significativa como para afectar el resultado.
Este es un diseño de presupuesto controlado, por lo que todos los MUX/decodificadores de muy baja resistencia, etc. están fuera del presupuesto (no tengo el control de esto). Mi siguiente pensamiento fue tal vez usar MOSFETS para cambiar las resistencias, ya que pueden ser extremadamente bajas con una resistencia encendida; sin embargo, esto requiere más pines de puerto en mi microcontrolador. 4 en lugar de 2. Esto me dejaría con solo 2 pines de E/S, lo que no deja mucho espacio para agregar cualquier otra cosa que pueda solicitarse en el futuro. Este método también significa más componentes, lo que aumenta ligeramente el costo de colocación.
¿Hay una mejor manera de hacer esto que me estoy perdiendo? ¿O son los MOSFET quizás la mejor manera de hacer esto?
Más rentabilidad (esto se siente como código de golf):
Como funciona:
Al controlar el ciclo de trabajo del control, varía el voltaje de la compuerta de CC y, por lo tanto, ajusta la resistencia del FET de manera continua. También puede usar la retroalimentación para llevar AtoD a un voltaje definido (por ejemplo, VCC/2) y luego su ciclo de trabajo le da el valor de R1 (a través de una conversión que debe establecer una vez).
En el futuro, incluso podría limpiar el ADC (ahorrar costos) y realizar la retroalimentación con un comparador, para que su MCU pueda leer el ciclo de trabajo directamente.
Si su microcontrolador tiene pines de E/S de tres estados, es posible que no necesite transistores para cambiar las resistencias. Simplemente use tres pines IO y cámbielos entre el modo alto (salida) y alta impedancia (entrada):
simular este circuito : esquema creado con CircuitLab
Puede usar variantes de este circuito con las resistencias en paralelo o en el lado bajo, etc.
También mire si su microcontrolador tiene resistencias en serie configurables integradas en los pines en las que pueda confiar para prescindir de la resistencia de valor más bajo.
[EDITAR] Es posible que deba ajustar los valores de resistencia para mantenerse dentro de las capacidades actuales de su microcontrolador. Tal vez pueda obtener suficiente precisión con solo 2 pines y 3 resistencias de hasta 470 ohmios.
Sus requisitos (2% de precisión a una frecuencia de muestreo de 1 kHz) son relativamente altos; debido a esto, creo que evitaría los 'trucos' que requieren sobremuestreo y me limitaría a usar MOSFETS para cambiar las resistencias.
Pero si desea reducir los costos, es posible que pueda salirse con la suya con menos de 4 resistencias, según la resolución efectiva sin ruido de su ADC a esta frecuencia de muestreo:
Tenga en cuenta que esto solo está mirando una resolución del 2%, no necesariamente una precisión del 2%. Pero con un ADC de 16 bits, es posible que pueda salirse con la suya con una sola resistencia de 680 ohmios (sin necesidad de ningún cambio). Con un ADC de 12 bits, dos resistencias pueden ser suficientes. Con un ADC de 10 bits, probablemente necesite tres.
Tenga en cuenta que no necesita cambiar la resistencia de mayor calibre; simplemente puede cambiar una resistencia más baja en paralelo. Entonces, si usa 2 resistencias, solo necesita un MOSFET, etc.
Otra forma de muy bajo costo. Si bien el original puede deshacerse del ADC y ahorrar una gran cantidad de costos, es posible que no pueda alcanzar 1 kHz de ancho de banda si el reloj de control de la MCU es demasiado bajo.
Aquí hay otra solución que requiere el ADC, pero usa líneas de control cero y realiza una medición de resistencia logarítmica. Los costes de las piezas deberían estar muy por debajo de 50c. El voltaje de salida será proporcional al logaritmo de R durante algunas décadas. Como el requisito de precisión es modesto, la solución logarítmica de rango único debería estar bien.
Si la corriente a través de D1 y R1 es demasiado grande para valores pequeños de R, entonces un sumidero de corriente de dos transistores se puede envolver alrededor de R1. Esto también hará que el circuito sea más estable a la temperatura y usará menos corriente con un costo adicional mínimo.
Las resistencias de configuración de ganancia R2 + R3 deben elegirse de acuerdo con el rango de diodo y VCC.
El diodo también puede estar "debajo" de R1, con la ganancia trabajando frente a GND en lugar de VCC. Esto tiene la ventaja de que la señal de salida estará referenciada a GND (en caso de que el ADC no esté usando VCC como referencia)
Kartman
MCG
tobalto
MCG
tobalto
MCG
Kartman
MCG
damiend
MCG
damiend
Lundin
MCG