Привіт, друзі! У нас на огляді дуже корисна мікросхема – ADS1115. Це 16-бітний аналогово-цифровий перетворювач (АЦП) з інтерфейсом I2C, який може значно розширити можливості контролера. Розберемося, які в неї властивості, що вона дозволяє робити, де її можна і необхідно використовувати. Наскільки важко підключити до контролера. Поїхали!


ADS1115 - це прецизійний 4-х канальний 16-бітний АЦП з низьким енергоспоживанням. І він має наступні характеристики:

Розрядність - 16 біт, що забезпечує високу точність вимірів. Щоправда, всі 16 біт задіяні лише у диференціальному режимі. Про це далі розповім.

Число каналів – 4 аналогові входи, які можна використовувати як 4 одноканальні або 2 диференціальні.


Напруга живлення – від 2.0 до 5.5, що робить його сумісним з мікроконтролерами на 3.3 і 5 В. Погано тільки, що харчування логіки тут з'єднане з живленням вимірювальної частини. І напруга на аналогові входи можна перевищувати лише 0,3В. Таким чином, величина напруги логічних сигналів може накладати обмеження на діапазон вимірюваної напруги.


Вбудований програмований підсилювач (PGA) з програмним вибором коефіцієнта посилення. Як видно в таблиці, вибраний коефіцієнт посилення дає можливість задати необхідний діапазон вимірювання напруги. У всіх діапазонах АЦП вимірює як позитивну напругу, і негативне. Негативна частина шкали працює лише у диференціальному режимі (-32768 - 32767). В одиночному режимі в нашому розпорядженні лише половина шкали АЦП і відповідно половина точності (0 - 32767).

Частота вибірки – до 860 вимірів за секунду.

Інтерфейс – I2C, що спрощує підключення до Arduino, ESP32 та інших мікроконтролерів.


Під Arduino IDE доступна хороша бібліотека, яка називається Adafruit_ADS1015.h

З нею є 3 приклади: компаратор, окремі входи та диференціальний. Тут є приклад окремих входів.

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

Adafruit_ADS1115 ads;  /* Use this for the 16-bit version */
//Adafruit_ADS1015 ads;     /* Use thi for the 12-bit version */

void setup(void) 
{
  Serial.begin(9600);
  Serial.println("Hello!");
  
  Serial.println("Getting single-ended readings from AIN0..3");
  Serial.println("ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)");
  
  // The ADC input range (or gain) can be changed via the following
  // functions, but be careful never to exceed VDD +0.3V max, or to
  // exceed the upper and lower limits if you adjust the input range!
  // Setting these values incorrectly may destroy your ADC!
  //                                                                ADS1015  ADS1115
  //                                                                -------  -------
  // ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit = 3mV      0.1875mV (default)
  // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit = 2mV      0.125mV
  // ads.setGain(GAIN_TWO);        // 2x gain   +/- 2.048V  1 bit = 1mV      0.0625mV
  // ads.setGain(GAIN_FOUR);       // 4x gain   +/- 1.024V  1 bit = 0.5mV    0.03125mV
  // ads.setGain(GAIN_EIGHT);      // 8x gain   +/- 0.512V  1 bit = 0.25mV   0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit = 0.125mV  0.0078125mV
  
  ads.begin();
}

void loop(void) 
{
  int16_t adc0, adc1, adc2, adc3;

  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);
}

Режим зниженого енергоспоживання відмінно підходить для автономних проектів.

Ціна у корпусі VSSOP-10 буде в діапазоні $0,62 – $0,94.

Типи корпусів мікросхеми: VSSOP-10,

X2QFN-10.


Що дозволяє робити ADS1115?

ADS1115 значно розширює можливості вашого мікроконтролера:


Дозволяє вимірювати аналогові сигнали з високою точністю. На відміну від вбудованих АЦП в Arduino, розрядність яких зазвичай 10 біт або ESP32 , розрядність яких 12 біт, у ADS1115 16 біт, що дає в 64 або 16 рази кращий дозвіл! Наприклад при вимірюванні сигналу 0-3.3В максимальна точність вимірювання у вольтах: для Arduino UNO, при опорному напрузі 3,3В, буде 0,0032-0,0064В;

для ESP32 0,000806-0,0016В;

для ADS1115 з посиленням 1 це 0,000125-0,00025В.


Дозволяє вимірювати сигнали промислових аналогових датчиків: з струмовим виходом і напругою, так само резистивних датчиків. За рахунок вбудованого підсилювача може забезпечувати роботу з датчиками малої напруги, таких як термопари, тензодатчики, pH-метри.

Дозволяє одночасно вимірювати кілька сигналів, так як у нього 4 вхідні канали.


Підтримує вимірювання в диференціальному режимі, що важливо для деяких завдань, наприклад, для тензодатчиків.

Використовує I2C-інтерфейс, що заощаджує порти мікроконтролера та спрощує підключення.


ADS1115 знаходить застосування у різних проектах:

Вимірювання сигналів датчиків температури, тиску, pH, резистивних датчиків – наприклад, у станціях погодних та хімічних аналізаторах.

Вимірювання слабких сигналів від тензодатчиків – корисне у вагах та системах контролю навантаження.

Аналіз акумуляторів та джерел живлення – можна вимірювати малі зміни напруги.

Аудіо-аналізатори – завдяки високій точності та швидкості можна використовувати для вимірювання низьковольтних аудіосигналів.

Автономні пристрої на батареях – низьке енергоспоживання робить ADS1115 чудовим вибором для таких завдань.

ADS1115 – це потужний та зручний аналогово-цифровий перетворювач, який значно розширює можливості мікроконтролерів. Завдяки 16-бітній точності, вбудованому підсилювачу та підтримці I2C, він ідеально підходить для роботи зі слабкими аналоговими сигналами та високоточними вимірюваннями. Дуже зручний програмний вибір підсилювача, що дозволяє вибирати з низки діапазонів вимірювання напруги.

Якщо вам потрібно покращити точність вимірів у вашому проекті – ADS1115 чудовий вибір! У мене саме недавно був досвід в одному проекті. АЦП контролера ESP32 не витягував за точністю та лінійністю важливі сигнали від резистивного датчика переміщення. ADS1115 показав зовсім інший рівень якості АЦП. Для важливих проектів краще ставити подібні спеціалізовані мікросхеми та відмовлятися від вбудованих у контролер слабких АЦП.

Але в багатьох випадках негативна половина діапазону виміру мікросхеми залишається не задіяною і ми отримуємо лише половину заявленої точності.



Якщо відео вам сподобалося, ставте лайк, підписуйтесь на канал і пишіть у коментарях, де ви б застосували ADS1115 у своїх проектах! Побачимося у наступному відео.

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Ніодімовий магніт 10mm x 2mm N50

Ніодімовий магніт 10mm x 2mm N50

Циліндричний ніодімовий магніт N50Розміри 10мм x 2ммІдеально підходить для роботи в зв'язці з м..

12.09грн.

Роз'ємний конектор під гвинт на плату 2 контакти

Роз'ємний конектор під гвинт на плату 2 контакти

Подвійний роз'ємний гвинтовий конектор без повороту для монтажу на друковану плату.Використовується ..

25.96грн.

Шестерня для зубчатого ременю на 16 зубців під вісь 5 мм

Шестерня для зубчатого ременю на 16 зубців під вісь 5 мм

Використовується для передачі та редукції обертаючого моменту від двигуна до вісі 5 ммКількість зубц..

38.58грн.

Твердотільне реле 10А

Твердотільне реле 10А

Реле без механічних контактів на 10 А. Силовим елементом даного реле є симистор.Гальванічна розв'язк..

281.48грн.

Радіатор для транзистора 34х25х12мм

Радіатор для транзистора 34х25х12мм

Радіатор алюмінієвий для пасивного охолодження різноманітних напівпровідникових силових компонентів:..

29.78грн.

Рекомендовані товари

Модуль АЦП ADS1115 4-х канальний

Модуль АЦП ADS1115 4-х канальний

АЦП ADS1115 4-х канальний ADS1115 — це 4-х канальний 16-розрядний аналого-цифровий перетворювач (..

99.62грн.

Модуль 4-х аналогових входів I2C на ADS1115 (Geekmatic)

Модуль 4-х аналогових входів I2C на ADS1115 (Geekmatic)

Модуль 4-х аналогових входів I2C на ADS1115 (Geekmatic) Компактний модуль для підключення 4-х а..

203.34грн.