Resistencia variable con Arduino y Digipot MCP41XXX


arduino-digipot

¿Qué es un digipot?

Un potenciómetro digital (o digipot) es un dispositivo capaz de variar su resistencia desde una señal digital proporcionada por un procesador como Arduino.

El nombre técnico es un conversor resistivo digital a analógico (RDAC), aunque frecuentemente se denomina potenciómetro digital porque presentan un comportamiento similar a un potenciómetro convencional, pero en el que el control se realiza electrónicamente.

Típicamente un digipot está constituido internamente por múltiples resistencias conformando etapas, cuyo encendido está controlado por transistores. El número de etapas o niveles activados se controla mediante una señal digital y determina la resistencia total que presenta el dispositivo.

Aunque su nombre pueda sugerirlo, los digipots no deben considerarse un reemplazo directo de un potenciómetro. La principal limitación es la corriente máxima que puede atravesar el dispositivo, que típicamente está en el rango de unos pocos miliamperios.

Anuncio:

Los dispositivos de la familia MCP41XXX son potenciómetros digitales de 8 bits (256 niveles), disponibles en resistencias de 10 kO (MCP41010), 50 kO (MCP41050) y 100 kO (MCP41100).

Los MCP41XXX se controlan por SPI por lo que es sencillo realizar su lectura. La tensión de alimentación es de 2.7V a 5.5V. La intensidad máxima que puede atravesar el dispositivo es de 5mA.

Debido a las limitaciones de intensidad máxima que pueden proporcionar un potenciómetro digital, estos rara vez son empleados directamente en circuitos. En su lugar, suelen intervenir para controlar etapas de amplificación mediante transistor o amplificador operacional.

Los potenciómetros útiles en proyectos de control de instrumental de medición, ajuste fino de controladores, regulación de amplificadores, interface con sensores especialmente sensibles, entre otros.

Precio

Podemos encontrar digipots como los de la serie MCP41XXX por unos 0.60€ buscando en vendedores internacionales de eBay o AliExpress.

arduino-digipot-componente

Esquema de montaje

La conexión de un digipot MCP41XXX es sencillo, simplemente alimentamos el integrado desde Arduino mediante GND y 5V y conectamos los pines de datos como vimos en la entrada sobre el bus SPI.

arduino-digipot-esquema

Mientras que la conexión vista desde el lado de Arduino quedaría así.

arduino-digipot-conexion

Los pines de SPI que figuran son válidos para los modelos En Arduino Uno, Nano y Mini Pro. Para otros modelos de Arduino consultar el esquema patillaje correspondiente.

Ejemplos de código

El siguiente ejemplo muestra el uso de un digipot MCP41XXX. En primer lugar llevamos al digipot a valor máximo, intermedio, y mínimo de resistencia. Finalmente, hacemos un bucle continuo variando la resistencia entre máximo y mínimo.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección tutoriales de Arduino

Anuncio:

Previous Salida analógica real con Arduino y DAC de 12bits MCP4725
Next Más salidas/entradas en Arduino con multiplexor CD74HC4067
1000
5 Comment threads
9 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
newest oldest
Carlos

Hola…es posible usarlo para hacer un potenciometro de 220v AC ?? tienes algun circuito para ver?..Gracias Luis…Tu web me ayuda mucho en mis proyectos

jose

estoy buscandolo para una aplicación de 110 vac

Jaume Bonet Morató

Me llamo Jaume, soy de Barcelona.Eres un crack Luis, normalmente tus explicaciones son mas que suficientes para entender lo tratado, Pero tengo una duda que no logro resolver: ¿Por que un digipot mcpxxx controlado por ISP no funciona al sustituirlo por el real de una emisora rc? No logro sustituir funcionalmente el potenciometro analogico (Del stickde una emisora RC) por un «digipot» (logicamente de los mismos K) , ¿Sabrias decirme por que porfavor? El servo recorre el bucle 0 180 0 pero con temblores importantes… Mil gracias de antemano

Jaume Bonet Morató

P.D.: Añado, y disculpa, que no es cuestión de código ya que el bucle varia la luminosidad de un led como debiera. ¿Serán los 256 pasos del digipot, frente al valor de 0 a 1024 de uno analógico?
Gracias otra vez Luis!

Jaume Bonet Morató

Corrijo….. Digipot controlado por SPI Disculpad….fffff

c2mismo

¿Por que introduces en el setup niveles diferentes del Dpot?