Skip to content

Commit 3f00ebe

Browse files
authored
Merge pull request #3219 from adafruit/ads122c04
add simple arduino demo for ADS122C04
2 parents 6d5adce + 1d66dc9 commit 3f00ebe

File tree

3 files changed

+98
-1
lines changed

3 files changed

+98
-1
lines changed

Arduino_ADS122C04_simpletest/.uno.test.only

Whitespace-only changes.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
// SPDX-FileCopyrightText: 2026 Liz Clark for Adafruit Industries
2+
//
3+
// SPDX-License-Identifier: MIT
4+
5+
/*
6+
* Simple ADS122C04 example - reads all 4 single-ended analog inputs
7+
* and prints voltages to the Serial Monitor.
8+
*
9+
* If any inputs are floating, will read noise
10+
*/
11+
12+
#include <Adafruit_ADS122C04.h>
13+
14+
Adafruit_ADS122C04 adc;
15+
16+
#ifdef ARDUINO_AVR_METRO
17+
float voltage_ref = 5.0; // 5V from metro
18+
#else
19+
float voltage_ref = 3.3; // else assume 3.3V logic
20+
#endif
21+
22+
// The four single-ended MUX settings (AINx vs AVSS)
23+
const ads122c04_mux_t channels[] = {
24+
ADS122C04_MUX_AIN0,
25+
ADS122C04_MUX_AIN1,
26+
ADS122C04_MUX_AIN2,
27+
ADS122C04_MUX_AIN3
28+
};
29+
30+
void setup() {
31+
Serial.begin(115200);
32+
while (!Serial) delay(10);
33+
34+
Serial.println("ADS122C04 4-Channel Single-Ended Test");
35+
36+
if (!adc.begin()) {
37+
Serial.println("Failed to find ADS122C04 - check wiring!");
38+
while (1) delay(10);
39+
}
40+
Serial.println("ADS122C04 found!");
41+
42+
// Use analog supply (AVDD-AVSS) as reference for full 0-5V range
43+
adc.setVoltageReference(ADS122C04_VREF_SUPPLY);
44+
Serial.print("Setting reference voltage to: ");
45+
Serial.print(voltage_ref);
46+
Serial.println("V");
47+
adc.setReferenceVoltage(voltage_ref);
48+
49+
// Gain 1, PGA bypassed
50+
adc.setGain(ADS122C04_GAIN_1);
51+
adc.enablePGA(false);
52+
53+
// Single-shot mode at 20 SPS
54+
adc.setContinuousMode(false);
55+
adc.setDataRate(ADS122C04_RATE_20SPS);
56+
57+
Serial.println("Config: AVDD ref, gain=1, single-shot 20 SPS");
58+
Serial.println();
59+
}
60+
61+
void loop() {
62+
for (uint8_t ch = 0; ch < 4; ch++) {
63+
// Select the channel
64+
adc.setMux(channels[ch]);
65+
66+
// Trigger a single conversion
67+
adc.startSync();
68+
69+
// Wait for data ready (at 20 SPS, conversion takes ~50ms)
70+
while (!adc.isDataReady()) {
71+
delay(1);
72+
}
73+
74+
// Read raw ADC value, then convert to voltage
75+
int32_t raw = adc.readData();
76+
float voltage = adc.convertToVoltage(raw);
77+
78+
Serial.print("A");
79+
Serial.print(ch);
80+
Serial.print(": ");
81+
82+
if (isnan(voltage)) {
83+
Serial.print("READ ERROR");
84+
} else {
85+
Serial.print("raw=");
86+
Serial.print(raw);
87+
Serial.print(" -> ");
88+
Serial.print(voltage, 6);
89+
Serial.print(" V");
90+
}
91+
92+
Serial.print("\t");
93+
}
94+
95+
Serial.println();
96+
delay(500);
97+
}

library.deps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
depends=Adafruit SSD1305, Adafruit ILI9341, Adafruit BusIO, SD, Adafruit NeoPixel, Adafruit VS1053 Library, Adafruit BluefruitLE nRF51, Adafruit seesaw Library, Ethernet, Stepper, Adafruit IO Arduino, FastLED@3.10.1, Adafruit LiquidCrystal, Adafruit SoftServo, TinyWireM, Adafruit AM radio library, WaveHC, Adafruit LED Backpack Library, MAX31850 OneWire, Adafruit VC0706 Serial Camera Library, RTClib, Adafruit SleepyDog Library, Adafruit Thermal Printer Library, Adafruit Zero I2S Library, Adafruit EPD, Adafruit SSD1351 library, Adafruit FONA Library, Adafruit Motor Shield V2 Library, Adafruit NeoMatrix, Adafruit Soundboard library, Adafruit Circuit Playground, ArduinoJson, Adafruit TCS34725, Adafruit Pixie, Adafruit GPS Library, TinyGPS, WiFi101, Adafruit DotStar, Adafruit Si7021 Library, Adafruit WS2801 Library, Mouse, Keyboard, Time, IRremote, Adafruit LSM9DS0 Library, Adafruit Arcada Library, MIDIUSB, PubSubClient, Adafruit LIS2MDL, Adafruit NeoPXL8, Adafruit MCP23017 Arduino Library, Adafruit MLX90640, LiquidCrystal, Adafruit NeoTrellis M4 Library, RGB matrix Panel, Adafruit MLX90614 Library, Adafruit RGB LCD Shield Library, MAX6675 library, Adafruit MP3, Adafruit Keypad, Adafruit Arcada GifDecoder, Keypad, Neosegment, Encoder, Adafruit TiCoServo, Adafruit Trellis Library, FauxmoESP, Adafruit LSM303 Accel, Adafruit LSM303DLH Mag, Adafruit LSM303DLHC, CapacitiveSensor, Adafruit Zero PDM Library, Adafruit DMA neopixel library, elapsedMillis, DST RTC, Adafruit SHARP Memory Display, Adafruit SPIFlash, BSEC Software Library, WiiChuck, Adafruit DPS310, Adafruit AHTX0, RotaryEncoder, Adafruit MCP9808 Library, LSM303, Adafruit Protomatter, Adafruit IS31FL3741 Library, Sensirion I2C SCD4x, Adafruit TestBed, Bounce2, Adafruit AHRS, Adafruit DRV2605 Library, STM32duino VL53L4CD, PicoDVI - Adafruit Fork, Adafruit MMA8451 Library, Adafruit TSC2007, GFX Library for Arduino, Adafruit PyCamera Library, Adafruit ADG72x, Adafruit BNO055, Adafruit SHT4x Library, Adafruit VCNL4200 Library, Adafruit GC9A01A, Adafruit DVI HSTX, Adafruit TLV320 I2S, Adafruit PCM51xx, ENS160 - Adafruit Fork
1+
depends=Adafruit SSD1305, Adafruit ILI9341, Adafruit BusIO, SD, Adafruit NeoPixel, Adafruit VS1053 Library, Adafruit BluefruitLE nRF51, Adafruit seesaw Library, Ethernet, Stepper, Adafruit IO Arduino, FastLED@3.10.1, Adafruit LiquidCrystal, Adafruit SoftServo, TinyWireM, Adafruit AM radio library, WaveHC, Adafruit LED Backpack Library, MAX31850 OneWire, Adafruit VC0706 Serial Camera Library, RTClib, Adafruit SleepyDog Library, Adafruit Thermal Printer Library, Adafruit Zero I2S Library, Adafruit EPD, Adafruit SSD1351 library, Adafruit FONA Library, Adafruit Motor Shield V2 Library, Adafruit NeoMatrix, Adafruit Soundboard library, Adafruit Circuit Playground, ArduinoJson, Adafruit TCS34725, Adafruit Pixie, Adafruit GPS Library, TinyGPS, WiFi101, Adafruit DotStar, Adafruit Si7021 Library, Adafruit WS2801 Library, Mouse, Keyboard, Time, IRremote, Adafruit LSM9DS0 Library, Adafruit Arcada Library, MIDIUSB, PubSubClient, Adafruit LIS2MDL, Adafruit NeoPXL8, Adafruit MCP23017 Arduino Library, Adafruit MLX90640, LiquidCrystal, Adafruit NeoTrellis M4 Library, RGB matrix Panel, Adafruit MLX90614 Library, Adafruit RGB LCD Shield Library, MAX6675 library, Adafruit MP3, Adafruit Keypad, Adafruit Arcada GifDecoder, Keypad, Neosegment, Encoder, Adafruit TiCoServo, Adafruit Trellis Library, FauxmoESP, Adafruit LSM303 Accel, Adafruit LSM303DLH Mag, Adafruit LSM303DLHC, CapacitiveSensor, Adafruit Zero PDM Library, Adafruit DMA neopixel library, elapsedMillis, DST RTC, Adafruit SHARP Memory Display, Adafruit SPIFlash, BSEC Software Library, WiiChuck, Adafruit DPS310, Adafruit AHTX0, RotaryEncoder, Adafruit MCP9808 Library, LSM303, Adafruit Protomatter, Adafruit IS31FL3741 Library, Sensirion I2C SCD4x, Adafruit TestBed, Bounce2, Adafruit AHRS, Adafruit DRV2605 Library, STM32duino VL53L4CD, PicoDVI - Adafruit Fork, Adafruit MMA8451 Library, Adafruit TSC2007, GFX Library for Arduino, Adafruit PyCamera Library, Adafruit ADG72x, Adafruit BNO055, Adafruit SHT4x Library, Adafruit VCNL4200 Library, Adafruit GC9A01A, Adafruit DVI HSTX, Adafruit TLV320 I2S, Adafruit PCM51xx, ENS160 - Adafruit Fork, Adafruit ADS122C04

0 commit comments

Comments
 (0)