esp32-ads1115
esp32-ads1115 copied to clipboard
ADS1115 driver for ESP-IDF
By Blake Felt - [email protected]
ESP32 ADS1115
A component for TI ADS1115 on ESP-IDF. For an example, see https://github.com/Molorius/ESP32-Examples.
To add to a project, type:
git submodule add https://github.com/Molorius/esp32-ads1115.git components/ads1115
into the base directory of your project.
The datasheet can be found here.
This has not been tested with more than one ADS1115 connected. Any suggestions or fixes are gladly appreciated.
Table of Contents
- Enumerations
- ads11115_mux_t
- ads1115_fsr_t
- ads1115_sps_t
- ads1115_mode_t
- Functions
- ads1115_config
- ads1115_set_rdy_pin
- ads1115_set_mux
- ads1115_set_pga
- ads1115_set_mode
- ads1115_set_sps
- ads1115_set_max_ticks
- ads1115_get_raw
- ads1115_get_voltage
Enumerations
enum ads1115_mux_t
The different multiplexer options on the ADS1115.
Values
ADS1115_MUX_0_1: Connect pins 0 and 1.ADS1115_MUX_0_3: Connect pins 0 and 3.ADS1115_MUX_1_3: Connect pins 1 and 3.ADS1115_MUX_2_3: Connect pins 2 and 3.ADS1115_MUX_0_GND: Connect pin 0 to ground.ADS1115_MUX_1_GND: Connect pin 1 to ground.ADS1115_MUX_2_GND: Connect pin 2 to ground.ADS1115_MUX_3_GND: Connect pin 3 to ground.
enum ads1115_fsr_t
The different full-scale resolution options.
Values
ADS1115_FSR_6_144: 6.144 voltsADS1115_FSR_4_096: 4.096 voltsADS1115_FSR_2_048: 2.048 voltsADS1115_FSR_1_024: 1.024 voltsADS1115_FSR_0_512: 0.512 voltsADS1115_FSR_0_256: 0.256 volts
enum ads1115_sps_t
The different samples per second, or data rate, options.
Values
ADS1115_SPS_8: 8 samples per secondADS1115_SPS_16: 16 samples per secondADS1115_SPS_32: 32 samples per secondADS1115_SPS_64: 64 samples per secondADS1115_SPS_128: 128 samples per secondADS1115_SPS_250: 250 samples per secondADS1115_SPS_475: 475 samples per secondADS1115_SPS_860: 860 samples per second
enum ads1115_mode_t
Continuous or single-shot mode.
Values
ADS1115_MODE_CONTINUOUS: continuous mode.ADS1115_MODE_SINGLE: single-shot mode.
Functions
ads1115_t ads1115_config(i2c_port_t i2c_port,uint8_t address)
Setup of the device.
Parameters
i2c_port: the i2c bus number.address: the device's i2c address.
Returns
- The configuration file, which is passed to all subsequent functions.
Notes
- This does not setup the i2c bus, this must be done before passing to this function.
void ads1115_set_rdy_pin(ads1115_t* ads,gpio_num_t gpio)
Sets up an optional data-ready pin to verify when conversions are complete. Connect to ALRT/RDY pin on ADS1115.
Parameters
ads: The configuration file.gpio: The esp32 gpio. Do not setup beforehand.
void ads1115_set_mux(ads1115_t* ads,ads1115_mux_t mux)
Sets the pins to be multiplexed.
Parameters
ads: the configuration file.mux: the desired multiplex option (see enumeration).
void ads1115_set_pga(ads1115_t* ads,ads1115_fsr_t fsr)
Sets the full-scale range, or the programmable-gain amplifier.
Parameters
ads: the configuration file.fsr: the desired full-scale range option (see enumeration).
void ads1115_set_mode(ads1115_t* ads,ads1115_mode_t mode)
Sets the read mode.
Paremeters
ads: the configuration file.mode: the desired mode (see enumeration).
Notes
- To end continuous mode, set it to single-shot mode and make one voltage read.
void ads1115_set_sps(ads1115_t* ads,ads1115_sps_t sps)
Sets the sampling speed.
Parameters
ads: the configuration file.sps: the desired samples per second (see enumeration).
void ads1115_set_max_ticks(ads1115_t* ads,TickType_t max_ticks)
Sets the maximum wait ticks for the i2c reads and writes. See the i2c documentation.
Parameters
ads: the configuration file.max_ticks: maximum wait ticks.
int16_t ads1115_get_raw(ads1115_t* ads)
Reads the voltage based on the current configuration.
Parameters
ads: the configuration file.
Returns
- The 16 bit raw voltage value directly from the ADS1115.
double ads1115_get_voltage(ads1115_t* ads)
Reads the voltage based on the current configuration.
Parameters
ads: the configuration file.
Returns
- The voltage, based on the current full-scale range. This is just a conversion from the raw value.