Usando un potenciómetro digital en un divisor de voltaje

7

Estoy usando un MCP3008 ADC y un MCP4131-103 (10k) potenciómetro digital para probar y crear una especie de" divisor de voltaje ajustable ".

Para el proyecto, la resistencia que estoy midiendo variará, y esperaba usar el MCP4131 para ajustar mi resistencia de referencia sobre la marcha. A saber:

Vin
|
R1
|
|--Vout
R2
|
GND

Estoy midiendo y registrando R1 (un material) a lo largo del tiempo, y aumenta a partir de unos 500-20k Ohms durante la duración del interés. Si uso una resistencia fija para R2 , obtengo una resolución deficiente cuando el valor no coincide con el valor actual de R1 . Esperaba que el potenciómetro digital se ajustara a la media móvil, por lo que también mantengo mi resolución.

Creo que tengo tanto el MCP3008 ADC como el MCP4131 funcionando individualmente con mi Raspberry Pi 3 usando SPI, pero no parecen funcionar como espero en una configuración de divisor de voltaje.

Al conectar el MCP3008 de esta manera Guía de Adafruit , usé un voltaje divisor con una resistencia de 10k como R2 y la siguiente fórmula para encontrar R1 :

v_out = adc * 3.3/1024
R1 = R2*(3.3 - v_out)/v_out

| resistor used |  calculated |
|---------------+-------------|
|          1000 |        1010 |
|          4700 |        4628 |
|         47000 |       46574 |

Eso confirmó que mi ADC parece estar funcionando bien.

Además, hice un ciclo a través de la configuración del MCP4131 y leí manualmente el valor entre el alto (3.3V) y el limpiaparabrisas con un multímetro. En cada caso estoy enviando un valor de target resistance * 128/10000 . Traje los resultados y obtengo:

Mepareciólosuficientementebuenoparacreerqueelbotetambiénestáconectadoyfuncionacorrectamente.

Ahora,cuandotratodeconfigurarundivisordevoltajecomoelanteriorparaprobarelpotenciómetrodigitalyelADCjuntos,obtengoresultadosasombrosos.Heintentadodosconfiguracionesparasolucionarproblemas,sustituyendoel4131comoR1oR2,conunaresistenciafijacomolaotrautilizada:

wiperpinof4131--|--resistor--GND||ADC3.3V--resistor--|--wiperpinof4131||ADC

Alusarunaresistenciade10kenlaprimeraconfiguraciónyconfigurarelpotenciómetrodigitala5k,obtengounalecturadeADCsinprocesarde403o1.3V.Mehubieraesperado:

3.3V*(10000/(10000+5000))=2.2V

Estodacomoresultadouncálculode:

10000*(3.3-v_out)/v_out=15384#shouldbe5000

Cambiandolascosasyusandolasegundaconfiguración,obtengounalecturadeADCde624o2.01V.Esperounvalorde:

3.3V*(5000/(10000+5000))=1.1V

Estodacomoresultadouncálculode:

5000*(3.3-v_out)/v_out=3209#shouldbe10000

Mepreguntosiporqueelpotenciómetroesrealmenteundivisordevoltajeensímismo,noseestácomportandocomoespero.¿Debería,porejemplo,cambiarmiADCArefoGNDaunodelospinesR_aoR_benelpotenciómetro?Otalvezelerrorestéenmicódigoynecesitotenerencuentadosdivisoresdevoltajeseguidos.

Noheencontradoningúnejemplodeusodeunpotenciómetrocomounadelasresistenciasenundivisordevoltaje.Desafortunadamente,unpotenciómetroesuno,albuscar"usar un potenciómetro en un divisor de voltaje" recibe una tonelada de golpes que simplemente explican qué son los potes.

Gracias por cualquier orientación, y me complace publicar cualquier otra información que pueda ser útil.

    
pregunta Hendy

4 respuestas

2

Debe configurar su potenciómetro digital como un reóstato. Si conecta el limpiaparabrisas con uno de los terminales A o B, obtendrá una resistencia variable entre los dos terminales A y B.

De acuerdo con la hoja de datos, el limpiador está en B cuando el potenciómetro digital está configurado en 0, y A en escala completa. Esto significa que puede elegir si la resistencia estará cerca de 0 \ $ \ \ Omega \ $ o 10 k \ $ \ Omega \ $ cuando configure el valor mínimo / máximo en el software, dependiendo de si conecta A o B al limpiador. Esto puede hacer que su rutina de software sea más conveniente.

    
respondido por el awjlogan
1

Los números que lees coinciden casi perfectamente con el circuito que creaste (cuyo esquema, lamentablemente, aún no se ha publicado, pero se puede revertir)

simular este circuito : esquema creado usando CircuitLab

En el primero:

$$ V = 3.3 \, \ text {V} \ times \ frac {3.33 \, \ text {k} \ Omega} {3.33 \, \ text {k} \ Omega + 5 \, \ text {k } \ Omega} \ approx 1.32 \, \ text {V} $$

mientras que en el segundo

$$ V = 3.3 \, \ text {V} \ times \ frac {5 \, \ text {k} \ Omega} {3.33 \, \ text {k} \ Omega + 5 \, \ text {k } \ Omega} \ approx 1.98 \, \ text {V} $$

Sin embargo, no creo que sea el mejor circuito para medir con precisión las resistencias: la resistencia de los limpiaparabrisas, que por lo general está lejos de ser estable y repetible tanto en potenciómetros electrónicos como electromecánicos, probablemente va a desviarse y compensar sus medidas.

    
respondido por el carloc
1

Sé que esto probablemente no sea una gran forma, pero quería capturar datos / gráficos suplementarios para otros que se encuentren con esto. Comencé a ponerlo en la pregunta, pero eso realmente lo hizo largo, así que solo voy a sentarme aquí como respuesta.

Muchísimas gracias a awjlogan y carloc por sus respuestas.

Comenzaré con carloc , quien creó un maravilloso esquema de lo que no pude entender. Aceptando esta realidad de "divisor de doble voltaje", tuve que cambiar mis cálculos, sin embargo, encontré que esto está lejos de ser ideal debido a la fórmula de resistencia equivalente. Tome este escenario de la respuesta, que es la configuración que planeé usar:

Paraelesquemadelaizquierda,meimaginoelpuntodeajustedemibote,setptcomoeltipoderesistencia"ascendente" creada por el limpiador, y obtendré un R2 como mi resistencia "descendente". R1 , mi medida de interés y setpt terminan formando una resistencia equivalente, R_eq , que es lo que se muestra como Rpar a la derecha. Simulé varios rangos de mi material desde 1000-20k Ohms, y un rango de puntos de ajuste de potes. Para cualquier setpt :

R2 = 10000 - setpt
R_eq = 1/((1/R1) + (1/setpt))

Aquí hay una gráfica de R_eq vs. R2 , con R1 agrupado / coloreado:

Porlotanto,funciona,peroobservequeelR2másaltoquepuedolograresmuchomenorqueR1amedidaquecrece,queesexactamentelarazónporlaquequeríaprobaresteenfoquedetodosmodos.

Dichoesto,lailuminacióndelcircuitoeradoradayrealmentegolpeóelclavoenlacabezaconrespectoalaslecturasquepenséqueerantanextrañas.

Alasugerenciadeawjlogan,quefueacortarelpindellimpiaparabrisasyunodeP0AoP0B,usarunodeesos(contraellimpiador)comoentradaparamiADC.Meimaginouncircuitocomoeste:

simular este circuito : esquema creado usando CircuitLab

En este caso, he dibujado el potenciómetro como dos resistencias, y el flujo eléctrico es algo "ciego" a la mitad superior debido al corto. De esta manera, obtengo exactamente lo que estaba buscando, que es un simple divisor de voltaje donde una pierna es ajustable.

carloc señaló que esto puede ser demasiado ruidoso / inexacto / no repetible, y eso requerirá algunas comprobaciones. Para mi prueba preliminar, esto es lo que obtuve con algunas resistencias y varios puntos de ajuste del potenciómetro:

Aquí están los datos en bruto correspondientes, con un error como abs((adc-measured)/adc) en porcentaje:

   setpt     adc  measured  error
1   2000  9441.3      9880   4.65
2   4000  9429.5      9880   4.78
3   6000  9515.2      9880   3.83
4   8000  9467.0      9880   4.36
5  10000  9504.8      9880   3.95
1   2000  4340.6      4610   6.21
2   4000  4376.3      4610   5.34
3   6000  4431.2      4610   4.03
4   8000  4431.0      4610   4.04
5  10000  4442.9      4610   3.76
1   2000   913.2       981   7.42
2   4000   934.9       981   4.93
3   6000   958.1       981   2.39
4   8000   914.0       981   7.33
5  10000   998.9       981   1.79

Para terminar esto, veremos si esto funciona para mi caso de prueba. ~ 5% no es demasiado malo, pero tampoco es genial. Compare eso con un rehacer de mi prueba inicial del propio ADC, ajustado por el valor medido de mi 10k R2 (9880):

     adc  measured  error
0    998       981   1.70
1   4635      4610   0.54
2  46640     46500   0.30

¡Eso hace que el 5% se vea bastante mal!

Comenzaré una nueva pregunta sobre cómo podría medir la resistencia de un material variable, pero este fue un ejercicio divertido y espero que ayude a alguien en el camino.

    
respondido por el Hendy
0

Sus resistencias son demasiado grandes para este ADC, consulte la Figura 4-2 de la hoja de datos. Puede agregar un búfer justo antes del ADC, p. Ej. un amplificador de búfer de ganancia unitaria basado en op-amp. Creo que un MCP6001 debería ser suficiente para su configuración.

    
respondido por el Szidor

Lea otras preguntas en las etiquetas

Comentarios Recientes

dispositivo (amplificador de primera división), se determinan la amplitud y las siguientes funciones de ganancia. Los resultados muestran cómo varias combinaciones de cambios de distorsión afectan este valor de amplitud. Algunas veces y pronto agregará mucha distorsión. Método predeterminado: en la primera operación, la amplitud cae desde la configuración baja abierta a la configuración alta cerrada. Se aplica un nuevo nivel de ganancia para cada posición en la que se calcula un valor modificado. El filtro... Lees verder