ADS1115: conversor analógico-digital para Arduino

ADS1115

Para aquellos proyectos donde haga falta una conversión de señal analógica a digital, y que el microcontrolador usado no disponga de esta capacidad, es interesante contar con este tipo de módulo ADS1115, que provee de esa capacidad de conversión ADC con una precisión de 16-bit.

Además, este componente electrónico puede ser interesante también para extender las capacidades de conversión, incluso si el microcontrolador que estás usando para tu proyecto tiene dicha capacidad pero necesitas algo más.

Conversores A/D y D/A

Señal analógica vs digital

Existen dos tipos de conversores de señal fundamentales, aunque también existen otros chips capaces de hacer ambos tipos de conversión a la vez. Estos son:

  • CAD (Conversor Analógico a Digital) o ADC (Analog-to-Digital Converter): es un tipo de dispositivo que convierte la señal analógica en una señal digital. Para ello, puede ir usando un código binario que codifica la señal analógica. Por ejemplo, asociando un valor binario a un valor de tensión o corriente concreto. Por ejemplo, con 4-bit de resolución se puede ir desde el 0000 al 1111, y podría corresponder a 0v y 12v respectivamente. Aunque si se usa un bit de signo se pueden medir valores negativos y positivos.
  • CDA (Conversor Digital a Analógico) o DAC (Digital-to-Analog Converter): es un dispositivo que hace lo contrario a lo anterior, es decir, unos datos binarios los transforma en una señal de corriente o tensión analógica.

Con estos conversores se puede pasar de un tipo de señal a otro, como verás en el caso del ADS1115, que correspondería al primera caso.

Sobre el ADS1115

pinout ADS1115

El ADS1115 es un módulo conversor de señal. Lo que hace es convertir de analógico a digital. Puedes pensar que la propia placa de desarrollo Arduino ya incluye ADCs internos para poder hacer esta tarea cuando se usan las entradas analógicas y que puedan ser compatibles con las señales del microcontrolador.

Sí, es cierto, tienen 6 ADCs de 10-bit de resolución en la UNO, Mini y Nano. Pero con el ADS1115 agregas otro con una resolución de 16-bit, superior a la de Arduino, además de poder liberar la carca de Arduino. Quince de ellos son para la medición y un último bit para el signo de la señal analógica, ya que como sabes, la señal analógica puede ser negativa o positiva.

Además, este módulo aporta todo lo que necesitas, para que su utilización sea muy simple. Para conectarlo a tu Arduino puedes usar el I2C, por lo que es realmente sencillo. Incluso incluye un pin marcado como ADDR con el que puedes seleccionar una de las 4 direcciones disponibles para este componente.

Por otro lado, tienes que entender que el ADS1115 tiene dos modos de medición, uno es el diferencial y otro el single ended:

  • Diferencial: usa dos ADCs para cada medición, reduciendo el número de canales a 2, pero aporta una ventaja clara, y es que puede medir tensiones negativas y no es tan vulnerable al ruido.
  • Single ended: tiene cuatro canales al no usar los dos como en el caso anterior. Cada uno de los canales de 15-bits.

Además de esos modos, incluye un modo comparador en el que se genera una alerta a través del pin ALRT cuando alguno de los canales supera un valor umbral que se puede configurar en el código fuente del sketch.

Si quieres hacer mediciones inferiores a los 5v, pero con precisiones superiores, debes saber que el ADS1115 tiene un PGA que puede ajustar la ganancia de voltaje desde los 6.144v a los 0.256v. Siempre teniendo en cuenta que la máxima tensión que se puede medir en cualquier caso será la tensión de alimentación empleada (5v).

Pinout y datasheet

Si quieres ver todos los detalles técnicos del ADS1115 para saber sus límites a nivel electrónico o las condiciones bajo las que puede funcionar según las recomendaciones del fabricante, puedes usar los datasheets que puedes encontrar en la red. Por ejemplo, te puedes descargar este de TI (Texas Instruments).

Para el pinout y conexionado, anteriormente ya he comentado algo sobre la señal ALRT que incluye también sobre ADDR. Pero tiene otros pines que también debes conocer para una correcta integración con tu placa Arduino o para cualquier otro caso. Los pines disponibles en el módulo ADS1115 son:

  • VDD: alimentación con 2v a 5.5v. Lo puedes alimentar conectándolo a 5v de tu placa de Arduino.
  • GND: tierra que puedes conectar a GND de tu placa Arduino.
  • SCL y SDA: pines de comunicación para el I2C. En este caso deben ir a los pines adecuados según tu modelo de Arduino.
  • ADDR: pin para la dirección. Por defecto se conecta a GND, que da lugar a la dirección 0x48, pero puedes elegir otras direcciones:
    • Conectado a GND = 0x48
    • Conectado a VDD = 0x49
    • Conectado a SDA = 0x4A
    • Conectado a SCL = 0x4B
  • ALRT: pin de alerta
  • A0 a A3: pines analógicos

Si quieres usar single end puedes conectar la corriente o voltaje analógico que quieres medir entre GND y uno de los 4 pines analógicos disponibles.

Para la conexión single end, simplemente conectamos la carga a medir entre GND y uno de los 4 pines disponibles. Para el modo diferencial puedes conectar la carga a medir entre A0 y A1 o entre A2 y A3, según el canal que quieras usar.

diagrama Arduino ADS1115

Como ejemplo de conexionado en el caso de un modo de lectura diferencial, puedes observar la imagen anterior. En él se usan pilas de 1.5 en serie, sumando 3v que se conectan entre A0 y A1 en este caso para que la placa Arduino pueda medir a través del I2C los valores obtenidos de tensión en cada momento. Evidentemente, puedes usar cualquier otra señal para medir, en este caso son unas pilas, pero puede ser lo que desees…

¿Dónde comprar el ADS1115?

ADS1115 módulo

Si quieres comprar el ADS1115, debes saber que tienes módulos preparados para integrar con Arduino por precios bastante baratos. Los puedes encontrar en multitud de tiendas especializadas en electrónica, así como en eBay, Aliexpress y Amazon. Por ejemplo:

Integración con Arduino

Captura de pantalla de Arduino IDE

Para comenzar, lo primero es instalar la biblioteca correspondiente en tu Arduino IDE. Para ello, puedes usar la más famosa, la de Adafruit. Para ello, puedes seguir estos pasos:

  1. Abre Arduino IDE
  2. Ve al menú Sketch
  3. Luego a Incluir Biblioteca
  4. Gestionar bibliotecas
  5. En el buscador puedes buscar Adafruit ADS1X15
  6. Pulsa sobre Instalar

Ahora ya está listo para comenzar, puedes acceder al código de la biblioteca instalada o los ejemplos disponibles en:

  1. Abre Arduino IDE
  2. Ve a Archivo
  3. Ejemplos
  4. Y en la lista busca los de esta biblioteca…

Entre los ejemplos verás tanto para el modo comparador, modo diferencial y modo single end. Puedes ver los ejemplos para comenzar a usarlos y modificarlos según tus necesidades o escribir códigos más complejos. Para más información, te aconsejo nuestro curso de introducción gratis en PDF.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.