¿Cómo utilizar ADS1115?

¿Quieres aprender a sacar el máximo provecho de tu ADS1115? En este artículo te enseñaremos todo lo que necesitas saber para utilizar este convertidor analógico a digital de manera efectiva y sacarle el máximo provecho a todas sus funcionalidades. ¡No te lo pierdas!

Liberar el potencial del ADS1115 es un esfuerzo apasionante que requiere una consideración cuidadosa y una comprensión integral del dispositivo. Con esta guía, aprenderá a utilizar el ADS1115 de forma precisa y eficaz para aprovechar al máximo este increíble convertidor analógico a digital de un solo chip. Desde el diseño de su circuito hasta la configuración del software, esta guía lo tiene todo: ¡prepárese para desbloquear un nuevo ámbito de posibilidades con el ADS1115!

¿Qué es el ADC ADS1115 de 16 bits?

El ADS1115 es un convertidor analógico a digital (ADC) de 16 bits que le permite medir voltajes analógicos con mayor resolución que la que puede proporcionar el ADC de 10 bits de Arduino. El ADS1115 tiene un amplificador de ganancia programable (PGA) y un multiplexor de entrada (MUX) para seleccionar entre conversiones diferenciales o de un solo extremo, así como cuatro modos de conversión; un disparo, continuo, disparado y apagado. También incluye referencias de alta precisión para los terminales VDD y GND para garantizar mediciones precisas en diferentes rangos de temperatura.

¿Cómo utilizar ADS1115?

Con su amplia gama de características y bajo consumo de energía, es ideal para usar en aplicaciones de registro de datos industriales o cualquier proyecto que requiera mediciones de voltaje precisas. El ADS1115 se puede conectar fácilmente con un Arduino, Raspberry Pi u otro microcontrolador mediante el protocolo I2C para leer temperatura, presión y una variedad de otros sensores.

El ADS1115 es particularmente útil cuando se necesitan lecturas de voltaje precisas, como en sistemas de monitoreo de baterías, sistemas de seguimiento del rendimiento de paneles solares, instrumentos médicos y muchos más. Con su bajo consumo de energía y alta precisión, es perfecto para aplicaciones de registro de datos a largo plazo que requieren mediciones precisas a lo largo del tiempo.

En general, el ADC de 16 bits ADS1115 es una herramienta poderosa para cualquier proyecto que requiera conversiones analógicas a digitales de precisión con mayor resolución que la disponible en los ADC tradicionales de 10 bits. Ofrece una amplia gama de funciones, bajo consumo de energía y alta precisión. Al utilizar el protocolo I2C, también es fácil conectarse con una variedad de microcontroladores como Arduino y Raspberry Pi. El ADS1115 es una opción ideal para cualquier proyecto que requiera mediciones de voltaje precisas [1].

¿Cuáles son los beneficios de utilizar el ADC de 16 bits ADS1115?

El ADS1115 ofrece varios beneficios que lo hacen ideal para su uso en aplicaciones de registro de datos o proyectos que requieren conversiones analógicas a digitales precisas. En primer lugar, su amplio rango de entrada le permite medir voltajes de 0 V a 4,096 V con mayor precisión que la que pueden proporcionar los ADC estándar de 10 bits.

¿Cómo utilizar ADS1115?

En segundo lugar, su amplificador de ganancia programable (PGA) y multiplexor de entrada (MUX) le permiten seleccionar entre conversiones diferenciales o de un solo extremo, así como cuatro modos de conversión; un disparo, continuo, disparado y apagado.

En tercer lugar, sus referencias de alta precisión para los terminales VDD y GND garantizan mediciones precisas en diferentes rangos de temperatura.

Por último, con su bajo consumo de energía y su facilidad de interfaz a través del protocolo I2C, se puede utilizar en una variedad de aplicaciones sin afectar la duración de la batería ni requerir mucho esfuerzo de programación.

En general, el ADC de 16 bits ADS1115 es una buena opción para obtener lecturas de voltaje precisas en aplicaciones como sistemas de monitoreo de baterías, sistemas de seguimiento del rendimiento de paneles solares, instrumentos médicos y más. Se puede conectar fácilmente a varios microcontroladores mediante el protocolo I2C, lo que lo convierte en una opción ideal para proyectos que requieren mediciones de voltaje precisas.

¿Cuándo no debería utilizar ADS1115?

El ADS1115 es No es adecuado para aplicaciones donde los voltajes superan los 4,096 V o requieren tasas de muestreo muy altas. Tiene una velocidad de muestreo máxima de 860 muestras por segundo, lo que puede resultar demasiado lento para algunas aplicaciones. Además, su rango de bajo voltaje puede hacerlo inadecuado para medir señales de voltaje más alto, como fuentes de alimentación de CA y sistemas de control de motores. Además, su precisión puede disminuir con las variaciones de temperatura, lo que lo hace inadecuado para ciertas aplicaciones sensibles a la temperatura.

¿Cómo utilizar ADS1115?

En conclusión, el ADC de 16 bits ADS1115 es el más adecuado para lecturas de voltaje más bajo con mayor precisión que lo que está disponible en los ADC tradicionales de 10 bits. Con su amplio rango de entrada, amplificador de ganancia programable (PGA) y multiplexor de entrada (MUX), referencias de alta precisión y bajo consumo de energía, es una excelente opción para aplicaciones de registro de datos o proyectos que requieren mediciones de voltaje precisas. Sin embargo, no es adecuado para aplicaciones con lecturas de voltaje más altas o aquellas que requieren velocidades de muestreo muy altas.

Es importante considerar el tipo de aplicación que está creando y seleccionar el mejor ADC según las necesidades de su proyecto. El ADC de 16 bits ADS1115 proporciona una precisión y resolución excelentes en rangos de voltaje más bajos, lo que lo convierte en una opción ideal cuando se requiere precisión. Cuando se usa correctamente, puede proporcionar mediciones precisas en diferentes temperaturas para garantizar un funcionamiento confiable en su aplicación.

Características del módulo ADC de 16 bits ADS1115

El ADS1115 es un módulo ADC de 16 bits diseñado para alta precisión y bajo consumo de energía, lo que lo hace perfecto para aplicaciones alimentadas por batería. El ADS1115 ofrece varias características que lo hacen ideal para una variedad de aplicaciones:

  • Operación de bajo voltaje – Al funcionar de 2,0 V a 5,5 V, el ADS1115 se puede utilizar en cualquier sistema con voltajes de hasta 3,3 V o 5 V sin circuitos adicionales.
  • Alta resolución y precisión – Con su resolución de 16 bits y ±2 LSB (bit menos significativo) INL (error de linealidad integral), el ADS1115 ofrece exactitud y precisión excepcionales al medir señales analógicas.
  • Programación fácil – La programación es sencilla gracias a dos tipos de protocolos de comunicación: I2C y SPI. Ambos son fáciles de usar y pueden implementarse rápidamente en la mayoría de los sistemas.
  • Bajo consumo de energía – El ADS1115 ofrece un consumo de energía extremadamente bajo, lo que le permite funcionar durante largos períodos con batería o incluso con energía solar.
  • Rango de entrada flexible – Su rango de entrada admite entradas diferenciales y de un solo extremo, lo que hace que el ADS1115 sea perfecto para una amplia variedad de aplicaciones como termopares, sensores de puente, detección de corriente y más.

¿Cómo utilizar ADS1115?

Estas características hacen del ADS1115 uno de los módulos ADC más populares del mercado actual. Es ideal para una variedad de proyectos que requieren mediciones precisas con bajo consumo de energía. Ya sea que necesite una detección de temperatura básica o un monitoreo de corriente complejo, el ADS1115 es su solución ideal.

Distribución de pines del módulo ADC de 16 bits ADS1115

El ADS1115 es un módulo que se puede utilizar para medir el nivel de voltaje presente en una señal eléctrica. Es un convertidor analógico a digital (ADC) y utiliza el protocolo de comunicación I2C para comunicarse con otros dispositivos. El pinout de este dispositivo es el siguiente:

  • VDD: Este pin se conecta al voltaje de suministro positivo, generalmente en el rango de 2 V a 5 V.
  • Tierra: Conecte este terminal a tierra o 0V para desacoplar la fuente de alimentación y reducir el ruido.
  • SCL y SDA: Estos dos pines se utilizan para establecer un bus de datos serie I2C entre múltiples dispositivos. La dirección de dispositivos individuales se puede configurar conectando estos pines con una resistencia pull-up.
  • A0, A1 y A2: Estos son los pines de dirección y sus valores determinan la dirección esclava del dispositivo. Las combinaciones posibles son 0x48 a 0x4B dependiendo de qué pines se hayan conectado a tierra o VDD.
  • ALERTA/LISTO: Este pin es una salida baja activa que se puede utilizar para indicar cuando los datos están listos para la conversión o cuando se ha producido una condición de alarma.
  • DIRECCIÓN: Este pin le permite conectar uno o más dispositivos I2C adicionales para una funcionalidad ampliada, como configurar la ganancia o configurar múltiples ADC en modo paralelo.
  • CONVEST: Este es el punto final de alto voltaje de entrada analógica comúnmente conocido como punto de inicio de conversión.
  • ÚNICO/CONTINUO: Este pin se utiliza para seleccionar conversiones de un solo disparo o continuas.
  • PGA/VREF: Estos dos pines se utilizan para configurar el voltaje de referencia para la entrada analógica y la selección de ganancia conectando una resistencia pull-up.
  • VIN+ y VIN-: Estos dos pines se utilizan para conectar una fuente de voltaje externa que será medida por el ADC. Debe estar conectado entre 0V y 2V.

El módulo ADS1115 es una excelente opción para cualquier proyecto que requiera una lectura precisa de 16 bits de una señal analógica, ya que proporciona un rendimiento confiable con bajo consumo de energía en un paquete pequeño. Con su sencilla interfaz I2C y pines de dirección integrados, es una opción ideal para cualquier aplicación que requiera mediciones analógicas precisas.

¿Cómo utilizar ADS1115?

Interfaz del módulo ADC de 16 bits ADS1115 con Arduino

Los materiales requeridos

Para conectar el módulo ADC de 16 bits ADS1115 con Arduino, debe tener los siguientes materiales para comenzar:

  • Una placa Arduino como la UNO o Mega2560
  • Una placa de pruebas y cables de puente.
  • El módulo ADC de 16 bits ADS1115
  • Un potenciómetro (5k)

Conexión del módulo ADC de 16 bits ADS1115 a Arduino

Debes comenzar conectando el módulo ADS1115 a tu placa Arduino. En primer lugar, identifique los cuatro pines del módulo y conéctelos como se muestra a continuación:

  • Conecte SCL en el módulo a A5 en su placa Arduino
  • Conecte SDA en el módulo a A4 en su placa Arduino
  • Conecte GND en el módulo a GND en su placa Arduino
  • Conecte VDD en el módulo al pin de 5 V en su placa Arduino

Una vez que haya conectado los cuatro pines, puede conectar el potenciómetro entre los pines 3 y 4 del ADS1115. Ahora, conecte su placa Arduino a una fuente de alimentación, como un puerto USB o una batería, ¡y estará listo para comenzar a programar!

¿Cómo utilizar ADS1115?

Programación con Arduino IDE

Ahora que ha conectado su circuito, centrémonos en escribir algo de código. Para este proyecto, utilizará el IDE de Arduino que se puede descargar de forma gratuita desde el sitio web oficial de Arduino. Abra un nuevo boceto y comience incluyendo la biblioteca Wire en la parte superior:
“`
#incluir
“`
Ahora, cree dos constantes para almacenar la dirección de su módulo ADS1115 y la cantidad de bytes que desea leer en cada transacción:
“`
const int dirección_anuncios = 0x48;
const int núm_bytes = 2;
“`
A continuación, configura la conexión serie con tu placa Arduino:
“`
configuración nula() {
Serie.begin(9600); //Configurar la conexión serie
Cable.begin(); // Iniciar comunicación I2C
}
“`
En la función loop(), comience declarando una variable para almacenar la lectura analógica de su placa Arduino:
“`
int lectura_analógica; // Variable para almacenar datos analógicos
“`
Ahora, escriba un comando Wire requestFrom con parámetros como la dirección de su dispositivo y la cantidad de bytes para leer:
“`
Wire.requestFrom(ads_address, num_bytes); // Solicitar 2 bytes de ADS1115
“`
Una vez que haya recibido dos bytes de datos del módulo, utilice operaciones de desplazamiento de bits y enmascaramiento para obtener un resultado preciso. Luego imprima este resultado y espere un segundo antes de repetir el ciclo():
“`
if(Wire.available() == 2) { // Comprobar si recibimos 2 bytes
lectura_analógica = (Wire.read() << 8) | Cable.read(); // Operaciones de enmascaramiento y desplazamiento de bits
Serial.println(lectura_analógica); //Imprime el resultado
retraso(1000); // Retraso de un segundo
}
“`
Una vez que haya terminado de escribir el código, cárguelo en su placa Arduino y abra el monitor serie para observar el resultado de su programa. Con esto, ahora debería poder conectar exitosamente el módulo ADC de 16 bits ADS1115 con Arduino. [2]!

¿Cómo utilizar ADS1115?

Preguntas más frecuentes

¿Cómo funciona ADS1115?

El ADS1115 es un convertidor analógico a digital (ADC). Toma una señal de voltaje de un sensor y la convierte a formato digital para que pueda ser leída por un microcontrolador u otro dispositivo. El ADS1115 tiene una resolución de 16 bits, lo que significa que puede convertir hasta 65536 valores diferentes de 0V a 3,3V.

¿Qué tipo de sensores puedo usar con el ADS1115?

El ADC es compatible con casi cualquier tipo de sensor que tenga una salida en el rango de 0-3,3 V, incluidos sensores de presión, temperatura, humedad, ópticos y de movimiento. Es posible que necesite circuitos adicionales, como amplificadores, si utiliza señales de amplitud muy baja.

¿Cuál es la frecuencia de muestreo máxima del ADS1115?

El ADS1115 tiene una frecuencia de muestreo máxima de 860 Hz, lo que significa que puede leer hasta 860 muestras por segundo. La frecuencia de muestreo real dependerá de la configuración elegida y será de 8 bits (128 muestras por segundo) o 12 bits (816 muestras por segundo).

¿Puedo usar el ADS1115 con Arduino?

Sí, puedes utilizar el ADS1115 con una placa Arduino. Puede utilizar el protocolo I2C o SPI para la comunicación entre los dos dispositivos. La biblioteca para este chip está ampliamente disponible y es fácil de instalar y usar.

¿Existen consideraciones de seguridad al utilizar ADS1115?

Sí, es importante asegurarse de que el voltaje de alimentación suministrado al ADS1115 no exceda su rango operativo. También vale la pena señalar que la electricidad estática puede dañar el chip y provocar lecturas irregulares o fallas. Se debe utilizar un sistema de conexión a tierra adecuado para todos los componentes electrónicos para evitar tales problemas. Además, al conectar sensores a los pines de entrada del ADS1115, asegúrese de que sus voltajes estén dentro del rango permitido de 0-3,3 V y cumpla con todas las normas de seguridad. Al soldar o manipular componentes eléctricos, asegúrese de usar el equipo de protección ESD adecuado.

¿Cómo utilizar ADS1115 con Raspberry Pi?

El ADS1115 se puede interconectar con una Raspberry Pi utilizando el protocolo I2C. La Raspberry Pi tiene varios canales de comunicación I2C, por lo que deberá determinar a cuál está conectado su ADS1115 antes de escribir cualquier código. Una vez establecida la conexión, puede utilizar varias bibliotecas y paquetes como SMBus o Adafruit_ADS1x15 en Python para interactuar con el ADC y leer datos del mismo. También es posible utilizar C/C++ para este propósito. Consulte la documentación oficial de su placa Raspberry Pi para obtener más detalles sobre cómo configurar una conexión I2C entre esta y el ADS1115.

¿Puedo utilizar varios chips ADS1115 juntos?

Sí, puedes utilizar varios chips ADS1115 juntos en un sistema. Deberá configurar cada chip de manera diferente y conectarlos al mismo bus I2C u otro canal de comunicación. También es importante asegurarse de que todos los chips estén alimentados con el mismo voltaje para que funcionen correctamente. Además, asegúrese de que su microcontrolador tenga suficiente memoria y potencia de procesamiento para manejar múltiples lecturas de ADC a la vez. Consulte la hoja de datos de su microcontrolador en particular para obtener más detalles sobre cuántos ADC puede admitir simultáneamente.

¿Cuáles son algunas aplicaciones comunes de ADS1115?

El ADS1115 se usa comúnmente para monitorear y controlar varios sensores como temperatura, presión, humedad, ópticos, de movimiento y más en sistemas integrados. También se utiliza en aplicaciones de robótica, tecnología portátil, domótica y control industrial. Además, se puede utilizar para el registro y registro de datos, así como para el procesamiento de señales digitales. La resolución de 16 bits del ADS1115 lo hace ideal para mediciones de precisión y lecturas precisas.

El ADS1115 es un convertidor increíblemente versátil que le permite interactuar con casi cualquier tipo de sensor y al mismo tiempo proporciona mediciones confiables y de alta precisión. Con su amplia gama de características y bajo consumo de energía, el ADC es uno de los componentes más populares utilizados en una variedad de proyectos hoy en día.

¿Cuál es el consumo de energía del ADS1115?

El ADS1115 consume muy poca energía, lo que lo hace adecuado para aplicaciones que funcionan con baterías. Tiene una corriente de suministro de sólo 150 uA y, cuando funciona en modo de disparo único, su corriente de reposo cae a menos de 10 uA. Además, se puede apagar completamente para conservar energía cuando no esté en uso. Esto lo convierte en una opción ideal para sistemas de bajo consumo donde es importante una larga duración de la batería.

¿Cómo utilizar ADS1115 con ESP32?

El ADS1115 se puede interconectar con el ESP32 utilizando protocolos I2C o SPI. El ESP32 tiene tres canales I2C de hardware, por lo que deberá determinar a cuál está conectado su ADS1115 antes de escribir cualquier código. Una vez establecida la conexión, puede usar una biblioteca como Adafruit_ADS1x15 en Arduino IDE o un paquete como SMBus en Python para interactuar con el ADC y leer datos del mismo. También es posible escribir su código para este propósito en C/C++. Consulte la documentación oficial de su placa ESP32 para obtener más detalles sobre cómo configurar una conexión I2C entre esta y el ADS1115.

¿Puedo utilizar ADS1115 con un microcontrolador PIC?

Sí, puede utilizar el ADS1115 con la mayoría de los microcontroladores PIC. Deberá configurar el ADC correctamente y conectarlo a un bus I2C o SPI en su microcontrolador. Hay bibliotecas disponibles para este chip que facilitan la interfaz con él. Además, si está escribiendo su código en C/C++, puede seguir la hoja de datos del ADS1115 para obtener más información sobre cómo configurar un enlace de comunicación entre este y su microcontrolador PIC. Es importante tener en cuenta que no todos los microcontroladores PIC tienen soporte de hardware para canales de comunicación I2C, así que verifique la documentación de su dispositivo en particular antes de intentar usar el ADS1115 con él.

Finalmente, asegúrese de que su microcontrolador tenga suficiente memoria y potencia de procesamiento para manejar múltiples lecturas de ADC a la vez cuando use múltiples chips. Consulte la hoja de datos de su microcontrolador en particular para obtener más detalles sobre cuántos ADC puede admitir simultáneamente.

En general, el ADS1115 es un convertidor increíblemente versátil que le permite interactuar con casi cualquier tipo de sensor y al mismo tiempo proporciona mediciones confiables y de alta precisión. Con su amplia gama de características y bajo consumo de energía, es uno de los componentes más populares utilizados en una variedad de proyectos hoy en día.

¿Cómo conectar ADS1115 a Arduino Uno?

El ADS1115 se puede interconectar con Arduino Uno mediante protocolos I2C o SPI. La interfaz I2C requiere sólo dos pines (SCL y SDA), mientras que la interfaz SPI requiere cuatro pines (SDI, SDO, SCK y SS). Una vez que hayas determinado qué protocolo de comunicación utilizarás, deberás conectar los pines correspondientes de tu placa Arduino a los del ADS1115.

Una vez establecida la conexión, puede utilizar varias bibliotecas como Adafruit_ADS1x15 en Arduino IDE para interactuar con el ADC y leer datos del mismo. También es posible escribir su código para este propósito en C/C++. Consulte la documentación oficial de su placa Arduino Uno para obtener más detalles sobre cómo configurar una conexión I2C o SPI entre esta y el ADS1115.

En general, el ADS1115 es un potente convertidor que le permite interactuar con varios sensores y al mismo tiempo proporciona mediciones confiables y de alta precisión. Con su amplia gama de características y bajo consumo de energía, es uno de los componentes más populares utilizados en una variedad de proyectos hoy en día.

¿Cómo conectar un sensor GPS a Arduino?

Para conectar un sensor GPS a una placa Arduino, necesitará utilizar el protocolo de interfaz periférica serie (SPI). El módulo GPS debe tener cuatro pines y estos deben estar conectados a los pines SPI de la placa Arduino.
Una vez establecida la conexión, puede utilizar varias bibliotecas como TinyGPS o u-blox UBX en Arduino IDE para interactuar con el módulo GPS y leer datos del mismo. También es posible escribir su código para este propósito en C/C++. Consulte la documentación oficial de su placa Arduino Uno y su módulo GPS para obtener más detalles sobre cómo configurar una conexión SPI entre ellos.

En general, un sensor GPS proporciona datos de ubicación precisos que se pueden utilizar en una variedad de aplicaciones, incluidos drones autónomos, sistemas de navegación y más. ¡Es un componente increíblemente útil para cualquier proyecto que requiera datos de ubicación precisos! Finalmente, asegúrese de que su placa Arduino tenga suficiente memoria y potencia de procesamiento para manejar las múltiples lecturas del sensor GPS cuando se usa junto con otros componentes.

¿Cómo conectar un sensor de CO2 a Arduino?

Para conectar un sensor de CO2 a una placa Arduino necesitarás utilizar los protocolos de comunicación I2C o SPI. El módulo de CO2 debe tener cuatro pines, y estos deben estar conectados a los pines I2C o SPI correspondientes en la placa Arduino.

Una vez establecida la conexión, puede utilizar varias bibliotecas, como Adafruit_CCS811 en Arduino IDE, para interactuar con el sensor de CO2 y leer datos del mismo. También es posible escribir su código para este propósito en C/C++. Consulte la documentación oficial de su placa Arduino Uno y su sensor de CO2 para obtener más detalles sobre cómo configurar una conexión I2C o SPI entre ellos.

Cuando se utilizan varios chips ADC, ¿cuánta memoria y potencia de procesamiento se requieren?

Cuando utilice varios chips ADC, es importante asegurarse de que su microcontrolador tenga suficiente memoria y potencia de procesamiento para manejar las múltiples lecturas de cada chip. En términos generales, cada ADC requiere su propio búfer de memoria dedicado para almacenar datos. Además, si planea tomar lecturas simultáneas de múltiples ADC, entonces su microcontrolador debe tener suficientes ciclos de reloj disponibles para manejar las tareas asociadas con cada uno. También es importante tener en cuenta que no todos los microcontroladores son compatibles con canales de comunicación I2C o SPI, así que consulte la documentación de su dispositivo en particular antes de intentar utilizar varios ADC con él. Consulte la hoja de datos de su microcontrolador particular para obtener más información sobre cuántos ADC puede admitir simultáneamente.

Vídeo útil: Convertidor analógico a digital de 16 bits ADS1115: tutorial detallado con Arduino, ESP8266 y ESP32

Párrafo de conclusión

El convertidor analógico a digital ADS1115 se puede utilizar para medir señales analógicas y convertirlas a formato digital. Esto lo convierte en una poderosa herramienta para la adquisición de datos y el acondicionamiento de señales. Su alta precisión, bajo consumo de energía y amplio rango de voltaje de entrada lo hacen adecuado para una variedad de aplicaciones. Con la ayuda de su referencia integrada, entradas diferenciales y amplificador de ganancia programable, se pueden tomar medidas precisas fácilmente. También es compatible con varios microcontroladores, incluidos Arduino y Raspberry Pi, lo que facilita la integración con cualquier proyecto o sistema. El ADC ADS1115 ofrece una gran flexibilidad en la captura de señales analógicas a bajo costo, lo que lo convierte en una opción ideal tanto para aficionados como para profesionales que buscan procesar señales analógicas en sus proyectos.

Referencias

  1. https://how2electronics.com/how-to-use-ads1115-16-bit-adc-module-with-arduino/
  2. https://www.circuits-diy.com/interfacing-ads1115-16-bit-adc-with-arduino/

Usando el módulo ADS 1115 con ARDUINO

En este video muestro como usar el modulo ADS1115 que contiene 4 canales ADC de 16 bits con un arduino NANO. Si deseas ...

Deja un comentario

¡Contenido premium bloqueado!

Desbloquear Contenido
close-link