Index
Introducción del Arduino ADC
En este post, hablamos del módulo convertidor analógico-digital (ADC) de 16 bitsADS1115para el controlador de automatización industrial Arduino. Encontrarás alguna información sobre el módulo y la forma de conectar con la automatización industrial Arduino y leer los valores analógicos.
Requisitos
ADS1115
El ADS1115 es un conversor analógico a digital de precisión con 16 bits de resolución que se ofrece en un paquete WFN_10 ultra pequeño y sin cables o en un paquete MSOP-10. Está diseñado con precisión, potencia y facilidad de implementación en mente. Los datos se transfieren a través de una interfaz en serie compatible con I2C; Se pueden seleccionar cuatro direcciones slave I2C.
Características técnicas de ADS1115
Parámetro
Tensión de alimentación |
Temperatura de almacenamiento |
Temperatura especificada |
Tensión de entrada analógica |
Resolución |
Velocidad de datos (DR) |
Variación de la tasa de datos |
Corriente de alimentación |
Disipación de energía |
Valor
2.0 to 5.5 V |
-60 to +150 ºC |
-40 to +125 ºC |
GND to VCC V |
16 Bits |
8, 16, 32, 64, 128, 250, 475, 860 SPS |
-10 to 10 % |
150 - 200 uA |
VDD = 5.0, 3.3, 2.0 V |
Condit¡ciones
- |
- |
- |
- |
- |
- |
Todas las tasas de datos |
Corriente de funcionamiento a 25 ºC |
0.9, 0.5, 0.3 mW |
Conexiones
Según la Configuración de Hardware (página 11) delFicha técnica de ADS115. Las conexiones son las siguientes:
Arduino Mega
Controlador PLC M-Duino Arduino
Librería
Para poder leer los valores de los pines analógicos de una manera más cómoda y sencilla, recomendamos utilizar la Librería Adafruit ADS1115. Aquí tienes el enlace: Adafruit_ADS1115.
Una vez que hayas descargado el archivo .zip, en Arduino IDE ves a Sketch -> Incluir librería -> Agregar librería .ZIP ... Encontrarás el archivo .zip Adafruit_ADS1X15-master en la carpeta Descargas. Ahora podemos incluir el encabezado Adafruit_ADS1015.h en nuestros programas para poder usar las funciones que tenemos disponibles.
Código
El mismo código para el controlador lógico programable Arduino Mega o M-Duino Arduino.
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads;
const float multiplier = 0.0001875F;
void setup() {
Serial.begin(9600);
// There are different GAINs
// ads.setGain(GAIN_TWOTHIRDS); +/- 6.144V 1 bit = 0.1875mV (default)
// ads.setGain(GAIN_ONE); +/- 4.096V 1 bit = 0.125mV
// ads.setGain(GAIN_TWO); +/- 2.048V 1 bit = 0.0625mV
// ads.setGain(GAIN_FOUR); +/- 1.024V 1 bit = 0.03125mV
// ads.setGain(GAIN_EIGHT); +/- 0.512V 1 bit = 0.015625mV
// ads.setGain(GAIN_SIXTEEN); +/- 0.256V 1 bit = 0.0078125mV
ads.setGain(GAIN_TWOTHIRDS);
ads.begin();
}
void loop() {
int16_t adc0;
adc0 = ads.readADC_SingleEnded(0);
Serial.print("Analog 0: ");
// Read value from 0 to 32767 from 16 bits register, so it's necessary to convert to real value
// by multiplying by 0.0001875 (GAIN)
Serial.println(adc0 * multiplier);
delay(1000);
}
// There are different GAINs // ads.setGain(GAIN_TWOTHIRDS); +/- 6.144V 1 bit = 0.1875mV (default) // ads.setGain(GAIN_ONE); +/- 4.096V 1 bit = 0.125mV // ads.setGain(GAIN_TWO); +/- 2.048V 1 bit = 0.0625mV // ads.setGain(GAIN_FOUR); +/- 1.024V 1 bit = 0.03125mV // ads.setGain(GAIN_EIGHT); +/- 0.512V 1 bit = 0.015625mV // ads.setGain(GAIN_SIXTEEN); +/- 0.256V 1 bit = 0.0078125mV
ads.setGain(GAIN_TWOTHIRDS); ads.begin(); } void loop() { int16_t adc0; adc0 = ads.readADC_SingleEnded(0); Serial.print("Analog 0: ");
// Read value from 0 to 32767 from 16 bits register, so it's necessary to convert to real value
// by multiplying by 0.0001875 (GAIN)
Serial.println(adc0 * multiplier); delay(1000); }
Para probar el programa, conectamos la fuente de alimentación a A0 a 2,5 V.Ese es el resultado en el monitor en serie:
- Con multiplicador = 1. Valor decimal del registro de 16 bits.
- Con multiplicador = 0.0001875F. Valor decimal del registro de 16 bits multiplicado por el multiplicador apropiado para obtener la representación del valor real en unidades V.
También es posible utilizar el módulo ADS1115 para Raspberry Pi.
Placa Arduino ADC (Analogical - Digital Converter) para Arduino industrial