Potenciómetro de lectura con ADC externo

Soy novato y mi primer post. Así que disculpe mi ignorancia de antemano.

Mi proyecto es crear una lectura portátil para leer potenciómetro(s) (potenciómetro de precisión lineal de 10K) con una precisión mínima de 10000 pasos. La unidad también debe poder adaptarse a la resistencia del conductor del cable desde la lectura hasta el potenciómetro. En última instancia, la lectura debería poder leer hasta 10 valores de limpiaparabrisas de potenciómetros similares cuando estos potenciómetros están conectados entre sí con los mismos cables de excitación. Tal vez use algún interruptor analógico con Ron <1 Ohm como MUX para leer valores diferentes. eso es algo después de que resuelvo mi problema inicial para leer 1 solo potenciómetro de 10 kOhm con la precisión deseada y la protección adecuada contra cortocircuitos

El dispositivo debe mostrar el valor de limpieza del potenciómetro actual en una pantalla LCD. La unidad funcionará con baterías y se usará como un lector portátil de mano.

Logré crear un prototipo crudo usando arduino nano, ADS1115 ADC y LCD externo. Usando ADS115 pude obtener una lectura relativamente estable de un solo potenciómetro (sin ninguna compensación de cable). Usé algunos promedios móviles para suavizar cualquier fluctuación. El ADS1115 se configuró para leer 8SPS ya que la velocidad de muestreo no necesita ser súper rápida para mi caso. También leí que una tasa de muestreo más baja elimina/reduce los errores y el ruido. Proporcioné 5 V de nano para excitar el potenciómetro y configuré el PGA a los 6.144 voltios predeterminados para medir el voltaje del limpiaparabrisas entre 0 y 5 V. Calculé la posición del limpiaparabrisas tomando una medida de voltaje diferencial entre la excitación y GND dividida por el limpiaparabrisas y GND. ¿Significa esto que básicamente estaba haciendo una medición de un solo extremo? ¿Tal vez debería haber hecho una medición de diferencia entre excitación-GND y excitación-limpiador y tomar su relación?

Entiendo que dado que ADS1115 no tiene referencia externa, en mi caso es mejor usar un ADC con referencia externa para eliminar el error de fluctuación de voltaje de excitación. Por lo tanto, decidí usar ADS1119 (obtiene una resolución de 15 bits y omite el ruido en mi suministro). Tiene 2 canales diferenciales, voltaje de referencia externo e i2c para interactuar con atmega328p. También he decidido usar MCP1700 3.3V LDO para alimentar el circuito (corriente de cociente bajo para la mayoría de lecturas alimentadas por batería inactiva, estable (más o menos) en alrededor del 2% y voltaje de caída muy bajo). En última instancia, el ATMEGA328p utilizará cristal de 8 MHz y utilizará un suministro de 3,3 V y no debería requerir más energía que la suministrada por MCP1700. Planeo crear mi propio pcb con estas partes. La placa de circuito impreso también contendrá un teclado (teclado de membrana 1x4 para alternar entre el menú y un MUX para leer entre 1 y 10 potenciómetros). Lo más probable es que se diseñe en torno a ATMEGA328p o ATMEGA2560 (no he finalizado esta parte, depende del requisito GPIO y las funciones de ahorro de energía, abierto a sugerencias).

Ahora mis preguntas principales son:

1- En mi caso este ADS1119 es la mejor manera de leer un potenciómetro? ¿O cuál es la forma correcta de leer un potenciómetro?

2-¿Necesito un LDO separado para la excitación? ¿Quizás una fuente de referencia de voltaje de precisión? ¿Se puede usar la referencia de precisión para excitar los potenciómetros? ¿O la referencia de voltaje no importa siempre que use la misma fuente que Vref externa para ADC y excitación para potenciómetro? ¿Cuál es un voltaje de excitación adecuado en mi caso? ¿Es suficiente 3.3V o es mejor más grande, 5V?

3- ¿Cómo compenso la resistencia del cable conductor de mis cables que conectan mi ADC a mi potenciómetro?

ingrese la descripción de la imagen aquí(en este esquema, disculpe que me faltan los límites de desacoplamiento en el ADC)

4-En caso de que haya una falla en el cable entre mi lectura y el potenciómetro, ¿cómo evito que un cortocircuito entre el voltaje de excitación y tierra dañe mi unidad y muestre un error/falla en la pantalla LCD? ¿Esto afectará la duración de la batería y posiblemente dañará mi LDO, ADC? Como identificar si hay corto en el cable?? ¿Cómo crear un circuito de protección para evitar esto y no afectar mis medidas de ADC? Esta parte ni siquiera tengo idea de cómo resolverla. :(ingrese la descripción de la imagen aquí

5- para ahorrar energía, ¿es mejor usar un relé que solo suministre voltaje de excitación al potenciómetro cuando se está midiendo? O dado que esta es una lectura que solo se usa cuando desea medir la olla, entonces tal vez no deba preocuparme por esta parte. Pensándolo bien, tal vez esta excitación controlada por relé solo tiene sentido cuando actúa como un registrador de datos que está constantemente conectado al sensor.

6- En última instancia, la lectura debería poder leer hasta 10 valores de limpiaparabrisas de 10x 10K pots. Preferiblemente, no se utiliza un interruptor giratorio, sino un multiplexor que se puede usar para seleccionar el limpiaparabrisas presionando un botón del teclado.ingrese la descripción de la imagen aquí

En este caso cuando hay potes 10x, la resistencia efectiva pasa de 10K a 1K. Entonces, la unidad debe optimizarse para excitar la resistencia entre 10K (potenciómetro único) y hasta 1K (potenciómetros 10x) o en cualquier punto intermedio sin ningún cambio significativo en la duración de la batería, ¿rendimiento? Este es el paso final.

Por favor, hágamelo saber si me falta alguna otra información.

Considere un enfoque alternativo, reflejado, un codificador rotatorio y un potenciómetro digital de 12 bits se pueden controlar de forma remota sin contorsiones, parece que resuelve el problema de control muy bien y elimina el problema de referencia por completo.
Desafortunadamente, no puedo cambiar el diseño del sensor que ya está en su lugar. en el futuro, tal vez se pueda implementar un nuevo diseño. La unidad de lectura debe poder leer hasta 10 potenciómetros x 10K.

Respuestas (2)

¡Hay mucho ahí!

Duración de la batería

En primer lugar, en lugar de establecer un objetivo absoluto para maximizar la vida útil de la batería, establezca un objetivo concreto para la vida útil de la batería y dimensione la batería y el presupuesto de energía en consecuencia. Es posible que descubra que no necesita preocuparse por un consumo continuo de 5 mA de los 10 potenciómetros.

Lectura de los potenciómetros

Hay más de una manera de hacer esto. El más simple es conectar los potenciómetros a través de V_ref del ADC y conectar cada limpiaparabrisas a un canal ADC de un solo extremo. Esto realiza una medición radiométrica de la posición del limpiaparabrisas. Para lidiar con la resistencia del conductor, use cables separados para el voltaje de excitación y para V_ref:

  • V_exc+, V_exc-
  • V_ref+, V_ref-
  • V_limpiador0, V_limpiador1, ...

Otra forma es tratar el potenciómetro como una resistencia variable (usando solo dos terminales). Luego, realizaría una medición de 3 o 4 cables para cancelar la resistencia del conductor. Esta configuración se usa a menudo con sensores de temperatura RTD y debería poder encontrar una nota de aplicación del fabricante de su ADC que aborde este problema exacto.

Sin embargo, dadas las largas distancias involucradas, la sugerencia de ErikR de un bucle de corriente puede ser una mejor opción que cualquiera de estas, ya que será menos vulnerable al ruido.

multiplexación

En lugar de usar un ADC y multiplexar los potenciómetros, puede ser más simple usar solo múltiples ADC, por ejemplo. 3 ADC de 4 canales.

Clientes potenciales largos

1000 metros es bastante. Más allá de la resistencia del cable, es posible que tenga problemas con la captación de ruido y los cables necesitarán protección. ¿Qué tipo de cable piensas usar? ¿Serás capaz de encontrar un cable asequible con 14 hilos?

Podría buscar soluciones alternativas:

  • Poner el ADC y la batería junto con los potenciómetros y ejecutar un protocolo digital en un cable adecuado. Deberá buscar específicamente un cable y un protocolo que pueda funcionar a esta distancia, pero esto simplifica la interfaz analógica (sin problemas con el ruido y la resistencia del cable) y le permite usar un cable con menos cables.

  • Igual que el anterior, pero ejecute un protocolo inalámbrico como Wize (en Europa) o LoRa, o incluso use una placa de microcontrolador con una conexión de datos móviles (como FONA de Adafruit). No me sorprendería si esta termina siendo la solución más simple y económica, aunque puede ser menos confiable.

batería: en algún lugar alrededor de 40 horas de tiempo de ejecución, unos pocos meses de tiempo de sueño. usar 3xaa alcalina en serie?

Déjame responder a esta pregunta:

3- ¿Cómo compenso la resistencia del cable conductor de mis cables que conectan mi ADC a mi potenciómetro?

Su diagrama indica distancias de hasta 1000 metros.

Para transmitir una señal analógica a larga distancia, a menudo se emplea un bucle de corriente de 4-20 mA. En lugar de un nivel de voltaje, la señal se transmite como una corriente entre 4 mA y 20 mA. Esto elimina el efecto de la resistencia del conductor ya que el controlador de bucle aumentará el voltaje en el bucle para mantener la corriente deseada.

En el extremo del microcontrolador, lee la corriente pasándola a través de una resistencia de derivación y leyendo el voltaje resultante con su ADC. También puede obtener módulos (se llaman "receptores de bucle de corriente") que incorporan un ADC a bordo y se comunica con ellos digitalmente a través de SPI o I2C.

El cable de 1000 m de largo es un máximo teórico. Por lo general, estos sistemas tienen entre unos pocos metros y cientos de metros de cable conectado a los registradores de datos/conectados a una lectura portátil. Entiendo que tener el circuito de medición integrado al sensor y escupir los datos digitales en, digamos, RS485, SD-12, 4-20mA bucle/transmisión inalámbrica eliminaría muchos problemas de ruido analógico, pero estos sistemas son sistemas heredados y ya están en su lugar, lo que necesita ser medido/controlado. Además, el cable del sensor tiene cables individuales de cada limpiaparabrisas y cables comunes de ambos extremos de las ollas.