@iiot2k/ads1115
v2.1.1
Published
ads1115 analog to digital converter library
Downloads
60
Maintainers
Readme
@iiot2k/ads1115
ads1115 analog to digital converter library
Developing software is a hard job. Thanks for the coffee !! 😁
Installation
npm install @iiot2k/ads1115
or add in your package.json
:
"dependencies": {
"@iiot2k/ads1115": "latest"
},
View on npm📌 View on GitHub📌 Report any issues here📌
ads1115📌 16bit analog to digital converter
- 16bit Conversion Resolution.
- Four Analog Inputs.
- Each input can be selected Single-Ended, Differential.
- Internal Voltage Reference.
- Internal Oscillator.
- Programmable Data Rate 8 SPS to 860 SPS.
- The PGA offers input ranges from ±256 mV to ±6144 mV.
- I2C Interface with four pin-selectable addresses.
Usage
- This library works on Raspberry Pi with 32bit or 64bit OS.
- The output value is mV or adc raw data.
- Enable I2C with raspi-config.
- In this case i2c-1 is enabled (port=1).
- If you use i2c-0 port add dtparam=i2c_vc=on to /boot/config.txt, then Pin27=SDA, Pin28=SCK.
- For other ports add this to /boot/config.txt.
Address Pin Connection
|I2C Address|ADDR Pin| |:----|:---| |48H|GND or open| |49H|VCC| |4AH|SDA| |4BH|SCL|
Node.js API
Node.js API functions are explained in document API.md Node.js examples are on examples folder.
// example reads single adc input
"use strict";
const ads1115 = require("@iiot2k/ads1115");
ads1115.read(
1, // i2c-1
ads1115.ADR_48, // address 0x48
ads1115.MUX_I0_GND, // AIN0 - GND
ads1115.GAIN_4096, // 4096 mV
ads1115.RATE_128, // 128 SPS
false, // no rawdata
function(data) {
if (data === undefined)
console.log(ads1115.error_text());
else
console.log(data, "mV");
});
C++ API
This library uses C++ addon modules as interface to hardware. Therefore, there is also a C++ interface to the drivers. Unfortunately the C++ addon modules are not open source. I provide the C++ static link libraries. But if you are interested in the sources, I can send them to you. Please send me an email with your name to [email protected] I can only provide limited support for the C++ addon modules sources.
I have shown some C++ examples in the cpp directory and on GitHub📌 The C++ API functions are described in the header file ads1115_lib.h
// example reads single adc input
#include <stdio.h>
#include "ads1115_lib.h"
#define PORT 1 // i2c-1
int main()
{
double value;
bool ret = ads1115::read(
PORT,
ads1115::ADR_48, // address 0x48
ads1115::MUX_I0_GND, // AIN0 - GND
ads1115::GAIN_4096, // 4096 mV
ads1115::RATE_128, // 128 SPS
false, // no rawdata
value);
if (ret)
printf("%.0fmV\n", value);
else
printf("%s\n", ads1115::error_text());
return 0;
}