Reference
ADS1115
16-bit 4-channel ADC.
- Connects over
- I²C
- Address
- 0x48 (or 0x49, 0x4A, 0x4B)
- Made by
- Texas Instruments
- Datasheet
- ti.com
Use it
hardware {
device ads1115: ADS1115
}
every 1s {
let value: int = ads1115.read_raw(1)
log("ads1115", "read_raw={value}")
}
On its own, the declaration puts the ADS1115 on the first I²C bus (SDA 21, SCL 22 on the ESP32) at 0x48. To choose the pins or the address, declare the bus and attach the device: device ads1115: ADS1115 on i2c0 at 0x49 with i2c i2c0(sda: 21, scl: 22).
Methods
-
ads1115.read_raw(channel: int) -> int
Raw ADC value
-
ads1115.voltage(channel: int) -> float
Voltage in V
Wiring
| Pin | Connect to |
|---|---|
VCC | 3.3V or 5V |
GND | Ground |
SDA | Pull-up to VCC (often on breakout board) |
SCL | Pull-up to VCC |
ADDR | Selects address 0x48 (GND) / 0x49 (VCC) / 0x4A (SDA) / 0x4B (SCL) |
ALERT | Optional threshold-comparator output |
Specifications
- Voltage
- 2.0V – 5.5V
- Current
- 150 μA active, 0.5 μA standby
- Channels
- 4 single-ended or 2 differential
- Resolution
- 16-bit (15-bit single-ended)
- Sample rate
- 8 to 860 SPS
- Interface speed
- I²C up to 3.4 MHz
Tips
- Programmable gain amplifier (±0.256V to ±6.144V) — set range to match your signal, larger range loses resolution.
- Datasheet caveat: max input voltage = VDD + 0.3V regardless of PGA setting.
- Use single-shot mode to save power; continuous mode samples non-stop.
Alternatives worth knowing:
- ADS1015: 12-bit version, cheaper, faster (3300 SPS) but coarser resolution.
- MCP3008: SPI 10-bit 8-channel — choose if you need more channels and don't care about resolution.