Little Bird
M5StickC ADC HAT ADS1100
Description ADC_HAT is another type of C-HAT specifically design for M5StickC controller. Same as ADC unit, this is an ADC converter component for stickc. Pa...
Description
ADC_HAT is another type of C-HAT specifically design for M5StickC controller. Same as ADC unit, this is an ADC converter component for stickc. Packed with an ADC converter chip ADS1100, which is a fully differential, 16-bit, self-calibrating, delta-sigma A/D converter. Extremely easy to design with and configure, the ADS1100 allows you to obtain precise measurements with a minimum of effort.
The ADS1100 consists of a delta-sigma A/D converter core with adjustable gain, a clock generator, and an I2C interface.
ADS1100 itself is able to accept a differential input from -5 ~ +5 V, but we have limited the input to 0~12V by adding on the peripheral circuit design of this IC.
- M5StickC Compatible
- Input: 0-12V
- Software Development Platform: Arduino, UIFlow(Blockly, Python)
- ADS1100
- 16-bits Resolution
- CONTINUOUS SELF-CALIBRATION
- SINGLE-CYCLE CONVERSION
- PROGRAMMABLE GAIN AMPLIFIER GAIN = 1, 2, 4, OR 8
- LOW NOISE: 4μVp-p
- PROGRAMMABLE DATA RATE: 8SPS to 128SPS
- INTERNAL SYSTEM CLOCK
- I2C INTERFACE: address 0x48
- 1x ADC HAT
- 1x 2 Pin 3.96 Pitch Terminal
- Analog Signal Capture
Learn
Links
- Datasheet - ADS1100
Code
1. Arduino IDE
To get complete code, please click here.
#include <M5StickC.h> #include <Wire.h> #include "ADS1100.h" ADS1100 ads; #define REF_VOL 3.3 #define ADC_BASE REF_VOL/32768 void setup(void) { M5.begin(true,true,false); // The address can be changed making the option of connecting multiple devices ads.getAddr_ADS1100(ADS1100_DEFAULT_ADDRESS); // 0x48, 1001 000 (ADDR = GND) // The ADC gain (PGA), Device operating mode, Data rate // can be changed via the following functions ads.setGain(GAIN_ONE); // 1x gain(default) ads.setMode(MODE_CONTIN); // Continuous conversion mode (default) ads.setRate(RATE_8); // 8SPS (default) ads.setOSMode(OSMODE_SINGLE); // Set to start a single-conversion ads.begin(); } void loop() { byte error; int8_t address; address = ads.ads_i2cAddress; // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); result = ads.Measure_Differential(); } Pin Map
M5StickC GPIO0 GPIO26 5V GND HAT ADC SDA SCL 5V GNDVideo
Demo
Jargon buster
Plain-language definitions for the technical terms used above.
- ADC
- An analogue-to-digital converter reads a changing voltage and turns it into a number the microcontroller can use. It matters when connecting analogue sensors such as light, sound, or variable-resistor sensors.
- Differential input
- A measurement method where the board reads the voltage difference between two input wires instead of measuring one wire compared with ground. This is useful for small sensor signals and noise reduction, but both input voltages still need to stay within the board’s allowed range.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- IDE
- Short for Integrated Development Environment, a program used to write, run and manage code. It matters because some learners prefer a traditional coding workspace instead of a guided notebook-style lesson.
- Programmable gain amplifier
- A built-in amplifier whose gain can be changed in software to make small input signals easier to measure. This matters because choosing the right gain can improve detail for small sensors, but too much gain can make the input range too small.
Find this product in
Related Tutorials
Free guides on learn.littlebird.com.au