El ADC interno de Arduino tiene solo 10 bits. Con el ADS1115 obtienes 16 bits de resolución por I2C: ideal para balanzas, sensores de presión, corriente y señales de baja amplitud.
El ADC interno del Arduino Uno tiene solo 10 bits de resolución (1024 niveles). Para aplicaciones que requieren mayor precisión — balanzas, sensores de presión, instrumentación — el ADS1115 agrega un ADC externo de 16 bits (65,536 niveles) con ganancia programable via I2C.
Ventajas sobre el ADC Interno de Arduino
| Característica | Arduino Uno ADC | ADS1115 |
| Resolución | 10 bits | 16 bits |
| Voltaje referencia | 5V (depende VCC) | Interna estable 2.048V |
| Entradas | 6 (single-ended) | 4 single o 2 diferenciales |
| Ganancia (PGA) | Fija | x2/3, x1, x2, x4, x8, x16 |
| Protocolo | Directo | I2C (0x48-0x4B) |
Conexión I2C
| ADS1115 | Arduino |
| VDD | 3.3V o 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
| ADDR | GND (dir. 0x48) |
Código con Librería Adafruit ADS1X15
#include <Wire.h>
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads;
void setup() {
Serial.begin(9600);
ads.begin(); // Dirección 0x48 por defecto
// Ganancia ±4.096V (rango 0-5V con divisor)
ads.setGain(GAIN_ONE);
}
void loop() {
// Canal A0 vs GND
int16_t raw = ads.readADC_SingleEnded(0);
float voltaje = ads.computeVolts(raw);
Serial.print("Raw: "); Serial.print(raw);
Serial.print(" | Voltaje: "); Serial.print(voltaje, 4);
Serial.println(" V");
delay(500);
}
Aplicaciones de Alta Precisión
- Celda de carga + HX711: el HX711 ya tiene ADC de 24 bits específico para balanzas — pero el ADS1115 puede hacer lo mismo con menor presupuesto
- Sensor de corriente shunt: medir caídas de voltaje de microvolts en una resistencia shunt
- Sensor de pH y conductividad: señales de baja amplitud que el Arduino no puede leer bien
- Termocupla con amplificador: voltajes de ±30 mV requieren ganancia alta