АЦП-модуль ADS1115 представляет собой 16-битный аналого-цифровой преобразователь, который имеет 4 входа для преобразования аналоговый сигнал в цифровой.
АЦП-модуль ADS1115 основан на одноименном чипе и содержит все необходимые для его работы внешние компоненты. АЦП-модуль совместим с I2C шиной. Оснащен программируемым усилителем и цифровым компаратором. Выполняет преобразования со скоростью передачи данных от 8 до 860 выборок в секунду (SPS). Диапазоны входных сигналов от ± 256 мВ до ± 6.144 В. Питание модуля 3,3 В или 5 В.
Характеристики ADS1115:
- разрешение: 16 бит
- программируемая частота дискретизации;
- напряжение питания: 2.0V – 5.5V;
- низкое потребление тока: 150 мкА в рабочем режиме;
- внутренний источник опорного напряжения;
- 4 входа (AIN0-AIN3), которые могут использоваться как два дифференциальных входа для измерения разности напряжения между входами, либо как 4 отдельных несимметричных входа, в этом случае напряжение измеряется между одним из входов и общим проводом;
- программируемый выходной компаратор;
- встроенный программируемый усилитель входного сигнала PGA: до х16;
- интерфейс : I2C: 4-контактный по выбору адреса.
При использовании несимметричного входа измерение напряжения производится относительно общего провода, в этом случае измеряется только положительное напряжение!!!
Модуль очень критичен к перенапряжению как по входам, так и по питанию. Превышение напряжения более чем на 5% от напряжения питания выведет его из строя!!!
Схемы подключения
Дифференциальный вход
#include <Wire.h> #include <Adafruit_ADS1015.h> Adafruit_ADS1115 ads; /*Adafruit_ADS1115 ads(0x48); задайте адрес устройства по которому будем работать на I2C шине (если уст-во одно, задавать адрес необязательно)*/ void setup(void) { Serial.begin(9600); // ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 0.1875mV (default) // ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 0.125mV ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 0.0625mV // ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.03125mV // ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.015625mV // ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.0078125mV ads.begin(); } int16_t results; float multiplier = 0.0625F; // выбран предел +/- 2.048V void loop(void){ results = ads.readADC_Differential_0_1(); Serial.print("Differential: "); Serial.print(results); Serial.print("("); Serial.print(results * multiplier); Serial.println("mV)"); delay(1000); }
Несимметричные вход
#include <Wire.h> #include <Adafruit_ADS1015.h> Adafruit_ADS1115 ads; /*Adafruit_ADS1115 ads(0x48); задайте адрес устройства по которому будем работать на I2C шине (если уст-во одно, задавать адрес необязательно)*/ void setup(void) { Serial.begin(9600); // ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 0.1875mV (default) // ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 0.125mV ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 0.0625mV // ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.03125mV // ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.015625mV // ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.0078125mV ads.begin(); } int16_t adc0, adc1, adc2, adc3; void loop(void) { adc0 = ads.readADC_SingleEnded(0); adc1 = ads.readADC_SingleEnded(1); adc2 = ads.readADC_SingleEnded(2); adc3 = ads.readADC_SingleEnded(3); Serial.print("AIN0: "); Serial.println(adc0); Serial.print("AIN1: "); Serial.println(adc1); Serial.print("AIN2: "); Serial.println(adc2); Serial.print("AIN3: "); Serial.println(adc3); Serial.println(" "); delay(1000); }
Подключение датчика к Arduino с разным адресами I2C
Библиотека — https://github.com/addicore/ADS1115/archive/master.zip
Єтот АЦП (ADS1115) дешевле, доступней, существует в виде модуля.
можноли на єтом АЦП собрать єти измерители?
http://rcl-radio.ru/?p=100891
http://rcl-radio.ru/?p=100859
Еще бы милливольтметр точный…3 в одном, и LCD 1604
В чем необходимость объединять несколько уст-в в одном?
Начну с того, что получится точный измерительный комплекс на ADS1115.
Почему в одном? ADS1115-4х канальный,
(читал ампер-вольтметр на 1115 для БП, 2 в одном). Делать несколько устройств, накладно по деньгам,дорогие модули денег немеряно уйдет,(3 АЦП, 3 ардуин,…), а так получится:
1-АЦП, 1-ардуин, 1-индикатор (неплохо бы
индикатор лсд1604)
1110 в виде модуля не нашел, 1115 и 1015 есть доступные в продаже модули.
4-й канал ADS1115,задействовать для замера ёмкости конденсаторов (если возможно).
Получится бомба!!! Но главное точность замера параметра (иногда нужно) с минимальными затратами.