Привіт, друзі! У нас на огляді дуже корисна мікросхема – 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 у своїх проектах! Побачимося у наступному відео.
Роз'ємний конектор JST SM
Слугує для швидкороз'эмного з'єднання. Наприклад, для монтажу датчиків, виконавчих механізмів, підве..
31.09грн.
Модуль 5 — Датчики та модулі: DHT11, LDR і проєкт «Розумна лампа»
Модуль 5 — Датчики та модулі (курс для початківців) Мета модуля: ознайомитися з популярними..
Автоматичне відкриття вікна за температурою — проект на Arduino
Скільки разів ви прокидалися від холоду влітку чи восени, забувши закрити вікно перед сном? Надто ..
Мініатюрний WeMos D1 mini ESP8266
Дуже маленька і дешева плата WeMos D1 mini контролера з WiFi зв'язком на борту. Має не багато в..
112.31грн.
Таймери Arduino UNO — Частина 1. Вступ
Таймери Arduino UNO — Частина 1. Вступ Теорія Що таке таймер у мікроконтролері ATmega3..







