Привет, друзья! У нас на обзоре очень полезная микросхема – 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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Клапан электромагнитный 24 В 100 мА

Клапан электромагнитный 24 В 100 мА

Электромагнитный клапан нормально закрытыйВнешний диаметр короткой трубки 6 ммВнешний диаметр боково..

190.56грн.

OLED дисплей 128x64 I2C (0,96")

OLED дисплей 128x64 I2C (0,96")

OLED дисплей 128x64 I2C (0,96") OLED дисплей 128x64 — это компактный монохромный экран с диагонал..

93.06грн.

Таймеры Arduino UNO — Часть 2. Работа с прерываниями таймеров

Таймеры Arduino UNO — Часть 2. Работа с прерываниями таймеров

Таймеры Arduino UNO — Часть 2. Работа с прерываниями таймеров Теория Что такое прерыва..

Автоматическое управление твердотопливным котлом Arduino Nano

Автоматическое управление твердотопливным котлом Arduino Nano

Предмет проекта домашней автоматики Вашему вниманию представлен большой проект - автоматический щит..

Какие виды дисплеев можно использовать с Arduino для отображения информации

Какие виды дисплеев можно использовать с Arduino для отображения информации

Какие виды дисплеев можно использовать с Arduino для отображения информации Arduino — это п..

Рекомендуемые товары

АЦП 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грн.