Potenciómetro digital: El circuito integrado X9C103P

24
29602

En esta ocasión escribiré acerca de un circuito integrado con características muy especiales, un potenciómetro digital. En pocas palabras, es un circuito integrado que tiene la capacidad de variar su resistividad a través de una señal digital.

El circuito integrado X9C103P, un potenciómetro digital capaz de variar la resistividad de un circuito desde un entorno digital. En este post se explicará como utilizar este circuito, utilizando como controlador un Arduino Leonardo

Hasta ahora hemos utilizado algunos potenciómetros como resistencias variables el algunos proyectos.

Potenciómetro tipo «trimmer»
220px-Potentiometer
Potenciómetro de perilla

Como sabemos, al mover la perilla variamos la resistencias entre las patas del potenciómetro. Un potenciómetro digital tiene un funcionamiento similar, pero por ser digital no tenemos que mover una perilla ,sino excitar una entrada del circuito para obtener diferentes resultados.

Potenciómetros digitales

El circuito integrado X9C103P forma parte de una familia de circuitos integrados que tienen la función de un potenciómetro. Entre la «C» y la «P» se coloca una numeración. En este caso es 103, lo que significa 10×10^3. Eso equivale a 10000 Ohm, es decir, 10KOhm por lo que el circuito X9C103P solamente podrá alcanzar un valor máximo de 10K.

Existen los modelos 102 (1K), 104(100 K) y 503(50K). Cada uno es un arreglo de 100 resistencias. En el modelo de 10K cada resistencia es de 100 Ohm. En el modelo de 1 K son 100 resistencias de 10 Ohm; en el modelo de 50K son 100 resistencias de 500 Ohm; en el modelo de 100K son 100 resistencias de 1 K cada una.

Estos potenciómetros pueden ser adquiridos desde Mouser, Jameco, Ebay, Amazon, etc. El precio es bastante accesible, lo cual permite considerar este tipo de circuito como una opción viable para los proyectos en los que sea necesario emplearlos

Características del circuito integrado

El esquemático de esta familia de circuitos integrados es el siguiente:

qRMXa

Pin No.

Nombre del Pin

Descripción

1

INC

Incremento. Cuando se le aplica una señal de onda cuadrada en esta pata el circuito aumenta o reduce el valor de su resistividad dependiendo del estado en que se encuentre la pata U/D

2

U/D

Up/Down. Dependiendo del estado de esta pata cuando se aplique una onda cuadrada en el INC el valor de la resistencia subirá o bajará.

3

VH/RH

Este es el equivalente de una de las patas del potenciómetro, específicamente una de las 2 patas situadas en los extremos.

4

VSS

Voltaje de salida (GND) del circuito. Se conecta a tierra.

5

VW/RW

Este es el equivalente una de las tres patas del potenciómetro, específicamente la pata del centro. Se le llama “wiper”

6

VL/RL

Este es el equivalente de una de las patas del potenciómetro, específicamente una de las 2 patas situadas en los extremos.

7

CS

Esta pata es prácticamente el activador/desactivador del dispositivo. Cuando está en estado LOW es posible cambiar la resistividad del potenciómetro. Una vez pase a un estado HIGH el circuito guardará la resistencia en dicho instante en una memoria no volátil que es capaz de mantener dicho valor por un periodo muy extenso, siendo posible guardar una configuración por un tiempo de hasta 100 años.

8

VCC

Voltaje de entrada (V+) del circuito. Se conecta al voltaje de alimentación.

Para configurar este circuito integrado necesitamos una serie de combinaciones de estados HIGH/LOW, lo que hace un poco complicado utilizarlo de forma manual. Sin embargo utilizando un micro controlador como Arduino se hace muy fácil aumentar, reducir y guardar la resistividad en este circuito.

Utilizando el potenciómetro con Arduino

Ahora vamos a armar un sencillo diagrama con el que nos será posible manipular el estado del circuito con Arduino.

X9C103P

Como vemos es muy fácil de usar.

  • Conectamos la pata 1 al pin 2 de Arduino, la pata 2 al pin 3, la pata 7 al pin 4.
  • La pata 4 va a GND y la pata 8 va a V+.
  • Entre las patas 3 y 5, o bien, 5 y 6 es donde medimos la resistencia. Recordemos que en los potenciómetros mecánicos tenemos 2 opciones, medir la resistencia entre la pata 1 y 2 y entre la pata 2 y 3.
  • Acá es lo mismo, solo usaremos la  5 y 6 o la 3 y la 5.

La programación de Arduino se hace completamente sencilla a través del uso de una librería escrita por Timo Fager. Se llama DigiPotX9Cxxx y la podemos encontrar en el siguiente enlace:

https://sites.google.com/site/tfagerscode/home/digipotx9cxxx

Recuerden que hay que copiar el contenido de la carpeta que descargamos en la carpeta libraries en la raíz de Arduino, es decir, la carpeta donde tenemos instalado Arduino IDE.

El código a usar es el siguiente:

Subiendo este código a Arduino, abrimos el Monitor Serial. Con enviar un «1» aumentaremos la resistencia la cantidad de veces que enviemos el uno. Con un «0» o cualquier otro carácter reduciremos la resistencia.

El valor mínimo será cercano a 0 y el valor máximo será próximo a 10K. He aquí un video donde les presento el armado del circuito y el funcionamiento del mismo.

Cualquier duda me la pueden expresar a través de sus comentarios. Saludos.

0 0 votes
Article Rating
Suscríbete
Notify of
guest

24 Comments
newest
oldest most voted
Inline Feedbacks
View all comments
Yerson
Yerson
6 months ago

Como hago para el ESP32 de 38 pines? es el mismo código?? Lo estoy programando en el mismo IDE de Arduino

Daniel
Daniel
2 years ago

Hola es muy bueno
Para controlar el voltaje de salida de una fuente regulada 0-30V 5A SERIA IDEAL
Si no fuese así, un circuito para controlar el voltaje de salida de una fuente regulada 0-30V 5A
TOUCH (Potenciómetro táctil )
saludos

ggb
ggb
3 years ago

/* * DigiPot.pde – Example sketch for Arduino library for managing digital potentiometers X9C1xxx (xxx = 102,103,104,503). * By Timo Fager, Jul 29, 2011. * Released to public domain. * * For this example, connect your X9C103P (or the like) as follows: * 1 – INC – Arduino pin 2 * 2 – U/D – Arduino pin 3 * 3 – VH – 5V * 4 – VSS – GND * 5 – VW – Output: 150 Ohm resistor -> LED -> GND * 6 – VL – GND * 7 – CS – Arduino pin 4 * 8 –… Read more »

luis salazar
luis salazar
4 years ago

bnas noches mi querido amigo solicito tu gran ayuda no soy experto pero estoy experimentando con arduino y necesito una mano… tengo un potenciometro digital conectado a una placa arduino uno y tengo problemas con el codigo… lo que quiero hacer es que desde un scrollbar de app inventor poder subir o bajar el potenciometro digital… estoy haciendo un mapeo en el codigo arduino pero no me funciona muy bien, si puedes echarme una mano gracias…. #include DigiPot potAnt(2,3,4); int input; int potsube, potbaja; int inc = 2; int u_d = 3; int cs = 4; void setup(){ Serial.begin (9600);… Read more »

Juan
Juan
5 years ago

Hola. Gracias por el aporte. Estoy creando una fuente y deseo regular el voltaje con digipot y pulsadores. La cuestión funciona a medias. 1- Usando la librería. Estas obligado a llamar al método reset() de ella, antes de empezar. En caso contrario, el digipot se inicia con valor de 255 y de ahí no se mueve. 2- Lo mas importante para mi, es mantener el ultimo valor.(Si ese que dice almacenar 100 años). pero es imposible. Al apagar tiene el problema de que, si no haces reset, vuelve con el valor de 255, y si lo hace, valor 0….. 3-… Read more »

Jose Urbano Arjona
Jose Urbano Arjona
5 years ago

Hola Antonio

Gracias por su sensacional trabajo. He realizado el circuito descrito, pero no me funciona. Lo he probado con un Arduino Uno, Nano y un Mega2560, y con ninguno de ellos me ha llegado a funcionar. Los X9C103P los he adquirido en China.. podria ser ese el problema?. Gracias y saludos

Jose Urbano Arjona
Jose Urbano Arjona
5 years ago

Pues que a la salida de las patillas con un multimetro puesto y pulsando el 1, no cambia el valor….

Jose Urbano Arjona
Jose Urbano Arjona
5 years ago

Hola, pues he conectado el multimetro y no varia el valor de la resistencia.

Chinnon Santos
6 years ago

Parabéns pela postagem, você foi claro é direto, estou aqui do Brasil implementado seu tutorial em um circuito de controle industrial. Abraços

Emmanuel Garcia
Emmanuel Garcia
6 years ago

Hola! ¿Podrías orientarme a cómo programarlo en MatLab?

Carlos Alonzo
Carlos Alonzo
7 years ago

amigo es lo que me referia, que si puedo poner mas potenciometros por ejemplo 6 para el control de 6 luminarias con un solo arduino, o necesito implementar mas arduinos?

David seage
David seage
7 years ago

Hola
Muchas gracias por el tutorial.
Con un potenciometro funciona perfectamente. Pero quiero poner tres n el mismo programa y qe se activen independientemente.
Sería posible?

Antony García González
Antony García González
7 years ago
Reply to  David seage

Sí es posible. Pero debes ajustar el código

Antony García González
Antony García González
7 years ago

Gracias por la observación

Edgar
Edgar
7 years ago

Que tal. Tienes un pequeño problema en tu código. En la línea 12 debe ser «input» y los tienes como «inpue»

DelfinDelfin
DelfinDelfin
8 years ago

¿Cuál es la potencia que soportan estos circuitos?

Antony García González
Antony García González
7 years ago
Reply to  DelfinDelfin

Poca potencia. 10mA @ 5 volts

Guiu
Guiu
8 years ago

Hola, estoy pensando en montar este circuito en una Raspberry Pi pero desconozco a que pin de GPIO debo connectar la pata 1, la 2 y la 7. Sabrías indicar cuales son las salidas de RPI adecuadas. Cualquira valdria o deben ser SPI, I2C u otras siglas que desconozco?

Muchas gracias y muy buen trabajo!