Fuente adecuada de voltaje negativo variable usando Arduino

¿Cómo puedo generar correctamente un voltaje negativo variable usando un Arduino? Me gustaría usar el pin de suministro de 5V en el Arduino, reducirlo (dinámicamente) a un voltaje apropiado y convertirlo en un voltaje negativo para usarlo como fuente de suministro negativo.

He visto publicaciones que usan el convertidor de voltaje negativo ICL7660 para suministrar un voltaje negativo. También me gustaría acercarme lo más posible a 0 voltios (un voltaje negativo muy alto, por ejemplo: -0.1V).

Según mi conocimiento, hay dos formas de hacerlo:

Primer método:

  1. Escale el voltaje de entrada de 5V usando un potenciómetro digital
  2. Use algún IC para convertir el voltaje de salida del potenciómetro digital a un voltaje negativo

Segundo método:

  1. Convierta el voltaje de entrada de 5V a -5V usando algún IC
  2. Escala -5V usando un potenciómetro digital

¿Hay alguna desventaja de obtener el FSR con cualquiera de estos dos métodos? ¿Qué componentes específicos recomendaría? Tengo un potenciómetro digital MCP4231 (pero no funcionará para el segundo método ya que no toma voltaje negativo).

El objetivo final es poder generar un voltaje negativo variable (controlado por un potenciómetro digital que puedo modificar mediante software) sin baterías adicionales. También me gustaría obtener una buena cantidad de variación entre -0.1V y -5V.

Estoy tratando de usar el voltaje negativo para generar la resistencia sensible a la fuerza Flexiforce aquí (el Vt en la imagen a continuación):ingrese la descripción de la imagen aquí

¡También sería útil cualquier consejo para un circuito frontal electrónico diferente que proporcione un control similar del rango de fuerza dinámica!

EDITAR

Según el consejo de @DrFriedParts, he usado su circuito para eliminar por completo el uso de una fuente de voltaje negativo. Sin embargo, al simular el circuito e implementarlo, parece que no obtengo una salida diferente a 5V.

Aquí hay una instantánea del circuito:

ingrese la descripción de la imagen aquí

La salida siempre es de 5 V, sin importar qué valores cambie para Rs (el sensor) y Rf (resistencia de retroalimentación). ¿Estoy haciendo algo mal? ¿No debería aplicar un voltaje de polarización mucho más bajo que 5V (como 0.5V) para que la salida sea de 0.5V a 5V?

Todo esto parece muy heath-robinson si solo desea leer la resistencia del FSR (que se puede hacer con una variedad de métodos ADC), ¿o también lo necesita para otra cosa?
Mmm. Bueno, el circuito de arriba me permite variar el rango de fuerza dinámicamente (variando Vt y Rf). Necesito modificar el rango de fuerza para mi aplicación. ¿Hay una forma alternativa más fácil de hacer esto? Actualmente estoy variando Rf a través de un potenciómetro digital, pero para el suministro de voltaje negativo del FSR (Vt) necesito ayuda para identificar la mejor manera de variar este voltaje.
Un puente de Wheatstone suele ser ideal para leer una variación en la resistencia como un voltaje. Vea si eso se ajusta a sus necesidades. El rango de fuerza generalmente se define por la mecánica del sensor, no por el voltaje, a menos que me esté perdiendo algo.
No creo que se requiera un puente de piedra de trigo. Aquí está la hoja de datos del sensor que tengo: tekscan.com/sites/default/files/resources/FLX-A301-A.pdf . El rango de fuerza se puede ajustar (como se menciona en la hoja de datos) variando el voltaje y la resistencia de retroalimentación. Solo necesito identificar una forma de variar correctamente el voltaje negativo con mi Arduino
Propuesta alternativa si no necesita un ancho de banda súper alto: conduzca la cosa con una fuente de corriente controlada dinámicamente a un voltaje objetivo constante. Impulsado por un "DAC de 1 bit", puede lograr una alta resolución y un rango dinámico, ciertamente más alto que un ADC de 10 bits. (¿Cuáles son las especificaciones de ruido y la precisión de su potenciómetro digital por cierto? Eso también limitará su resolución efectiva).
@ pjc50 ¿Cómo podría hacer una "fuente de corriente controlada dinámicamente"? ¿Puedo usar un analogWrite en el Arduino para hacerlo? ¿Por qué limitaría esto el ancho de banda?

Respuestas (1)

Esta es probablemente una arquitectura innecesaria.

Realmente no necesita (y probablemente no quiera) voltajes negativos en su aplicación.

  • Su microcontrolador ADC solo puede leer voltajes positivos.
  • Su amplificador operacional solo puede generar voltajes positivos.
  • El transductor solo generará voltajes positivos.

El elemento piezoeléctrico es una gran resistencia sin presión y su resistencia disminuye a medida que se aplica presión.

(Nota: no sé cuál es el rango dinámico de entrada de su ADC, así que asumiré 0-5V aquí. Escale en consecuencia si su rango es más pequeño)

Para adaptar el elemento al rango dinámico de su ADC, debe convertir el cambio en la resistencia del transductor (Flexiforce) en un cambio de voltaje... y luego escalar la salida resultante.

Propongo...

Antes de continuar, se debe tener en cuenta que la hoja de datos de este transductor no es lo suficientemente útil. Carece de las curvas o parámetros que realmente le permitirían predecir el rendimiento de este circuito. Incluso van tan lejos como para decirle que calibre cada unidad individualmente (lo que implica una alta variabilidad entre las unidades).

Dicho esto, podemos hacer algunas inferencias a partir de notas en la hoja de datos. A saber:

  • Especifican que la resistencia descargada es superior a 5 megaohmios.
  • La resistencia de retroalimentación debe ser menor que la del transductor o la salida se saturará.
  • Especifican una resistencia de realimentación mínima de 1k.

Propongo conectar Vref a +5V, usando un potenciómetro controlado digitalmente de 1 megaohmio de 256 derivaciones para Rf (por ejemplo, DISPOSITIVOS ANALÓGICOS AD5241BRZ1M) y conectar a tierra la otra terminal del transductor.

Esta es la función de transferencia resultante:

V o tu t pag tu t = R s R F R s V r mi F

donde Rs es la resistencia de Flexiforce, Rf es la resistencia de retroalimentación y Vref es el voltaje aplicado en la terminal positiva del OpAmp.

Cómo funciona

A mayor presión, la resistencia del transductor es menor. Si su ADC tiene 10 bits efectivos, podemos resolver 5mV desde un rango de 5V.

Configurando la ganancia a 1 MegaOhm (1e6 Ohms), ¡podemos resolver un cambio de 0.5% en la resistencia de los sensores! El voltaje de salida cambiará de 4.000V a 3.995V.

A medida que la resistencia continúa disminuyendo (se aplica más presión), podemos continuar resolviendo la presión con una precisión muy alta hasta que la resistencia del transductor se acerque a 1 megaohmio (la misma que la resistencia de retroalimentación).

En este punto, debe reducir la resistencia de retroalimentación para aumentar el rango dinámico (la capacidad de medir un rango más amplio de presiones) a expensas de la resolución (la capacidad de medir pequeños cambios en la presión). NO TE PREOCUPES. Su rendimiento de resolución seguirá siendo muy bueno (probablemente mejor que el ruido de fondo del transductor u OpAmp).

En el extremo superior de las presiones a las que podría estar expuesto el transductor, tendrá una resistencia de retroalimentación mínima. En el caso de mi parte propuesta de Analog Devices, eso es alrededor de Rf = 3.9k. En esta situación se puede resolver (teóricamente) un cambio del 0,1% en la resistencia de los transductores.

¡Impresionante! ¡ Amplio rango dinámico y sin fuente de alimentación de voltaje negativo variable desordenada!

YMMV

Cabe señalar que el propósito de la polarización negativa es aumentar su sensibilidad a bajas presiones (donde el transductor estará cerca de los 5 millones de ohmios). Dicho sistema no necesariamente superará mi propuesta, ya que la fuente de alimentación inversora introduce muchas vías de ruido adicionales y debe diseñarse con mucho cuidado para un circuito de detección de tan alta impedancia. También costará mucho más construirlo, ya que utiliza más componentes y componentes más caros.

Los parámetros exactos de ajuste y diseño de este circuito dependerán de cuánta (y cuán poca) fuerza realmente necesita para poder resolver y cómo se comporta realmente el transductor (la hoja de datos solo nos brinda límites, no características intermedias).

Hmm, aquí está la hoja de datos del sensor: tekscan.com/sites/default/files/resources/FLX-A301-A.pdf . El circuito que mostré es la interfaz electrónica recomendada para este FSR. Este no es un sensor flexible sino un sensor de presión. Usted mencionó polarizar el amplificador operacional con 2.5V. Esto eliminaría efectivamente la mitad de mi sala de medición (en un ADC de 10 bits, solo podría leer entre 512 y más). ¿No es eso algo malo para obtener la mayor precisión para un rango de fuerza dado?
Revisaré la respuesta...
He revisado la respuesta para tratar explícitamente con este transductor. ¡Buena suerte con tu proyecto!
¡Muchas gracias! Actualmente tengo la configuración del circuito de voltaje negativo, y solo necesito un potenciómetro digital de 100k Ohm para controlar el rango de fuerza completo. ¿Por qué necesito un potenciómetro de 1 megaohmio? Además, al comienzo de su respuesta, definió una función de transferencia. ¿No es la función de transferencia Vout = -Vt * (Rf/ Rs) como dice en la imagen que publiqué?
Mi diseño y tu diseño son muy diferentes. La función de transferencia de tu diseño es la de la figura. La función de transferencia de mi diseño es como la describí. Su diseño necesita una fuente de alimentación de voltaje negativo y una fuente de alimentación de voltaje positivo. El mío solo necesita el positivo = menos ruido, menos piezas, menor costo. Ambos enfoques funcionarán.
Oye, ¿te importa mirar el enlace de chat de arriba? ¡Gracias!
Oye, agregué algunos detalles en mi pregunta original. ¿Podrías mirar, por favor?
@tabchas: estoy en un avión en este momento. Voy a echar un vistazo mañana (con suerte).
¿Tuviste la oportunidad de echar un vistazo a DrFriedParts?