In compliance with high industry standards

Browse our Blog. You will find multiple applications, solutions, code examples. Navigate using the tag cloud or search using specific criteria

Analogical - Digital Converter board for industrial Arduino

ADS1115 16 bits ADC precision analog-to-digital converter with 16-bits of resolution

ADS1115 16 bits ADC board for industrial Arduino


In this post we talk about the Analogic-Digital Converter (ADC) 16-bits module ADS1115 for Arduino industrial automation controller. You will find some information about the module and the way to connect with Arduino automation and read analog values.


ADC 16-bits module ADS1115 >>

ADS1115 Adafruit library >> 

M-Duino >> or Ardbox >> family 


The ADS1115 is a precision analog-to-digital converter with 16-bits of resolution offered in an ultra-small, leadless WFN_10 package or an MSOP-10 package. It is designed with precision, power and ease of implementation in mind. Data are transferred via an I2C-compatible serial interface; four I2C slave addresses can be selected.

Technical features

Power-Supply Voltage2.0 to 5.5 V-
Storage Temperature-60 to +150 ºC-
Specified Temperature-40 to +125 ºC
Analog Input VoltageGND to VCC V-
Resolution16 Bits-
Data Rate (DR)8, 16, 32, 64, 128, 250, 475, 860 SPS-
Data Rate Variation-10 to 10 %All data rates
Supply Current 150 - 200 uAOperating current at 25 ºC
Power dissipationVDD = 5.0, 3.3, 2.0 V0.9, 0.5, 0.3 mW


According to Hardware Configuration (page 11) of the ADS115 Datasheet. The connections are the following:

Arduino Mega

Arduino mega2560 rev3 >>

M-Duino PLC 

Arduino PLC Ethernet >>


To be able to read the Analog Pins values in a more confortable and easy way, we advice to use the Adafruit ADS1115 library. Here you gave the link: Adafruit_ADS1115.

Once you have downloaded the .zip file, in the Arduino IDE go to Sketch -> Include Library -> Add .ZIP Library... You will find the .zip file Adafruit_ADS1X15-master in the Downloads folder. Now we can include the Adafruit_ADS1015.h header in our programs in oder to use the functions that we have available. 


The same code for Arduino Mega or M-Duino. 

#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads;
const float multiplier = 0.0001875F;

void setup() {

  // There are different GAINs // ads.setGain(GAIN_TWOTHIRDS); +/- 6.144V 1 bit = 0.1875mV (default) // ads.setGain(GAIN_ONE); +/- 4.096V 1 bit = 0.125mV // ads.setGain(GAIN_TWO); +/- 2.048V 1 bit = 0.0625mV // ads.setGain(GAIN_FOUR); +/- 1.024V 1 bit = 0.03125mV // ads.setGain(GAIN_EIGHT); +/- 0.512V 1 bit = 0.015625mV // ads.setGain(GAIN_SIXTEEN); +/- 0.256V 1 bit = 0.0078125mV
ads.setGain(GAIN_TWOTHIRDS); ads.begin(); } void loop() { int16_t adc0; adc0 = ads.readADC_SingleEnded(0); Serial.print("Analog 0: ");

  // Read value from 0 to 32767 from 16 bits register, so it's necessary to convert to real value
// by multiplying by 0.0001875 (GAIN)

Serial.println(adc0 * multiplier); delay(1000); }

To test the program we connected the Power Supply to A0 at 2.5 V. That's the result in the Serial Monitor:

  • With multiplier = 1. Decimal value of the 16 bit register. 

  • With Multiplier = 0.0001875F. Decimal value of the 16 bit register multiplied by the appropriate multiplier to get the real value representation in V units. 

It is also possible to use the the module ADS1115 to Raspberry Pi.

Looking for your ideal PLC?

Take a look at this product comparison with other industrial controllers.

We are comparing inputs, outputs, communications and other features with the ones of the relevant brands.

PLC comparison >>

Do you want more information?

Just fill the form!

Tell me more!