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,cambiarmiADCAref
oGND
aunodelospinesR_a
oR_b
enelpotenció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.